aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Unit 193 <unit193@ubuntu.com>2017-07-10 20:29:21 -0400
committerLibravatar Unit 193 <unit193@ubuntu.com>2017-07-10 20:29:21 -0400
commite9d483afb2ac1ed6ad6da37e9031fd43dea86fdb (patch)
tree8572feac2d95389650fa6076588666cd8d34fe91
parentcb961d666330ea124d1e06333a3033d718f45de8 (diff)
parent167f2a81a7fbff8459805441ec341ec0738e8c93 (diff)
downloadveracrypt-e9d483afb2ac1ed6ad6da37e9031fd43dea86fdb.tar.bz2
veracrypt-e9d483afb2ac1ed6ad6da37e9031fd43dea86fdb.tar.xz
veracrypt-e9d483afb2ac1ed6ad6da37e9031fd43dea86fdb.tar.zst
Merge tag 'upstream/1.21'
Upstream version 1.21 # gpg: Signature made Mon 10 Jul 2017 08:29:19 PM EDT # gpg: using RSA key 5001E1B09AA3744B # gpg: issuer "unit193@ubuntu.com" # gpg: Good signature from "Unit 193 <unit193@ubuntu.com>" [ultimate] # gpg: aka "Unit 193 <unit193@gmail.com>" [ultimate]
-rw-r--r--.gitattributes51
-rw-r--r--License.txt2
-rw-r--r--README.md50
-rw-r--r--Tests/bench.bat701
-rw-r--r--Tests/test.streebog.hcbin0 -> 524288 bytes
-rw-r--r--Translations/Language.ar.xml43
-rw-r--r--Translations/Language.be.xml17
-rw-r--r--Translations/Language.bg.xml17
-rw-r--r--Translations/Language.ca.xml17
-rw-r--r--Translations/Language.cs.xml17
-rw-r--r--Translations/Language.da.xml17
-rw-r--r--Translations/Language.de.xml15
-rw-r--r--Translations/Language.el.xml17
-rw-r--r--Translations/Language.es.xml17
-rw-r--r--Translations/Language.et.xml17
-rw-r--r--Translations/Language.eu.xml17
-rw-r--r--Translations/Language.fa.xml17
-rw-r--r--Translations/Language.fi.xml17
-rw-r--r--Translations/Language.fr.xml15
-rw-r--r--Translations/Language.hu.xml17
-rw-r--r--Translations/Language.id.xml17
-rw-r--r--Translations/Language.it.xml17
-rw-r--r--Translations/Language.ja.xml17
-rw-r--r--Translations/Language.ka.xml19
-rw-r--r--Translations/Language.ko.xml15
-rw-r--r--Translations/Language.lv.xml17
-rw-r--r--Translations/Language.my.xml17
-rw-r--r--Translations/Language.nl.xml424
-rw-r--r--Translations/Language.nn.xml17
-rw-r--r--Translations/Language.pl.xml55
-rw-r--r--Translations/Language.pt-br.xml17
-rw-r--r--Translations/Language.ro.xml1477
-rw-r--r--Translations/Language.ru.xml767
-rw-r--r--Translations/Language.sk.xml17
-rw-r--r--Translations/Language.sl.xml17
-rw-r--r--Translations/Language.sv.xml17
-rw-r--r--Translations/Language.tr.xml17
-rw-r--r--Translations/Language.uk.xml15
-rw-r--r--Translations/Language.uz.xml17
-rw-r--r--Translations/Language.vi.xml17
-rw-r--r--Translations/Language.zh-cn.xml15
-rw-r--r--Translations/Language.zh-hk.xml17
-rw-r--r--Translations/Language.zh-tw.xml17
-rw-r--r--doc/EFI-DCS/dcs_tpm_owner_02.pdfbin0 -> 134667 bytes
-rw-r--r--doc/EFI-DCS/disk_encryption_v1_2.pdfbin0 -> 134972 bytes
-rw-r--r--doc/VeraCrypt User Guide.odtbin2267017 -> 0 bytes
-rw-r--r--doc/chm/VeraCrypt User Guide.chmbin0 -> 1890569 bytes
-rw-r--r--doc/chm/VeraCrypt.hhc415
-rw-r--r--doc/chm/VeraCrypt.hhk13
-rw-r--r--doc/chm/VeraCrypt.hhp174
-rw-r--r--doc/chm/create_chm.bat13
-rw-r--r--doc/html/AES.html51
-rw-r--r--doc/html/Acknowledgements.html58
-rw-r--r--doc/html/Additional Security Requirements and Precautions.html52
-rw-r--r--doc/html/Authenticity and Integrity.html49
-rw-r--r--doc/html/Authors.html42
-rw-r--r--doc/html/Beginner's Tutorial.html207
-rw-r--r--doc/html/Beginner's Tutorial_Image_001.jpgbin0 -> 72868 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_002.jpgbin0 -> 97433 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_003.jpgbin0 -> 45726 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_004.jpgbin0 -> 60635 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_005.jpgbin0 -> 67538 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_007.jpgbin0 -> 60251 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_008.jpgbin0 -> 44347 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_009.jpgbin0 -> 36014 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_010.jpgbin0 -> 65196 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_011.jpgbin0 -> 58346 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_012.jpgbin0 -> 18934 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_013.jpgbin0 -> 21278 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_014.jpgbin0 -> 76689 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_015.jpgbin0 -> 76354 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_016.jpgbin0 -> 69892 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_017.jpgbin0 -> 77042 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_018.jpgbin0 -> 34325 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_019.jpgbin0 -> 36310 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_020.jpgbin0 -> 79449 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_021.jpgbin0 -> 45484 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_022.jpgbin0 -> 79812 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_023.gifbin0 -> 2313 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_024.gifbin0 -> 9669 bytes
-rw-r--r--doc/html/Beginner's Tutorial_Image_034.pngbin0 -> 17113 bytes
-rw-r--r--doc/html/Camellia.html47
-rw-r--r--doc/html/Cascades.html66
-rw-r--r--doc/html/Changing Passwords and Keyfiles.html56
-rw-r--r--doc/html/Choosing Passwords and Keyfiles.html51
-rw-r--r--doc/html/Command Line Usage.html263
-rw-r--r--doc/html/Contact.html53
-rw-r--r--doc/html/Contributed Resources.html65
-rw-r--r--doc/html/Converting TrueCrypt volumes and partitions.html43
-rw-r--r--doc/html/Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpgbin0 -> 65251 bytes
-rw-r--r--doc/html/Creating New Volumes.html111
-rw-r--r--doc/html/Data Leaks.html70
-rw-r--r--doc/html/Default Mount Parameters.html51
-rw-r--r--doc/html/Default Mount Parameters_VeraCrypt_password_using_default_parameters.pngbin0 -> 21924 bytes
-rw-r--r--doc/html/Defragmenting.html48
-rw-r--r--doc/html/Digital Signatures.html99
-rw-r--r--doc/html/Disclaimers.html47
-rw-r--r--doc/html/Documentation.html147
-rw-r--r--doc/html/Donation.html104
-rw-r--r--doc/html/Donation_VeraCrypt_Bitcoin.pngbin0 -> 4396 bytes
-rw-r--r--doc/html/Donation_donate_CHF.gifbin0 -> 1734 bytes
-rw-r--r--doc/html/Donation_donate_Dollars.gifbin0 -> 1788 bytes
-rw-r--r--doc/html/Donation_donate_Euros.gifbin0 -> 1744 bytes
-rw-r--r--doc/html/Donation_donate_GBP.gifbin0 -> 1766 bytes
-rw-r--r--doc/html/Donation_donate_YEN.gifbin0 -> 1765 bytes
-rw-r--r--doc/html/Encryption Algorithms.html210
-rw-r--r--doc/html/Encryption Scheme.html89
-rw-r--r--doc/html/FAQ.html734
-rw-r--r--doc/html/Favorite Volumes.html112
-rw-r--r--doc/html/Hardware Acceleration.html69
-rw-r--r--doc/html/Hash Algorithms.html58
-rw-r--r--doc/html/Header Key Derivation.html86
-rw-r--r--doc/html/Hibernation File.html67
-rw-r--r--doc/html/Hidden Operating System.html49
-rw-r--r--doc/html/Hidden Volume.html97
-rw-r--r--doc/html/Home_VeraCrypt_Default_Mount_Parameters.pngbin0 -> 12035 bytes
-rw-r--r--doc/html/Home_VeraCrypt_menu_Default_Mount_Parameters.pngbin0 -> 6484 bytes
-rw-r--r--doc/html/Home_facebook_veracrypt.pngbin0 -> 868 bytes
-rw-r--r--doc/html/Home_reddit.pngbin0 -> 1456 bytes
-rw-r--r--doc/html/Home_tibitDonateButton.pngbin0 -> 627 bytes
-rw-r--r--doc/html/Home_utilities-file-archiver-3.pngbin0 -> 2186 bytes
-rw-r--r--doc/html/Hot Keys.html40
-rw-r--r--doc/html/How to Back Up Securely.html112
-rw-r--r--doc/html/Incompatibilities.html81
-rw-r--r--doc/html/Introduction.html56
-rw-r--r--doc/html/Issues and Limitations.html105
-rw-r--r--doc/html/Journaling File Systems.html46
-rw-r--r--doc/html/Keyfiles in VeraCrypt.html215
-rw-r--r--doc/html/Keyfiles in VeraCrypt_Image_040.gifbin0 -> 26435 bytes
-rw-r--r--doc/html/Keyfiles.html81
-rw-r--r--doc/html/Kuznyechik.html44
-rw-r--r--doc/html/Language Packs.html54
-rw-r--r--doc/html/Legal Information.html65
-rw-r--r--doc/html/Main Program Window.html110
-rw-r--r--doc/html/Malware.html61
-rw-r--r--doc/html/Memory Dump Files.html65
-rw-r--r--doc/html/Miscellaneous.html48
-rw-r--r--doc/html/Modes of Operation.html130
-rw-r--r--doc/html/Mounting VeraCrypt Volumes.html72
-rw-r--r--doc/html/Multi-User Environment.html55
-rw-r--r--doc/html/Notation.html88
-rw-r--r--doc/html/Paging File.html75
-rw-r--r--doc/html/Parallelization.html50
-rw-r--r--doc/html/Personal Iterations Multiplier (PIM).html118
-rw-r--r--doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.pngbin0 -> 39609 bytes
-rw-r--r--doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.pngbin0 -> 41198 bytes
-rw-r--r--doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.pngbin0 -> 24371 bytes
-rw-r--r--doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.pngbin0 -> 25515 bytes
-rw-r--r--doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.pngbin0 -> 24449 bytes
-rw-r--r--doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.pngbin0 -> 26195 bytes
-rw-r--r--doc/html/Physical Security.html56
-rw-r--r--doc/html/Pipelining.html51
-rw-r--r--doc/html/Plausible Deniability.html77
-rw-r--r--doc/html/Portable Mode.html87
-rw-r--r--doc/html/Preface.html43
-rw-r--r--doc/html/Program Menu.html205
-rw-r--r--doc/html/Protection of Hidden Volumes.html127
-rw-r--r--doc/html/Protection of Hidden Volumes_Image_027.jpgbin0 -> 36561 bytes
-rw-r--r--doc/html/Protection of Hidden Volumes_Image_028.jpgbin0 -> 64939 bytes
-rw-r--r--doc/html/Protection of Hidden Volumes_Image_029.jpgbin0 -> 77621 bytes
-rw-r--r--doc/html/Protection of Hidden Volumes_Image_030.jpgbin0 -> 33805 bytes
-rw-r--r--doc/html/Protection of Hidden Volumes_Image_031.jpgbin0 -> 57124 bytes
-rw-r--r--doc/html/RIPEMD-160.html45
-rw-r--r--doc/html/Random Number Generator.html93
-rw-r--r--doc/html/Reallocated Sectors.html48
-rw-r--r--doc/html/References.html238
-rw-r--r--doc/html/Release Notes.html301
-rw-r--r--doc/html/Removable Medium Volume.html56
-rw-r--r--doc/html/Removing Encryption.html80
-rw-r--r--doc/html/SHA-256.html43
-rw-r--r--doc/html/SHA-512.html43
-rw-r--r--doc/html/Security Model.html109
-rw-r--r--doc/html/Security Requirements and Precautions.html88
-rw-r--r--doc/html/Security Requirements for Hidden Volumes.html173
-rw-r--r--doc/html/Security Tokens & Smart Cards.html41
-rw-r--r--doc/html/Serpent.html54
-rw-r--r--doc/html/Sharing over Network.html56
-rw-r--r--doc/html/Source Code.html52
-rw-r--r--doc/html/Standard Compliance.html48
-rw-r--r--doc/html/Streebog.html44
-rw-r--r--doc/html/Supported Operating Systems.html63
-rw-r--r--doc/html/Supported Systems for System Encryption.html62
-rw-r--r--doc/html/System Encryption.html72
-rw-r--r--doc/html/System Favorite Volumes.html87
-rw-r--r--doc/html/Technical Details.html59
-rw-r--r--doc/html/Trim Operation.html50
-rw-r--r--doc/html/Troubleshooting.html434
-rw-r--r--doc/html/TrueCrypt Support.html41
-rw-r--r--doc/html/TrueCrypt Support_truecrypt_mode_gui.jpgbin0 -> 37924 bytes
-rw-r--r--doc/html/Twofish.html46
-rw-r--r--doc/html/Unencrypted Data in RAM.html73
-rw-r--r--doc/html/Uninstalling VeraCrypt.html50
-rw-r--r--doc/html/Using VeraCrypt Without Administrator Privileges.html59
-rw-r--r--doc/html/VeraCrypt Background Task.html54
-rw-r--r--doc/html/VeraCrypt Hidden Operating System.html259
-rw-r--r--doc/html/VeraCrypt License.html408
-rw-r--r--doc/html/VeraCrypt Rescue Disk.html100
-rw-r--r--doc/html/VeraCrypt System Files.html106
-rw-r--r--doc/html/VeraCrypt Volume Format Specification.html740
-rw-r--r--doc/html/VeraCrypt Volume.html48
-rw-r--r--doc/html/VeraCrypt128x128.pngbin0 -> 13328 bytes
-rw-r--r--doc/html/Volume Clones.html46
-rw-r--r--doc/html/Wear-Leveling.html64
-rw-r--r--doc/html/Whirlpool.html46
-rw-r--r--doc/html/arrow_right.gifbin0 -> 49 bytes
-rw-r--r--doc/html/bank_30x30.pngbin0 -> 1946 bytes
-rw-r--r--doc/html/flattr-badge-large.pngbin0 -> 2238 bytes
-rw-r--r--doc/html/gf2_mul.gifbin0 -> 869 bytes
-rw-r--r--doc/html/styles.css31
-rw-r--r--doc/html/twitter_veracrypt.PNGbin0 -> 2374 bytes
-rw-r--r--src/Boot/EFI/DcsBml.efibin8544 -> 13312 bytes
-rw-r--r--src/Boot/EFI/DcsBml32.efibin6912 -> 10400 bytes
-rw-r--r--src/Boot/EFI/DcsBoot.efibin12704 -> 19776 bytes
-rw-r--r--src/Boot/EFI/DcsBoot32.efibin10080 -> 16352 bytes
-rw-r--r--src/Boot/EFI/DcsCfg.efibin489088 -> 919872 bytes
-rw-r--r--src/Boot/EFI/DcsCfg32.efibin484928 -> 780384 bytes
-rw-r--r--src/Boot/EFI/DcsInfo.efibin0 -> 29632 bytes
-rw-r--r--src/Boot/EFI/DcsInfo32.efibin0 -> 26528 bytes
-rw-r--r--src/Boot/EFI/DcsInt.efibin459392 -> 878336 bytes
-rw-r--r--src/Boot/EFI/DcsInt32.efibin471584 -> 759264 bytes
-rw-r--r--src/Boot/EFI/DcsRe.efibin18656 -> 18720 bytes
-rw-r--r--src/Boot/EFI/DcsRe32.efibin14688 -> 14752 bytes
-rw-r--r--src/Boot/EFI/Readme.txt9
-rw-r--r--src/Boot/Windows/Bios.h2
-rw-r--r--src/Boot/Windows/Boot.vcproj500
-rw-r--r--src/Boot/Windows/BootCommon.h38
-rw-r--r--src/Boot/Windows/BootConfig.cpp2
-rw-r--r--src/Boot/Windows/BootConfig.h2
-rw-r--r--src/Boot/Windows/BootConsoleIo.cpp2
-rw-r--r--src/Boot/Windows/BootConsoleIo.h2
-rw-r--r--src/Boot/Windows/BootCrt.asm2
-rw-r--r--src/Boot/Windows/BootDebug.cpp2
-rw-r--r--src/Boot/Windows/BootDebug.h2
-rw-r--r--src/Boot/Windows/BootDefs.h2
-rw-r--r--src/Boot/Windows/BootDiskIo.cpp2
-rw-r--r--src/Boot/Windows/BootDiskIo.h2
-rw-r--r--src/Boot/Windows/BootEncryptedIo.cpp2
-rw-r--r--src/Boot/Windows/BootEncryptedIo.h2
-rw-r--r--src/Boot/Windows/BootMain.cpp2
-rw-r--r--src/Boot/Windows/BootMain.h2
-rw-r--r--src/Boot/Windows/BootMemory.cpp2
-rw-r--r--src/Boot/Windows/BootMemory.h2
-rw-r--r--src/Boot/Windows/BootSector.asm2
-rw-r--r--src/Boot/Windows/BootStrings.h2
-rw-r--r--src/Boot/Windows/IntFilter.cpp2
-rw-r--r--src/Boot/Windows/IntFilter.h2
-rw-r--r--src/Boot/Windows/Makefile2
-rw-r--r--src/Boot/Windows/Platform.cpp2
-rw-r--r--src/Boot/Windows/Platform.h2
-rw-r--r--src/Build/Include/Makefile.inc10
-rw-r--r--src/Build/Resources/MacOSX/Info.plist.xml49
-rwxr-xr-xsrc/Build/Tools/MacOSX/nasmbin1818752 -> 0 bytes
-rwxr-xr-xsrc/Build/build_veracrypt_freebsd.sh48
-rwxr-xr-xsrc/Build/build_veracrypt_linux.sh14
-rwxr-xr-xsrc/Build/build_veracrypt_macosx.sh14
-rw-r--r--src/Common/Apidrvr.h22
-rw-r--r--src/Common/BaseCom.cpp30
-rw-r--r--src/Common/BaseCom.h3
-rw-r--r--src/Common/BootEncryption.cpp330
-rw-r--r--src/Common/BootEncryption.h19
-rw-r--r--src/Common/Cache.c2
-rw-r--r--src/Common/Cache.h2
-rw-r--r--src/Common/Cmdline.c2
-rw-r--r--src/Common/Cmdline.h2
-rw-r--r--src/Common/Combo.c4
-rw-r--r--src/Common/Combo.h2
-rw-r--r--src/Common/Common.h2
-rw-r--r--src/Common/Common.rc1276
-rw-r--r--src/Common/Crc.c2
-rw-r--r--src/Common/Crc.h2
-rw-r--r--src/Common/Crypto.c35
-rw-r--r--src/Common/Crypto.h6
-rw-r--r--src/Common/Dictionary.c2
-rw-r--r--src/Common/Dictionary.h2
-rw-r--r--src/Common/Dlgcode.c1277
-rw-r--r--src/Common/Dlgcode.h55
-rw-r--r--src/Common/EncryptionThreadPool.c2
-rw-r--r--src/Common/EncryptionThreadPool.h2
-rw-r--r--src/Common/Endian.c2
-rw-r--r--src/Common/Endian.h2
-rw-r--r--src/Common/Exception.h2
-rw-r--r--src/Common/Fat.c4
-rw-r--r--src/Common/Fat.h2
-rw-r--r--src/Common/Format.c17
-rw-r--r--src/Common/Format.h3
-rw-r--r--src/Common/Keyfiles.c4
-rw-r--r--src/Common/Keyfiles.h2
-rw-r--r--src/Common/Language.c7
-rw-r--r--src/Common/Language.h2
-rw-r--r--src/Common/Language.xml29
-rw-r--r--src/Common/Password.c18
-rw-r--r--src/Common/Password.h4
-rw-r--r--src/Common/Pkcs5.c126
-rw-r--r--src/Common/Pkcs5.h12
-rw-r--r--src/Common/Progress.c2
-rw-r--r--src/Common/Progress.h2
-rw-r--r--src/Common/Random.c2
-rw-r--r--src/Common/Random.h2
-rw-r--r--src/Common/Registry.c2
-rw-r--r--src/Common/Registry.h2
-rw-r--r--src/Common/Resource.h25
-rw-r--r--src/Common/SecurityToken.cpp2
-rw-r--r--src/Common/SecurityToken.h2
-rw-r--r--src/Common/Tcdefs.h47
-rw-r--r--src/Common/Tests.c51
-rw-r--r--src/Common/Tests.h2
-rw-r--r--src/Common/Volumes.c26
-rw-r--r--src/Common/Volumes.h4
-rw-r--r--src/Common/Wipe.c2
-rw-r--r--src/Common/Wipe.h2
-rw-r--r--src/Common/Xml.c2
-rw-r--r--src/Common/Xml.h4
-rw-r--r--src/Common/Xts.c2
-rw-r--r--src/Common/Xts.h2
-rw-r--r--src/Common/Zip.vcxproj289
-rw-r--r--src/Common/Zip.vcxproj.filters408
-rw-r--r--src/Common/Zip.vcxproj.user3
-rw-r--r--src/Common/libzip/LICENSE35
-rw-r--r--src/Common/libzip/NEWS.md11
-rw-r--r--src/Common/libzip/compat.h10
-rw-r--r--src/Common/libzip/config.h7
-rw-r--r--src/Common/libzip/zip.h27
-rw-r--r--src/Common/libzip/zip_add_entry.c2
-rw-r--r--src/Common/libzip/zip_buffer.c111
-rw-r--r--src/Common/libzip/zip_close.c151
-rw-r--r--src/Common/libzip/zip_delete.c2
-rw-r--r--src/Common/libzip/zip_dirent.c218
-rw-r--r--src/Common/libzip/zip_discard.c2
-rw-r--r--src/Common/libzip/zip_err_str.c4
-rw-r--r--src/Common/libzip/zip_error.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_fdopen.c2
-rw-r--r--src/Common/libzip/zip_file_get_offset.c2
-rw-r--r--src/Common/libzip/zip_filerange_crc.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_get_compression_implementation.c4
-rw-r--r--src/Common/libzip/zip_get_encryption_implementation.c20
-rw-r--r--src/Common/libzip/zip_io_util.c2
-rw-r--r--src/Common/libzip/zip_name_locate.c2
-rw-r--r--src/Common/libzip/zip_new.c4
-rw-r--r--src/Common/libzip/zip_open.c127
-rw-r--r--src/Common/libzip/zip_set_default_password.c2
-rw-r--r--src/Common/libzip/zip_set_name.c2
-rw-r--r--src/Common/libzip/zip_source_error.c8
-rw-r--r--src/Common/libzip/zip_source_file.c6
-rw-r--r--src/Common/libzip/zip_source_filep.c174
-rw-r--r--src/Common/libzip/zip_source_function.c3
-rw-r--r--src/Common/libzip/zip_source_open.c4
-rw-r--r--src/Common/libzip/zip_source_pkware.c2
-rw-r--r--src/Common/libzip/zip_source_read.c41
-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_win32handle.c9
-rw-r--r--src/Common/libzip/zip_source_zip_new.c9
-rw-r--r--src/Common/libzip/zip_stat_index.c15
-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/zipint.h64
-rw-r--r--src/Common/zlib/README6
-rw-r--r--src/Common/zlib/adler32.c21
-rw-r--r--src/Common/zlib/compress.c42
-rw-r--r--src/Common/zlib/crc32.c41
-rw-r--r--src/Common/zlib/deflate.c802
-rw-r--r--src/Common/zlib/deflate.h35
-rw-r--r--src/Common/zlib/gzguts.h23
-rw-r--r--src/Common/zlib/gzlib.c31
-rw-r--r--src/Common/zlib/gzread.c156
-rw-r--r--src/Common/zlib/gzwrite.c332
-rw-r--r--src/Common/zlib/infback.c4
-rw-r--r--src/Common/zlib/inffast.c85
-rw-r--r--src/Common/zlib/inflate.c123
-rw-r--r--src/Common/zlib/inflate.h11
-rw-r--r--src/Common/zlib/inftrees.c26
-rw-r--r--src/Common/zlib/trees.c99
-rw-r--r--src/Common/zlib/uncompr.c98
-rw-r--r--src/Common/zlib/zconf.h41
-rw-r--r--src/Common/zlib/zlib.h452
-rw-r--r--src/Common/zlib/zutil.c49
-rw-r--r--src/Common/zlib/zutil.h52
-rw-r--r--src/Core/Core.h2
-rw-r--r--src/Core/Core.make2
-rw-r--r--src/Core/CoreBase.cpp2
-rw-r--r--src/Core/CoreBase.h2
-rw-r--r--src/Core/CoreException.cpp2
-rw-r--r--src/Core/CoreException.h2
-rw-r--r--src/Core/FatFormatter.cpp6
-rw-r--r--src/Core/FatFormatter.h2
-rw-r--r--src/Core/HostDevice.cpp2
-rw-r--r--src/Core/HostDevice.h2
-rw-r--r--src/Core/MountOptions.cpp2
-rw-r--r--src/Core/MountOptions.h2
-rw-r--r--src/Core/RandomNumberGenerator.cpp2
-rw-r--r--src/Core/RandomNumberGenerator.h2
-rw-r--r--src/Core/Unix/CoreService.cpp2
-rw-r--r--src/Core/Unix/CoreService.h2
-rw-r--r--src/Core/Unix/CoreServiceProxy.h2
-rw-r--r--src/Core/Unix/CoreServiceRequest.cpp2
-rw-r--r--src/Core/Unix/CoreServiceRequest.h2
-rw-r--r--src/Core/Unix/CoreServiceResponse.cpp2
-rw-r--r--src/Core/Unix/CoreServiceResponse.h2
-rw-r--r--src/Core/Unix/CoreUnix.cpp2
-rw-r--r--src/Core/Unix/CoreUnix.h2
-rw-r--r--src/Core/Unix/FreeBSD/CoreFreeBSD.cpp2
-rw-r--r--src/Core/Unix/FreeBSD/CoreFreeBSD.h2
-rw-r--r--src/Core/Unix/FreeBSD/System.h2
-rw-r--r--src/Core/Unix/Linux/CoreLinux.cpp2
-rw-r--r--src/Core/Unix/Linux/CoreLinux.h2
-rw-r--r--src/Core/Unix/Linux/System.h2
-rw-r--r--src/Core/Unix/MacOSX/CoreMacOSX.cpp2
-rw-r--r--src/Core/Unix/MacOSX/CoreMacOSX.h2
-rw-r--r--src/Core/Unix/MacOSX/System.h2
-rw-r--r--src/Core/Unix/MountedFilesystem.h2
-rw-r--r--src/Core/Unix/Solaris/CoreSolaris.cpp2
-rw-r--r--src/Core/Unix/Solaris/CoreSolaris.h2
-rw-r--r--src/Core/Unix/Solaris/System.h2
-rw-r--r--src/Core/Unix/System.h2
-rw-r--r--src/Core/VolumeCreator.cpp2
-rw-r--r--src/Core/VolumeCreator.h2
-rw-r--r--src/Crypto/Aes_hw_cpu.asm43
-rw-r--r--src/Crypto/Aes_hw_cpu.h2
-rw-r--r--src/Crypto/Aes_x64.asm11
-rw-r--r--src/Crypto/Aes_x86.asm11
-rw-r--r--src/Crypto/Camellia.c1176
-rw-r--r--src/Crypto/Camellia.h6
-rw-r--r--src/Crypto/Camellia_aesni_x64.S340
-rw-r--r--src/Crypto/Camellia_aesni_x86.S5
-rw-r--r--src/Crypto/Camellia_x64.S318
-rw-r--r--src/Crypto/Camellia_x86.S5
-rw-r--r--src/Crypto/Crypto.vcproj1174
-rw-r--r--src/Crypto/Crypto.vcxproj120
-rw-r--r--src/Crypto/Crypto.vcxproj.filters42
-rw-r--r--src/Crypto/GostCipher.c4
-rw-r--r--src/Crypto/Makefile.inc36
-rw-r--r--src/Crypto/Rmd160.c2
-rw-r--r--src/Crypto/SerpentFast.c52
-rw-r--r--src/Crypto/SerpentFast_simd.cpp4
-rw-r--r--src/Crypto/Sha2.c1399
-rw-r--r--src/Crypto/Sha2.h151
-rw-r--r--src/Crypto/Sources26
-rw-r--r--src/Crypto/Twofish.c1060
-rw-r--r--src/Crypto/Twofish.h20
-rw-r--r--src/Crypto/Twofish_x64.S320
-rw-r--r--src/Crypto/Twofish_x86.S5
-rw-r--r--src/Crypto/Whirlpool.c11
-rw-r--r--src/Crypto/config.h20
-rw-r--r--src/Crypto/cpu.c49
-rw-r--r--src/Crypto/cpu.h98
-rw-r--r--src/Crypto/sha256-x64-nayuki.S6
-rw-r--r--src/Crypto/sha256-x86-nayuki.S168
-rw-r--r--src/Crypto/sha256_avx1_x64.asm596
-rw-r--r--src/Crypto/sha256_avx1_x86.asm10
-rw-r--r--src/Crypto/sha256_avx2_x64.asm840
-rw-r--r--src/Crypto/sha256_avx2_x86.asm10
-rw-r--r--src/Crypto/sha256_sse4_x64.asm560
-rw-r--r--src/Crypto/sha256_sse4_x86.asm10
-rw-r--r--src/Crypto/sha512-x64-nayuki.S207
-rw-r--r--src/Crypto/sha512-x86-nayuki.S180
-rw-r--r--src/Crypto/sha512_avx1_x64.asm427
-rw-r--r--src/Crypto/sha512_avx1_x86.asm10
-rw-r--r--src/Crypto/sha512_avx2_x64.asm804
-rw-r--r--src/Crypto/sha512_avx2_x86.asm10
-rw-r--r--src/Crypto/sha512_sse4_x64.asm416
-rw-r--r--src/Crypto/sha512_sse4_x86.asm10
-rw-r--r--src/Driver/BuildDriver.cmd368
-rw-r--r--src/Driver/DriveFilter.c241
-rw-r--r--src/Driver/DriveFilter.h2
-rw-r--r--src/Driver/Driver.rc202
-rw-r--r--src/Driver/Driver.vcproj796
-rw-r--r--src/Driver/Driver.vcxproj30
-rw-r--r--src/Driver/Driver.vcxproj.filters36
-rw-r--r--src/Driver/DumpFilter.c9
-rw-r--r--src/Driver/DumpFilter.h2
-rw-r--r--src/Driver/EncryptedIoQueue.c65
-rw-r--r--src/Driver/EncryptedIoQueue.h4
-rw-r--r--src/Driver/Fuse/Driver.make2
-rw-r--r--src/Driver/Fuse/FuseService.cpp2
-rw-r--r--src/Driver/Fuse/FuseService.h2
-rw-r--r--src/Driver/Ntdriver.c490
-rw-r--r--src/Driver/Ntdriver.h6
-rw-r--r--src/Driver/Ntvol.c169
-rw-r--r--src/Driver/Ntvol.h2
-rw-r--r--src/Driver/VolumeFilter.c2
-rw-r--r--src/Driver/VolumeFilter.h2
-rw-r--r--src/ExpandVolume/DlgExpandVolume.cpp2
-rw-r--r--src/ExpandVolume/ExpandVolume.c11
-rw-r--r--src/ExpandVolume/ExpandVolume.h2
-rw-r--r--src/ExpandVolume/ExpandVolume.rc596
-rw-r--r--src/ExpandVolume/ExpandVolume.vcproj1954
-rw-r--r--src/ExpandVolume/ExpandVolume.vcxproj188
-rw-r--r--src/ExpandVolume/ExpandVolume.vcxproj.filters396
-rw-r--r--src/ExpandVolume/InitDataArea.c2
-rw-r--r--src/ExpandVolume/InitDataArea.h2
-rw-r--r--src/ExpandVolume/WinMain.cpp34
-rw-r--r--src/Format/Format.rc1494
-rw-r--r--src/Format/Format.vcproj2056
-rw-r--r--src/Format/Format.vcxproj183
-rw-r--r--src/Format/Format.vcxproj.filters396
-rw-r--r--src/Format/FormatCom.cpp7
-rw-r--r--src/Format/FormatCom.h2
-rw-r--r--src/Format/FormatCom.idl5
-rw-r--r--src/Format/InPlace.c20
-rw-r--r--src/Format/InPlace.h2
-rw-r--r--src/Format/Tcformat.c169
-rw-r--r--src/Format/Tcformat.h2
-rw-r--r--src/LICENSE (renamed from src/Release/Setup Files/LICENSE)0
-rw-r--r--src/License.html2
-rw-r--r--src/License.txt2
-rw-r--r--src/Main/Application.cpp2
-rw-r--r--src/Main/Application.h2
-rw-r--r--src/Main/CommandLineInterface.cpp2
-rw-r--r--src/Main/CommandLineInterface.h2
-rw-r--r--src/Main/FatalErrorHandler.cpp6
-rw-r--r--src/Main/FatalErrorHandler.h2
-rw-r--r--src/Main/FavoriteVolume.cpp2
-rw-r--r--src/Main/FavoriteVolume.h2
-rw-r--r--src/Main/Forms/AboutDialog.cpp8
-rw-r--r--src/Main/Forms/AboutDialog.h2
-rw-r--r--src/Main/Forms/BenchmarkDialog.cpp2
-rw-r--r--src/Main/Forms/BenchmarkDialog.h2
-rw-r--r--src/Main/Forms/ChangePasswordDialog.cpp9
-rw-r--r--src/Main/Forms/ChangePasswordDialog.h2
-rw-r--r--src/Main/Forms/DeviceSelectionDialog.cpp2
-rw-r--r--src/Main/Forms/DeviceSelectionDialog.h2
-rw-r--r--src/Main/Forms/EncryptionOptionsWizardPage.cpp2
-rw-r--r--src/Main/Forms/EncryptionOptionsWizardPage.h2
-rw-r--r--src/Main/Forms/EncryptionTestDialog.cpp2
-rw-r--r--src/Main/Forms/EncryptionTestDialog.h2
-rw-r--r--src/Main/Forms/FavoriteVolumesDialog.cpp2
-rw-r--r--src/Main/Forms/FavoriteVolumesDialog.h2
-rw-r--r--src/Main/Forms/InfoWizardPage.cpp2
-rw-r--r--src/Main/Forms/InfoWizardPage.h2
-rw-r--r--src/Main/Forms/KeyfileGeneratorDialog.cpp2
-rw-r--r--src/Main/Forms/KeyfileGeneratorDialog.h2
-rw-r--r--src/Main/Forms/KeyfilesDialog.cpp2
-rw-r--r--src/Main/Forms/KeyfilesDialog.h2
-rw-r--r--src/Main/Forms/KeyfilesPanel.cpp2
-rw-r--r--src/Main/Forms/KeyfilesPanel.h2
-rw-r--r--src/Main/Forms/LegalNoticesDialog.cpp2
-rw-r--r--src/Main/Forms/LegalNoticesDialog.h2
-rw-r--r--src/Main/Forms/MainFrame.cpp2
-rw-r--r--src/Main/Forms/MainFrame.h2
-rw-r--r--src/Main/Forms/MountOptionsDialog.cpp8
-rw-r--r--src/Main/Forms/MountOptionsDialog.h2
-rw-r--r--src/Main/Forms/NewSecurityTokenKeyfileDialog.cpp2
-rw-r--r--src/Main/Forms/NewSecurityTokenKeyfileDialog.h2
-rwxr-xr-xsrc/Main/Forms/PreferencesDialog.cpp2
-rw-r--r--src/Main/Forms/PreferencesDialog.h2
-rw-r--r--src/Main/Forms/ProgressWizardPage.cpp2
-rw-r--r--src/Main/Forms/ProgressWizardPage.h2
-rw-r--r--src/Main/Forms/RandomPoolEnrichmentDialog.cpp2
-rw-r--r--src/Main/Forms/RandomPoolEnrichmentDialog.h2
-rw-r--r--src/Main/Forms/SecurityTokenKeyfilesDialog.cpp2
-rw-r--r--src/Main/Forms/SecurityTokenKeyfilesDialog.h2
-rw-r--r--src/Main/Forms/SelectDirectoryWizardPage.cpp2
-rw-r--r--src/Main/Forms/SelectDirectoryWizardPage.h2
-rw-r--r--src/Main/Forms/SingleChoiceWizardPage.h2
-rw-r--r--src/Main/Forms/VolumeCreationProgressWizardPage.cpp2
-rw-r--r--src/Main/Forms/VolumeCreationProgressWizardPage.h2
-rw-r--r--src/Main/Forms/VolumeCreationWizard.cpp2
-rw-r--r--src/Main/Forms/VolumeCreationWizard.h2
-rw-r--r--src/Main/Forms/VolumeFormatOptionsWizardPage.cpp2
-rw-r--r--src/Main/Forms/VolumeFormatOptionsWizardPage.h2
-rw-r--r--src/Main/Forms/VolumeLocationWizardPage.cpp2
-rw-r--r--src/Main/Forms/VolumeLocationWizardPage.h2
-rw-r--r--src/Main/Forms/VolumePasswordPanel.cpp12
-rw-r--r--src/Main/Forms/VolumePasswordPanel.h3
-rw-r--r--src/Main/Forms/VolumePasswordWizardPage.cpp2
-rw-r--r--src/Main/Forms/VolumePasswordWizardPage.h2
-rw-r--r--src/Main/Forms/VolumePropertiesDialog.cpp2
-rw-r--r--src/Main/Forms/VolumePropertiesDialog.h2
-rw-r--r--src/Main/Forms/VolumeSizeWizardPage.cpp2
-rw-r--r--src/Main/Forms/VolumeSizeWizardPage.h2
-rw-r--r--src/Main/Forms/WaitDialog.cpp2
-rw-r--r--src/Main/Forms/WaitDialog.h2
-rw-r--r--src/Main/Forms/WizardFrame.cpp2
-rw-r--r--src/Main/Forms/WizardFrame.h2
-rw-r--r--src/Main/Forms/WizardPage.h2
-rwxr-xr-x[-rw-r--r--]src/Main/GraphicUserInterface.cpp146
-rw-r--r--src/Main/GraphicUserInterface.h4
-rw-r--r--src/Main/Hotkey.cpp2
-rw-r--r--src/Main/Hotkey.h2
-rw-r--r--src/Main/LanguageStrings.cpp2
-rw-r--r--src/Main/LanguageStrings.h2
-rw-r--r--src/Main/Main.h2
-rwxr-xr-x[-rw-r--r--]src/Main/Main.make93
-rw-r--r--src/Main/Resources.cpp2
-rw-r--r--src/Main/Resources.h2
-rw-r--r--src/Main/StringFormatter.cpp2
-rw-r--r--src/Main/StringFormatter.h2
-rw-r--r--src/Main/System.cpp2
-rw-r--r--src/Main/System.h2
-rw-r--r--src/Main/SystemPrecompiled.h2
-rw-r--r--src/Main/TextUserInterface.cpp2
-rw-r--r--src/Main/TextUserInterface.h2
-rw-r--r--src/Main/Unix/Main.cpp2
-rw-r--r--src/Main/UserInterface.cpp13
-rw-r--r--src/Main/UserInterface.h2
-rw-r--r--src/Main/UserInterfaceException.h2
-rw-r--r--src/Main/UserInterfaceType.h2
-rwxr-xr-xsrc/Main/UserPreferences.cpp2
-rw-r--r--src/Main/UserPreferences.h2
-rw-r--r--src/Main/VolumeHistory.cpp2
-rw-r--r--src/Main/VolumeHistory.h2
-rw-r--r--src/Main/Xml.cpp2
-rw-r--r--src/Main/Xml.h2
-rw-r--r--src/Makefile63
-rw-r--r--src/Mount/Favorites.cpp105
-rw-r--r--src/Mount/Favorites.h6
-rw-r--r--src/Mount/Hotkeys.c2
-rw-r--r--src/Mount/Hotkeys.h2
-rw-r--r--src/Mount/MainCom.cpp7
-rw-r--r--src/Mount/MainCom.h2
-rw-r--r--src/Mount/MainCom.idl5
-rw-r--r--src/Mount/Mount.c850
-rw-r--r--src/Mount/Mount.h2
-rw-r--r--src/Mount/Mount.rc1486
-rw-r--r--src/Mount/Mount.vcproj2054
-rw-r--r--src/Mount/Mount.vcxproj189
-rw-r--r--src/Mount/Mount.vcxproj.filters399
-rw-r--r--src/Mount/Resource.h6
-rw-r--r--src/NOTICE (renamed from src/Release/Setup Files/NOTICE)0
-rw-r--r--src/Platform/Buffer.cpp2
-rw-r--r--src/Platform/Buffer.h2
-rw-r--r--src/Platform/Directory.h2
-rw-r--r--src/Platform/Event.cpp2
-rw-r--r--src/Platform/Event.h2
-rw-r--r--src/Platform/Exception.cpp2
-rw-r--r--src/Platform/Exception.h2
-rw-r--r--src/Platform/File.h2
-rw-r--r--src/Platform/FileCommon.cpp2
-rw-r--r--src/Platform/FileStream.h2
-rw-r--r--src/Platform/FilesystemPath.h2
-rw-r--r--src/Platform/Finally.h2
-rw-r--r--src/Platform/ForEach.h2
-rw-r--r--src/Platform/Functor.h2
-rw-r--r--src/Platform/Memory.cpp2
-rw-r--r--src/Platform/Memory.h2
-rw-r--r--src/Platform/MemoryStream.cpp2
-rw-r--r--src/Platform/MemoryStream.h2
-rw-r--r--src/Platform/Mutex.h2
-rw-r--r--src/Platform/Platform.h2
-rw-r--r--src/Platform/Platform.make2
-rw-r--r--src/Platform/PlatformBase.h2
-rw-r--r--src/Platform/PlatformTest.cpp2
-rw-r--r--src/Platform/PlatformTest.h2
-rw-r--r--src/Platform/Serializable.cpp2
-rw-r--r--src/Platform/Serializable.h2
-rw-r--r--src/Platform/Serializer.cpp2
-rw-r--r--src/Platform/Serializer.h2
-rw-r--r--src/Platform/SerializerFactory.cpp2
-rw-r--r--src/Platform/SerializerFactory.h2
-rw-r--r--src/Platform/SharedPtr.h2
-rw-r--r--src/Platform/SharedVal.h2
-rw-r--r--src/Platform/Stream.h2
-rw-r--r--src/Platform/StringConverter.cpp2
-rw-r--r--src/Platform/StringConverter.h2
-rw-r--r--src/Platform/SyncEvent.h2
-rw-r--r--src/Platform/System.h2
-rw-r--r--src/Platform/SystemException.h2
-rw-r--r--src/Platform/SystemInfo.h2
-rw-r--r--src/Platform/SystemLog.h2
-rw-r--r--src/Platform/TextReader.cpp2
-rw-r--r--src/Platform/TextReader.h2
-rw-r--r--src/Platform/Thread.h2
-rw-r--r--src/Platform/Time.h2
-rw-r--r--src/Platform/Unix/Directory.cpp2
-rw-r--r--src/Platform/Unix/File.cpp2
-rw-r--r--src/Platform/Unix/FilesystemPath.cpp2
-rw-r--r--src/Platform/Unix/Mutex.cpp2
-rw-r--r--src/Platform/Unix/Pipe.cpp2
-rw-r--r--src/Platform/Unix/Pipe.h2
-rw-r--r--src/Platform/Unix/Poller.cpp2
-rw-r--r--src/Platform/Unix/Poller.h2
-rw-r--r--src/Platform/Unix/Process.cpp2
-rw-r--r--src/Platform/Unix/Process.h2
-rw-r--r--src/Platform/Unix/SyncEvent.cpp2
-rw-r--r--src/Platform/Unix/System.h2
-rw-r--r--src/Platform/Unix/SystemException.cpp2
-rw-r--r--src/Platform/Unix/SystemInfo.cpp2
-rw-r--r--src/Platform/Unix/SystemLog.cpp2
-rw-r--r--src/Platform/Unix/Thread.cpp2
-rw-r--r--src/Platform/Unix/Time.cpp2
-rw-r--r--src/Platform/User.h2
-rw-r--r--src/Readme.txt49
-rw-r--r--src/Release/Setup Files/VeraCrypt User Guide.pdfbin2896857 -> 0 bytes
-rw-r--r--src/Release/Setup Files/veracrypt-x64.sysbin467368 -> 631200 bytes
-rw-r--r--src/Release/Setup Files/veracrypt.sysbin516264 -> 568224 bytes
-rw-r--r--src/Resources/Icons/VeraCrypt_Volume.icnsbin0 -> 336546 bytes
-rw-r--r--src/Setup/ComSetup.cpp27
-rw-r--r--src/Setup/ComSetup.h2
-rw-r--r--src/Setup/Dir.c2
-rw-r--r--src/Setup/Dir.h2
-rw-r--r--src/Setup/FreeBSD/veracrypt-uninstall.sh11
-rw-r--r--src/Setup/FreeBSD/veracrypt.desktop10
-rw-r--r--src/Setup/FreeBSD/veracrypt_install_template.sh (renamed from src/Release/Setup Files/License.txt)828
-rw-r--r--src/Setup/Linux/veracrypt-uninstall.sh4
-rw-r--r--src/Setup/Linux/veracrypt_install_template.sh2
-rwxr-xr-xsrc/Setup/MacOSX/veracrypt.pkgproj12
-rw-r--r--src/Setup/SelfExtract.c2
-rw-r--r--src/Setup/SelfExtract.h2
-rw-r--r--src/Setup/Setup.c98
-rw-r--r--src/Setup/Setup.h94
-rw-r--r--src/Setup/Setup.rc654
-rw-r--r--src/Setup/Setup.vcproj968
-rw-r--r--src/Setup/Setup.vcxproj161
-rw-r--r--src/Setup/Setup.vcxproj.filters406
-rw-r--r--src/Setup/Wizard.c12
-rw-r--r--src/Setup/Wizard.h2
-rw-r--r--src/Signing/sign.bat88
-rw-r--r--src/Signing/sign_test.bat96
-rw-r--r--src/Signing/sign_test_debug.bat66
-rw-r--r--src/VeraCrypt.sln958
-rw-r--r--src/Volume/Cipher.cpp85
-rw-r--r--src/Volume/Cipher.h7
-rw-r--r--src/Volume/Crc32.h2
-rw-r--r--src/Volume/EncryptionAlgorithm.cpp2
-rw-r--r--src/Volume/EncryptionAlgorithm.h2
-rw-r--r--src/Volume/EncryptionMode.cpp2
-rw-r--r--src/Volume/EncryptionMode.h2
-rw-r--r--src/Volume/EncryptionModeXTS.cpp2
-rw-r--r--src/Volume/EncryptionModeXTS.h2
-rw-r--r--src/Volume/EncryptionTest.cpp2
-rw-r--r--src/Volume/EncryptionTest.h2
-rw-r--r--src/Volume/EncryptionThreadPool.cpp2
-rw-r--r--src/Volume/EncryptionThreadPool.h2
-rw-r--r--src/Volume/Hash.cpp12
-rw-r--r--src/Volume/Hash.h2
-rw-r--r--src/Volume/Keyfile.cpp2
-rw-r--r--src/Volume/Keyfile.h2
-rw-r--r--src/Volume/Pkcs5Kdf.cpp2
-rw-r--r--src/Volume/Pkcs5Kdf.h2
-rw-r--r--src/Volume/Version.h2
-rw-r--r--src/Volume/Volume.cpp2
-rw-r--r--src/Volume/Volume.h29
-rw-r--r--src/Volume/Volume.make65
-rw-r--r--src/Volume/VolumeException.cpp2
-rw-r--r--src/Volume/VolumeException.h2
-rw-r--r--src/Volume/VolumeHeader.cpp2
-rw-r--r--src/Volume/VolumeHeader.h2
-rw-r--r--src/Volume/VolumeInfo.cpp2
-rw-r--r--src/Volume/VolumeInfo.h2
-rw-r--r--src/Volume/VolumeLayout.cpp2
-rw-r--r--src/Volume/VolumeLayout.h2
-rw-r--r--src/Volume/VolumePassword.cpp2
-rw-r--r--src/Volume/VolumePassword.h2
-rw-r--r--src/Volume/VolumePasswordCache.cpp2
-rw-r--r--src/Volume/VolumePasswordCache.h2
-rw-r--r--src/Volume/VolumeSlot.h2
751 files changed, 39022 insertions, 16070 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1d41a50
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,51 @@
+# Set the default behavior, in case people don't have core.autocrlf set.
+* text=auto
+
+# Explicitly declare text files that could be normalized and converted
+# to native line endings on checkout. However, as per the policy they're
+# supposed to have LF endings on all platforms.
+*.[ch] text diff=cpp eol=lf
+*.[ch]pp text diff=cpp eol=lf
+*.asm text eol=lf
+Makefile text eol=lf
+*.make text eol=lf
+*.mk text eol=lf
+*.inc text eol=lf
+*.md text eol=lf
+*.xml text eol=lf
+*.xpm text -diff -merge eol=lf
+*.pem text -diff -merge eol=lf
+*.cer text -diff -merge eol=lf
+*.manifest text eol=lf
+*.sh text eol=lf
+*.txt text eol=lf
+*.html text diff=html eol=lf
+*.idl text eol=lf
+*.fbp text eol=lf
+*.rgs text eol=lf
+*.pkgproj text eol=lf
+*.S text eol=lf
+Sources text eol=lf
+
+# Declare files that will always have LF line endings on checkout.
+*.desktop text eol=lf
+
+# Declare files that will always have CRLF line endings on checkout.
+*.sln text eol=crlf
+*.vcproj text eol=crlf
+*.rc text eol=crlf
+*.bat text eol=crlf
+*.cmd text eol=crlf
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
+*.pdf binary
+*.bmp binary
+*.ico binary
+*.od[fgpst] binary
+*.hc binary
+*.icns binary
+*.rtf binary
+*.bz2 binary
+*.pfx binary
diff --git a/License.txt b/License.txt
index 675207e..eff7329 100644
--- a/License.txt
+++ b/License.txt
@@ -679,7 +679,7 @@ warranties in respect of its properties, including, but not
limited to, correctness and/or fitness for purpose.
____________________________________________________________
-Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
diff --git a/README.md b/README.md
index 41eabe9..65f5d1e 100644
--- a/README.md
+++ b/README.md
@@ -18,16 +18,16 @@ Contents
========
I. Windows
- Requirements for Building VeraCrypt for Windows
- Instructions for Building VeraCrypt for Windows
- Instructions for Signing and Packaging VeraCrypt for Windows
+ Requirements for Building VeraCrypt for Windows.
+ Instructions for Building VeraCrypt for Windows.
+ Instructions for Signing and Packaging VeraCrypt for Windows.
II. Linux and Mac OS X
- Requirements for Building VeraCrypt for Linux and Mac OS X
- Instructions for Building VeraCrypt for Linux and Mac OS X
+ Requirements for Building VeraCrypt for Linux and Mac OS X.
+ Instructions for Building VeraCrypt for Linux and Mac OS X.
Mac OS X specifics
-III. FreeBSD and OpenSolaris
+III. FreeBSD
IV. Third-Party Developers (Contributors)
@@ -49,8 +49,9 @@ Requirements for Building VeraCrypt for Windows:
- Microsoft Windows SDK for Windows 8.1 (needed for SHA-256 code signing)
- Microsoft Windows Driver Kit 7.1.0 (build 7600.16385.1)
- NASM assembler 2.08 or compatible
+- YASM 1.3.0 or newer.
- gzip compressor
-- upx packer (available at http://upx.sourceforge.net/)
+- upx packer (available at https://upx.github.io/)
IMPORTANT:
@@ -128,11 +129,10 @@ Requirements for Building VeraCrypt for Linux and Mac OS X:
- GNU Make
- GNU C++ Compiler 4.0 or compatible
- Apple Xcode (Mac OS X only)
-- NASM assembler 2.08 or compatible (x86/x64 architecture only)
+- YASM 1.3.0 or newer (Linux only, x86/x64 architecture only)
- pkg-config
-- makeself (Linux only)
- wxWidgets 3.0 shared library and header files installed or
- wxWidgets 3.0 library source code (available at http://www.wxwidgets.org)
+ wxWidgets 3.0 library source code (available at https://www.wxwidgets.org)
- FUSE library and header files (available at https://github.com/libfuse/libfuse
and https://osxfuse.github.io/)
@@ -183,7 +183,7 @@ of the SDK (i.e. 10.6), you can export the environment variable VC_OSX_TARGET:
Before building under MacOSX, pkg-config must be installed if not yet available.
-Get it from http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz and
+Get it from https://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz and
compile using the following commands :
$ ./configure --with-internal-glib
@@ -195,24 +195,27 @@ https://osxfuse.github.io/ (MacFUSE compatibility layer must selected)
The script build_veracrypt_macosx.sh available under "src/Build" performs the
full build of VeraCrypt including the creation of the installer pkg. It expects
-to find the wxWidgets 3.0.2 sources at the same level as where you put
+to find the wxWidgets 3.0.3 sources at the same level as where you put
VeraCrypt sources (i.e. if "src" path is "/Users/joe/Projects/VeraCrypt/src"
-then wxWidgets should be at "/Users/joe/Projects/wxWidgets-3.0.2")
+then wxWidgets should be at "/Users/joe/Projects/wxWidgets-3.0.3")
The build process uses Code Signing certificates whose ID is specified in
-src/Main/Main.make (lines 167 & 169). You'll have to modify these lines to put
-the ID of your Code Signing certificates or comment them if you don't have one.
+src/Main/Main.make (look for lines containing "Developer ID Application" and
+"Developer ID Installer"). You'll have to modify these lines to put the ID of
+your Code Signing certificates or comment them if you don't have one.
Because of incompatibility issues with OSXFUSE, the SDK 10.9 generates a
VeraCrypt binary that has issues communicating with the OSXFUSE kernel extension.
-Thus, we recommend to use the SDK 10.8 or earlier for building VeraCrypt.
+Thus, we recommend using a different OSX SDK version for building VeraCrypt.
-III. FreeBSD and OpenSolaris
+III. FreeBSD
============================
-FreeBSD and OpenSolaris are not yet supported.
+FreeBSD is supported starting from version 11.
+The build requirements and instructions are the same as Linux except that gmake
+should be used instead of make.
@@ -227,7 +230,7 @@ If you intend to implement a feature, please contact us first to make sure:
3) Whether we need help of third-party developers with implementing the feature.
Information on how to contact us can be found at:
-https://veracrypt.codeplex.com/
+https://www.veracrypt.fr/
@@ -238,17 +241,18 @@ Copyright Information
---------------------
This software as a whole:
-Copyright (c) 2013-2016 IDRIX. All rights reserved.
+Copyright (c) 2013-2017 IDRIX. All rights reserved.
Portions of this software:
-Copyright (c) 2013-2016 IDRIX. All rights reserved.
+Copyright (c) 2013-2017 IDRIX. All rights reserved.
Copyright (c) 2003-2012 TrueCrypt Developers Association. All rights reserved.
Copyright (c) 1998-2000 Paul Le Roux. All rights reserved.
Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved.
-Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler.
+Copyright (c) 1995-2017 Jean-loup Gailly and Mark Adler.
Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
Copyright (c) Dieter Baron and Thomas Klausner.
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
+Copyright (c) 1999-2013,2014,2015,2016 Jack Lloyd. All rights reserved.
For more information, please see the legal notices attached to parts of the
source code.
@@ -264,4 +268,4 @@ documentation, are the sole property of their respective owners.
VI. Further Information
=======================
-http://www.veracrypt.fr
+https://www.veracrypt.fr
diff --git a/Tests/bench.bat b/Tests/bench.bat
index ec21ed0..d243b4d 100644
--- a/Tests/bench.bat
+++ b/Tests/bench.bat
@@ -1,321 +1,380 @@
-@echo off
-
-setlocal
-
-call :freedrive mydriveletter && goto :cont
-echo ERROR: No free drive letter found.
-goto :exit
-:cont
-
-echo Using drive letter %mydriveletter%: for our tests
-echo.
-
-IF NOT EXIST test.sha512.hc GOTO :whirlpool
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount SHA-512 container (Normal)
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha512.hc /hash sha512 /l %mydriveletter% /password test /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo SHA-512 (Normal) = %hh%:%mm%:%ss%,%cc%
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount SHA-512 container (Hidden)
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha512.hc /hash sha512 /l %mydriveletter% /password testhidden /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo SHA-512 (Hidden) = %hh%:%mm%:%ss%,%cc%
-echo.
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-:whirlpool
-
-IF NOT EXIST test.whirlpool.hc GOTO :sha256
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount Whirlpool container (Normal).
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.whirlpool.hc /hash whirlpool /l %mydriveletter% /password test /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo Whirlpool (Normal) = %hh%:%mm%:%ss%,%cc%
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount Whirlpool container (Hidden).
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.whirlpool.hc /hash whirlpool /l %mydriveletter% /password testhidden /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo Whirlpool (Hidden) = %hh%:%mm%:%ss%,%cc%
-echo.
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-:sha256
-
-IF NOT EXIST test.sha256.hc GOTO :ripemd160
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount SHA-256 container (Normal)
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha256.hc /hash sha256 /l %mydriveletter% /password test /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo SHA-256 (Normal) = %hh%:%mm%:%ss%,%cc%
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount SHA-256 container (Hidden)
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha256.hc /hash sha256 /l %mydriveletter% /password testhidden /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo SHA-256 (Hidden) = %hh%:%mm%:%ss%,%cc%
-echo.
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-:ripemd160
-
-IF NOT EXIST test.ripemd160.hc GOTO :autodetect
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount RIPEMD-160 container (Normal)
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.ripemd160.hc /hash ripemd160 /l %mydriveletter% /password test /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo RIPEMD-160 (Normal) = %hh%:%mm%:%ss%,%cc%
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Mount RIPEMD-160 container (Hidden)
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.ripemd160.hc /hash ripemd160 /l %mydriveletter% /password testhidden /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo RIPEMD-160 (Hidden) = %hh%:%mm%:%ss%,%cc%
-echo.
-
-"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
-
-:autodetect
-
-call :availablevolume testvolume && goto :contautodetect
-goto :exit
-:contautodetect
-
-rem Get start time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Try to mount with a wrong password and PRF autodetection
-"c:\Program Files\VeraCrypt\veracrypt.exe" /volume %testvolume% /l %mydriveletter% /password wrongpassword /q /silent /m ro
-
-rem Get end time:
-for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
- set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
-)
-
-rem Get elapsed time:
-set /A elapsed=end-start
-
-rem Show elapsed time:
-set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
-if %hh% lss 10 set hh=0%hh%
-if %mm% lss 10 set mm=0%mm%
-if %ss% lss 10 set ss=0%ss%
-if %cc% lss 10 set cc=0%cc%
-echo Wrong Password (PRF Auto-detection)= %hh%:%mm%:%ss%,%cc%
-echo.
-
-
-goto :exit
-
-rem Finds a free drive letter.
-rem
-rem Parameters:
-rem %1 = Output variable name.
-rem
-rem Example:
-rem call :freedrive mydriveletter && goto :cont
-rem echo ERROR: No free drive letter found.
-rem goto :EOF
-rem :cont
-rem echo Found drive letter: %mydriveletter%
-:freedrive
-setlocal EnableDelayedExpansion
-set exitcode=0
-set "output_var=%~1"
-for %%i in (C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
- set "drive=%%i:"
- rem If 'subst' fails, the drive letter is already in use.
- rem This way we can even detect optical drives that have a drive
- rem letter but no media in them, a case that goes undetected when
- rem using 'if exist'.
- subst !drive! %SystemDrive%\ >nul
- if !errorlevel! == 0 (
- subst !drive! /d >nul
- set "drive=%%i"
- goto :freedrive0
- )
-)
-set exitcode=1
-set drive=
-:freedrive0
-endlocal & set "%output_var%=%drive%" & exit /b %exitcode%
-
-:availablevolume
-setlocal EnableDelayedExpansion
-set exitcode=0
-set "output_var=%~1"
-for %%i in (test.sha512.hc,test.sha256.hc,test.whirlpool.hc,test.ripemd160.hc) do (
- if exist %%i (
- set "volume=%%i"
- goto :availablevolume0
- )
-)
-set exitcode=1
-set volume=
-:availablevolume0
-endlocal & set "%output_var%=%volume%" & exit /b %exitcode%
-
-:exit
+@echo off
+
+setlocal
+
+call :freedrive mydriveletter && goto :cont
+echo ERROR: No free drive letter found.
+goto :exit
+:cont
+
+echo Using drive letter %mydriveletter%: for our tests
+echo.
+
+IF NOT EXIST test.sha512.hc GOTO :whirlpool
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount SHA-512 container (Normal)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha512.hc /hash sha512 /l %mydriveletter% /password test /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo SHA-512 (Normal) = %hh%:%mm%:%ss%,%cc%
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount SHA-512 container (Hidden)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha512.hc /hash sha512 /l %mydriveletter% /password testhidden /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo SHA-512 (Hidden) = %hh%:%mm%:%ss%,%cc%
+echo.
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+:whirlpool
+
+IF NOT EXIST test.whirlpool.hc GOTO :sha256
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount Whirlpool container (Normal).
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.whirlpool.hc /hash whirlpool /l %mydriveletter% /password test /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo Whirlpool (Normal) = %hh%:%mm%:%ss%,%cc%
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount Whirlpool container (Hidden).
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.whirlpool.hc /hash whirlpool /l %mydriveletter% /password testhidden /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo Whirlpool (Hidden) = %hh%:%mm%:%ss%,%cc%
+echo.
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+:sha256
+
+IF NOT EXIST test.sha256.hc GOTO :ripemd160
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount SHA-256 container (Normal)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha256.hc /hash sha256 /l %mydriveletter% /password test /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo SHA-256 (Normal) = %hh%:%mm%:%ss%,%cc%
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount SHA-256 container (Hidden)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.sha256.hc /hash sha256 /l %mydriveletter% /password testhidden /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo SHA-256 (Hidden) = %hh%:%mm%:%ss%,%cc%
+echo.
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+:ripemd160
+
+IF NOT EXIST test.ripemd160.hc GOTO :streebog
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount RIPEMD-160 container (Normal)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.ripemd160.hc /hash ripemd160 /l %mydriveletter% /password test /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo RIPEMD-160 (Normal) = %hh%:%mm%:%ss%,%cc%
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount RIPEMD-160 container (Hidden)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.ripemd160.hc /hash ripemd160 /l %mydriveletter% /password testhidden /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo RIPEMD-160 (Hidden) = %hh%:%mm%:%ss%,%cc%
+echo.
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+:streebog
+
+IF NOT EXIST test.streebog.hc GOTO :autodetect
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount Streebog container (Normal)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.streebog.hc /hash streebog /l %mydriveletter% /password test /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo Streebog (Normal) = %hh%:%mm%:%ss%,%cc%
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Mount Streebog container (Hidden)
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume test.streebog.hc /hash streebog /l %mydriveletter% /password testhidden /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo Streebog (Hidden) = %hh%:%mm%:%ss%,%cc%
+echo.
+
+"c:\Program Files\VeraCrypt\veracrypt.exe" /dismount %mydriveletter% /silent /q
+
+:autodetect
+
+call :availablevolume testvolume && goto :contautodetect
+goto :exit
+:contautodetect
+
+rem Get start time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Try to mount with a wrong password and PRF autodetection
+"c:\Program Files\VeraCrypt\veracrypt.exe" /volume %testvolume% /l %mydriveletter% /password wrongpassword /q /silent /m ro
+
+rem Get end time:
+for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
+ set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
+)
+
+rem Get elapsed time:
+set /A elapsed=end-start
+
+rem Show elapsed time:
+set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
+if %hh% lss 10 set hh=0%hh%
+if %mm% lss 10 set mm=0%mm%
+if %ss% lss 10 set ss=0%ss%
+if %cc% lss 10 set cc=0%cc%
+echo Wrong Password (PRF Auto-detection)= %hh%:%mm%:%ss%,%cc%
+echo.
+
+
+goto :exit
+
+rem Finds a free drive letter.
+rem
+rem Parameters:
+rem %1 = Output variable name.
+rem
+rem Example:
+rem call :freedrive mydriveletter && goto :cont
+rem echo ERROR: No free drive letter found.
+rem goto :EOF
+rem :cont
+rem echo Found drive letter: %mydriveletter%
+:freedrive
+setlocal EnableDelayedExpansion
+set exitcode=0
+set "output_var=%~1"
+for %%i in (C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
+ set "drive=%%i:"
+ rem If 'subst' fails, the drive letter is already in use.
+ rem This way we can even detect optical drives that have a drive
+ rem letter but no media in them, a case that goes undetected when
+ rem using 'if exist'.
+ subst !drive! %SystemDrive%\ >nul
+ if !errorlevel! == 0 (
+ subst !drive! /d >nul
+ set "drive=%%i"
+ goto :freedrive0
+ )
+)
+set exitcode=1
+set drive=
+:freedrive0
+endlocal & set "%output_var%=%drive%" & exit /b %exitcode%
+
+:availablevolume
+setlocal EnableDelayedExpansion
+set exitcode=0
+set "output_var=%~1"
+for %%i in (test.sha512.hc,test.sha256.hc,test.whirlpool.hc,test.ripemd160.hc) do (
+ if exist %%i (
+ set "volume=%%i"
+ goto :availablevolume0
+ )
+)
+set exitcode=1
+set volume=
+:availablevolume0
+endlocal & set "%output_var%=%volume%" & exit /b %exitcode%
+
+:exit
+
+pause \ No newline at end of file
diff --git a/Tests/test.streebog.hc b/Tests/test.streebog.hc
new file mode 100644
index 0000000..569d085
--- /dev/null
+++ b/Tests/test.streebog.hc
Binary files differ
diff --git a/Translations/Language.ar.xml b/Translations/Language.ar.xml
index dbc8d93..ae57d08 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="ar" name="العربية" en-name="Arabic" version="0.2.0" translators="Ahmad Gharbeia, Khaled Hosny, Ali Khojah" />
<!-- Fonts -->
@@ -857,7 +857,7 @@
<string lang="ar" key="TC_INSTALLER_IS_RUNNING">‮أداة تنصيب ڤيراكربت عاملة حاليا ÙÙŠ هذا النظام Ùˆ تجري أو تهيئ تنصيبا أو تحديثا. قبل المواصلة انتظر حتى تتم عملها أو أغلقها. إن تعذّر إغلاقها Ùأعد تشغيل النظام.</string>
<string lang="ar" key="INSTALL_FAILED">‮Ùشل التنصيب.</string>
<string lang="ar" key="UNINSTALL_FAILED">‮Ùشلت الإزالة.</string>
- <string lang="ar" key="DIST_PACKAGE_CORRUPTED">‮حزمة التوزيع هذه معطوبة. حاول تنزيلها مجددا (يستحسن من موقع ڤيراكربت الرسمي ÙÙŠ ‪https://veracrypt.codeplex.com‬).</string>
+ <string lang="ar" key="DIST_PACKAGE_CORRUPTED">‮حزمة التوزيع هذه معطوبة. حاول تنزيلها مجددا (يستحسن من موقع ڤيراكربت الرسمي ÙÙŠ ‪https://www.veracrypt.fr‬).</string>
<string lang="ar" key="CANNOT_WRITE_FILE_X">‮تعذّرت كتابة المل٠‪%s‬</string>
<string lang="ar" key="EXTRACTING_VERB">‮يجري الاستحراج</string>
<string lang="ar" key="CANNOT_READ_FROM_PACKAGE">‮تعذّرت قراءة البيانات من الحزمة.</string>
@@ -1077,7 +1077,7 @@
<string lang="ar" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">لم يعد Ùيراكربت يدعم تشÙير جزء/قرص النظام لويندوز Ùيستا من دون تثبيت حزمة الخدمات الترقيعية. قبل ترقية Ùيراكربت, يرجى تثبيت تلك الحزمة.</string>
<string lang="ar" key="FEATURE_REQUIRES_INSTALLATION">خطأ: هذه الميزة تتطلب أن يكون Ùيراكربت مثبتا على الجهاز (أنت تشغل Ùيراكربت المتنقل).\n\nيرجى تثبيت النسخة الكاملة من Ùيراكربت ثم المحاولة مرة أخرى.</string>
<string lang="ar" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">تحذير: لايبدو ويندوز مثبتا على القرص الذي يقلع منه. هذا غير مدعوم.\n\nأكمل Ùقط إذا كنت متأكدا من وجود ويندوز على القرص المقلع منه.\n\nهل تريد الاستمرار?</string>
- <string lang="en" key="GPT_BOOT_DRIVE_UNSUPPORTED">You are running a 32-bit Windows and your system drive has a GUID partition table (GPT). Currently, only Windows 64-bit is supported for GPT system encryption.</string>
+ <string lang="ar" key="GPT_BOOT_DRIVE_UNSUPPORTED">أنت تعمل على نظام ويندوز-32 بت وقرص النظام عليه جدول تجزئة GUID (GPT). حاليا Ùقط نظام ويندوز-64 بت يدعم تشÙير النظام على GPT</string>
<string lang="ar" key="TC_BOOT_LOADER_ALREADY_INSTALLED">‮تنبيه: Ù…ÙحمّÙÙ„ إقلاع ڤيراكربت منصّب بالÙعل ÙÙŠ سواقة النظام! ‮ ‮ربما يوجد نظام تشغيل آخر Ù…Ùعمّى بالÙعل. ‮ ‮تحذير: مواصلة تعمية النظام العامل حاليا قد يجعل من غير الممكن تشغيل النظم الأخرى أو النÙاذ إلى بياناتها. ‮ ‮أمتأكد أنك تريد المواصلة؟</string>
<string lang="ar" key="SYS_LOADER_RESTORE_FAILED">Ùشلت عملية استعادة إقلاع النظام الأصل.\n\nيرجى استخدام قرص إسعا٠Ùيراكربت ('خيارات الإصلاح' &gt; 'استرجع نظام الإقلاع الأصل') أو قرص ويندوز المدمج لاستعادة نظام الإقلاع من ويندوز.</string>
<string lang="ar" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">‮مÙحمّÙÙ„ النظام الأصلي لن ÙŠÙØ­Ùظ على قرص الإنقاذ (سبب محتمل: مل٠محÙوظة Ù…Ùقود).</string>
@@ -1232,7 +1232,7 @@
<string lang="ar" key="HIDDEN_OS_CREATION_PREINFO_HELP">‮ÙÙŠ الخطوات التالية سينشئ ڤيراكربت نظام التشغيل المخÙÙŠ بنسخ محتوى قسم النظام إلى المجلد المخÙÙŠ (البيانات المنسوخة ستÙعمى لحظيا بمÙتاح تعمية يختل٠عن الذي سيستخدم لنظام التشغيل التمويهي). ‮ ‮لاحظ أن هذه الصيرورة ستجري ÙÙŠ بيئة ما قبل الإقلاع (قبل أن يشتغل ويندوز) Ùˆ أنها قد تستغرق وقتا طويلا حتى تتم؛ بضع ساعات أو حتى أياما (حسب حجم قسم النظام Ùˆ قوة الحاسوب). ‮ ‮سيكون بوسعك مقاطعة الصيرورة Ùˆ إطÙاء الحاسوب ثم بدء نظام التشغيل Ùˆ معاودة الصيرورة لاحقا. إلا أنك إذا ما قاطعت صيرورة نسخ نظام التشغيل Ùإنها ستبدأ من البداية عند معاودتها (لأن محتويات قسم النظام ينبغي ألا تتغير أثناء النسخ).</string>
<string lang="ar" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">‮أتريد إلغاء صيرورة إنشاء نظام التسغيل المخÙÙŠ كلية؟ ‮ ‮ملاحظة: لن يمكنك معاودة الصيرورة إن ألغيتها الآن.</string>
<string lang="ar" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">‮أتريد إلغاء الاختبار المبدئي لتعمية النظام؟</string>
- <string lang="ar" key="BOOT_PRETEST_FAILED_RETRY">Ùشل الاختبار المبدئي لتشÙير Ùيراكربت. هل تريد إعادة المحاولة?\n\nإذا اخترت 'لا', سيتم إزالة برنامج الإقلاع من Ùيراكربت.\n\nملاحظة:\n\n- إذا لم يطلب برنامج إقلاع Ùيراكربت كلمة سر قبل ويندوز, Ùهذا يعني أن نظام التشغيل ليس مثبتا على Ù†Ùس القسم الذي يقلع منه. وهذا ليس مدعوما.\n\n- إذا استخدمت خوارزمية تشÙير غير AES ÙˆÙشل عملية الإقلاع (مع إدخالك لكلمة السر), Ùيمكن أن يكون المحرك به خلل ÙÙŠ التصميم. اختر 'لا', وحاول تشÙير قسم/قرص النظام مرة أخرى, AES واستخدم خزارزمية تشÙير (التي لها أقل المتطلبات بالنسبة للذاكرة).\n\n- للمزيد عن الأسباب والحلول, راجع: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="ar" key="BOOT_PRETEST_FAILED_RETRY">Ùشل الاختبار المبدئي لتشÙير Ùيراكربت. هل تريد إعادة المحاولة?\n\nإذا اخترت 'لا', سيتم إزالة برنامج الإقلاع من Ùيراكربت.\n\nملاحظة:\n\n- إذا لم يطلب برنامج إقلاع Ùيراكربت كلمة سر قبل ويندوز, Ùهذا يعني أن نظام التشغيل ليس مثبتا على Ù†Ùس القسم الذي يقلع منه. وهذا ليس مدعوما.\n\n- إذا استخدمت خوارزمية تشÙير غير AES ÙˆÙشل عملية الإقلاع (مع إدخالك لكلمة السر), Ùيمكن أن يكون المحرك به خلل ÙÙŠ التصميم. اختر 'لا', وحاول تشÙير قسم/قرص النظام مرة أخرى, AES واستخدم خزارزمية تشÙير (التي لها أقل المتطلبات بالنسبة للذاكرة).\n\n- للمزيد عن الأسباب والحلول, راجع: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="ar" key="SYS_DRIVE_NOT_ENCRYPTED">‮لا يبدو أن قسم\\سواقة النظام Ù…Ùعمّاة (لا جزئيا Ùˆ لا بالكامل).</string>
<string lang="ar" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">‮قسم\\سواقة النظام Ù…Ùعمّاة (جزئيا أو بالكامل). ‮ ‮ظهّÙر قسم\\سواقة النظام ÙƒÙليّا قبل المواصلة. Ù„Ùعل هذا اختر 'نظام' &gt; 'ظهّÙر نهائيا قسم\\سواقة النظام' من قائمة ناÙذة ڤيراكربت الرئيسية.</string>
<string lang="ar" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">حينما يتم تشÙير قسم/قرص النظام (كليا أو جزئيا), لا يمكنك تخÙيض Ùيراكربت (لكن يمكنك الترقية أو تثبيت Ù†Ùس الإصدار).</string>
@@ -1400,19 +1400,28 @@
<control lang="ar" key="IDC_SKIP_RESCUE_VERIFICATION">تجاوز التحقق من قرص إنقاذ Ùيراكربت</control>
<control lang="ar" key="IDC_HIDE_WAITING_DIALOG">لا تظهر ناÙذة الانتظار أثناء أداء العمليات</control>
<control lang="ar" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">لا تطلب Hash ÙÙŠ مرحلة قبل الإقلاع</control>
- <string lang="en" key="GOST89_HELP">The GOST block cipher, defined in the standard GOST 28147-89 under name Magma, is a Soviet and Russian government standard symmetric key block cipher.\n\nDeveloped in the 1970s, the standard had been marked "Top Secret" and then downgraded to "Secret" in 1990. It was a Soviet alternative to the United States standard algorithm, DES.</string>
- <string lang="en" key="KUZNYECHIK_HELP">Kuznyechik is a block cipher first published in 2015 and defined in the National Standard of the Russian Federation GOST R 34.12-2015 and also in RFC 7801. 256-bit key, 128-bit block. Mode of operation is XTS.</string>
- <string lang="en" key="CAMELLIA_HELP">Jointly developed by Mitsubishi Electric and NTT of Japan. First published on 2000. 256-bit key, 128-bit block. Mode of operation is XTS. It has been approved for use by the ISO/IEC, the European Union's NESSIE project and the Japanese CRYPTREC project.</string>
- <string lang="en" key="TIME">Time</string>
- <string lang="en" key="ITERATIONS">Iterations</string>
- <string lang="en" key="PRE-BOOT">Pre-Boot</string>
- <string lang="en" key="RESCUE_DISK_EFI_INFO">Before you can encrypt the partition, you must create a VeraCrypt Rescue Disk (VRD), which serves the following purposes:\n\n- If the VeraCrypt Boot Loader, master key, or other critical data gets damaged, the VRD allows you to restore it (note, however, that you will still have to enter the correct password then).\n\n- If Windows gets damaged and cannot start, the VRD allows you to permanently decrypt the partition before Windows starts.\n\n- The VRD will contain a backup of the present EFI boot loader and will allow you to restore it if necessary.\n\nThe VeraCrypt Rescue Disk ZIP image will be created in the location specified below.</string>
- <string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you need to extract it to a USB stick that is formatted as FAT/FAT32.\n\n%lsAfter you create the Rescue Disk, click Next to verify that it has been correctly created.</string>
- <string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you should either extract the image to a USB stick that is formatted as FAT/FAT32 or move it to a safe location for later use.\n\n%lsClick Next to continue.</string>
- <string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">IMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\n</string>
- <string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
- <string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
- <string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <string lang="ar" key="GOST89_HELP">كتلة التشÙير GOST, المعرÙØ© طبقا لمعيار GOST 28147-89 ويسمى Magma, هي طريقة تشÙير لدى روسيا ومتماثل الإتحاد السوÙيتي.\n\nتم تطويره ÙÙŠ السبعينيات, وهو معيار صن٠بأنه "عالي السرية" ثم تم تخÙيض تصنيÙÙ‡ إلى "سري" ÙÙŠ التسعينيات. وهو البديل الروسي لنظام التشÙير DES لدى الولايات المتحدة الأمريكية</string>
+ <string lang="ar" key="KUZNYECHIK_HELP">Kuznyechik هو تشÙير كتلة نشر أول مرة ÙÙŠ عام 2015 وهو معر٠ÙÙŠ المعيار الوطني الروسي GOST R 34.12-2015 وأيضا ÙÙŠ RFC 7801 256-بت للمÙتاح Ùˆ 128-بت للكتلة ونمط التشغيل XTS</string>
+ <string lang="ar" key="CAMELLIA_HELP">تم تطوير بالاشتراك بين ميتسوبيشي Ùˆ NTT باليابان. ونشر أول مرة عام 2000. طول المÙتاح 256-بت Ùˆ الكتلة 128-بت ونمط التشغيل XTS. وتم اعتماده للاستخدام من قبل ISO/IEC ومن مشروع NESSIE الأوربي ومشروع CRYPTREC الياباني</string>
+ <string lang="ar" key="TIME">الزمن</string>
+ <string lang="ar" key="ITERATIONS">دورات</string>
+ <string lang="ar" key="PRE-BOOT">قبل الإقلاع</string>
+ <string lang="ar" key="RESCUE_DISK_EFI_INFO">قبل تشÙير القرص ينبغي عمل قرص الإنقاذ من Ùيراكربت (VRD), والذي يخدم الأهدا٠التالية:\n\n- (ملاحظة: سو٠يتطلب منك إدخال كلمة السر الصحيحة)إذا أصيب محمل الإقلاع من Ùيراكربت بالعطب أو المÙتاح الرئيس أو بيانات ضرورية، Ùإن قرص الإنقاذ من Ùيراكربت يتيح إمكانية استعادة ذلك.\n\n- إذا Ùشل ويندوز ÙÙŠ الإقلاع أو أصيب بالعطب، Ùإن قرص الإنقاذ من Ùيراكربت يتيح ÙÙƒ التشÙير نهائيا للقرص قبل بدء ويندوز للاقلاع\n\n- يتيح قرص الإنقاذ من Ùيراكربت استعادة النسخة الاحتياطية من محمل الإقلاع EFI إذا دعت الضرورة لذلك\n\nقرص الإنقاذ من Ùيراكربت بصيغة صورة ZIP سو٠يتم إنشاؤه كما ÙÙŠ الأسÙÙ„</string>
+ <string lang="ar" key="RESCUE_DISK_EFI_EXTRACT_INFO">تم إنشاء قرص الصورة بصيغة ZIP للإنقاذ من Ùيراكربت ÙÙŠ الملÙ:\n%s\n\nالآن تحتاج تصديره إلى وسيط ملحق مهيأ بصيغة FAT/FAT32.\n\n%lsبعد إنشاء قرص الإنقاذ اضغط على زر التالي للتأكيد على نجاح العملية</string>
+ <string lang="ar" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">تم إنشاء قرص الصورة بصيغة ZIP للإنقاذ من Ùيراكربت ÙÙŠ الملÙ:\n%s\n\nالآن تحتاج تصديره إلى وسيط ملحق مهيأ بصيغة FAT/FAT32 أو تخزينه ÙÙŠ مكان آمن لاستخدامه عند الحاجة Ùيما بعد\n\n%lsاضغط زر التالي للاستمرار</string>
+ <string lang="ar" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">مهم: لاحظ أنه لابد من ÙÙƒ ضغط مل٠ZIP على القرص الملحق ÙÙŠ الجذر. على سبيل المثال: إذا كان القرص الملحق تم تعيينه على أنه E: Ùإن ÙÙƒ المل٠المضغوط ينبغي أن يكون على المجلد E:\\EFI على القرص الملحق\n\n</string>
+ <string lang="ar" key="RESCUE_DISK_EFI_CHECK_FAILED">لم يمكن التأكد من صحة تصدير مل٠الإنقاذ\n\nإذا صدرت مل٠الإنقاذ Ùيرجى نزع القرص الملحق ثم إدخاله مرة أخرى ثم اضغط زر التالي. إذا لم تنجح العملية Ùيمكن استخدام قرص ملق آخر أو تطبيق آخر Ù„ÙÙƒ ضغط الملÙات المضغÙطة\n\nإذا لم تقم بتصدير مل٠الإنقاذ بعد Ùيرجى عمل ذلك ثم الضغط على زر التالي\n\nإذا حاولت التأكد من صحة إنشاء مل٠الإنقاذ قبل التسلسل التوضيحي للعملية Ùيرجى ملاحظة أنه لن يمكنك استخدام قرص الإنقاذ ذاك لأنه أنشء بمÙتاح رئيسي آخر. تحتاج تصدير تصدير صورة مضغوطة جديدة</string>
+ <string lang="ar" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">لم يمكن التأكد من نجاح عملية تصدير قرص الإنقاذ\n\nإذا قمت بتصدير قرص الإنقاذ على وسيط ملحق Ùيرجى نزعه ثم إدخاله مرة أخرى. إذا لم يجد ذلك Ùعليك باستخدام وسيط ملحق آخر أو تطبيق آخر لضغط الملÙات\n\nإذا حاولت التحقق من إنشاء قرص الإنقاذ لمÙتاح رئيسي آخر أو كلمة سر أخرى, Ùيرجى ملاحظ أن عملية التحقق ستÙشل دائما. لإنشاء قرص إنقاذ جديد Ùينبغي تهيئته على البيئة الحالية, اختر 'النظام' > 'إنشاء قرص الإنقاذ'.</string>
+ <string lang="ar" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">صورة قرص الإنقاذ تم إنشاؤها وحÙظها على الملÙ:\n%s\n\nالآن تحتاج تصديره على وسيط ملحق مهيأ بصيغة FAT/FAT32.\n\nمهم: لاحظ أن تطبيق ÙÙƒ الضغط يجب أن ÙŠÙÙƒ المل٠على جذر الوسيط الملحق. على سبيل المثال، لو كان الوسيط الملحق هو E: Ùإنه يلزم ÙÙƒ الضغط على المجلد E:\\EFI.\n\nبعد إنشاء قرص الإنقاذ، اختر 'النظام' > 'التحقق من قرص الإنقاذ' للتحقق من إنشائه بنجاح</string>
+ <control lang="ar" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">استخدم سطح مكتب مؤمن لإدخال كلمة السر</control>
+ <string lang="ar" key="ERR_REFS_INVALID_VOLUME_SIZE">حجم المل٠المحدد ÙÙŠ سطر الأوامر غير متواÙÙ‚ مع نظام الملÙات ReFS</string>
+ <control lang="ar" key="IDC_EDIT_DCSPROP">تحرير تهيئة تحميل الاقلاع</control>
+ <control lang="ar" key="IDC_SHOW_PLATFORMINFO">أعرض معلومات بيئة EFI</control>
+ <string lang="ar" key="BOOT_LOADER_CONFIGURATION_FILE">مل٠تهيئة تحميل الاقلاع</string>
+ <string lang="ar" key="EFI_PLATFORM_INFORMATION">EFI معلومات بيئة</string>
+ <string lang="ar" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">تحذير: المستخدم غير الخبير ينبغي ألا يحاول تعديل مل٠تحميل الإقلاع يدويا\n\nاستمر?</string>
+ <string lang="ar" key="DCSPROP_XML_VALIDATION_FAILED">تحذير: Ùشل ÙÙŠ التحقق من صحة صيغة XML لتهيئة بيئة الإقلاع. يرجى التأكد من التعديلات.</string>
+ <control lang="ar" key="IDT_ADVANCED_OPTIONS">خيارات متقدمة</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.be.xml b/Translations/Language.be.xml
index c1b03b5..f6fcd7c 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="be" name="БеларуÑкаÑ" en-name="Belarusian" version="0.1.0" translators="Aleg Azarousky" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="be" key="IDC_PREF_MOUNT_READONLY">Мантаваць Ñк тамы толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ</control>
<control lang="be" key="IDC_PREF_MOUNT_REMOVABLE">Мантаваць Ñк Ð·Ð¼ÐµÐ½Ð½Ñ‹Ñ Ð½Ð¾Ñьбіты</control>
<control lang="be" key="IDC_PREF_OPEN_EXPLORER">Ðдчыніць акно ÐглÑдальніка паÑÐ»Ñ Ð¿Ð°ÑпÑховага Ð¼Ð°Ð½Ñ‚Ð°Ð²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ð¼Ð°</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="be" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">ÐчыÑціць кÑш паролÑÑž пры аўтаразмантаванні</control>
<control lang="be" key="IDC_PREF_WIPE_CACHE_ON_EXIT">ÐчыÑціць кÑш паролÑÑž на выхадзе</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="be" key="INSTALL_FAILED">УÑталёўка не выкананаÑ.</string>
<string lang="be" key="UNINSTALL_FAILED">Выдаленне не выканана.</string>
- <string lang="be" key="DIST_PACKAGE_CORRUPTED">ГÑÑ‚Ñ‹ дыÑтрыбутыўны пакет пашкоджаны. Загрузіце Ñго ізноў (пажадана з афіцыйнага Ñайта VeraCrypt - https://veracrypt.codeplex.com).</string>
+ <string lang="be" key="DIST_PACKAGE_CORRUPTED">ГÑÑ‚Ñ‹ дыÑтрыбутыўны пакет пашкоджаны. Загрузіце Ñго ізноў (пажадана з афіцыйнага Ñайта VeraCrypt - https://www.veracrypt.fr).</string>
<string lang="be" key="CANNOT_WRITE_FILE_X">Ðемагчыма запіÑаць файл %s</string>
<string lang="be" key="EXTRACTING_VERB">Выманне</string>
<string lang="be" key="CANNOT_READ_FROM_PACKAGE">Ðемагчыма прачытаць Ð´Ð°Ð´Ð·ÐµÐ½Ñ‹Ñ Ð· дыÑтрыбутыва.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="be" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Ð’Ñ‹ жадаеце адмÑніць перад-Ñ‚ÑÑÑ‚ ÑˆÑ‹Ñ„Ñ€Ð°Ð²Ð°Ð½Ð½Ñ ÑÑ–ÑÑ‚Ñмы?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="be" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">СіÑÑ‚Ñмны падзел/дыÑк зашыфраваны (чаÑткова ці цалкам).\n\nПерш чым працÑгнуць, цалкам дÑшыфруйце ÑÑ–ÑÑ‚Ñмны падзел/дыÑк. Каб гÑта зрабіць, абÑрыце Ñž галоўным акне VeraCrypt меню 'СіÑÑ‚Ñма' &gt; 'Permanently Decrypt System Partition/Drive'.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.bg.xml b/Translations/Language.bg.xml
index 7ed5bd3..71f21c1 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="bg" name="БългарÑки" en-name="Bulgarian" version="0.1.0" translators="Lachezar Gorchev" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="bg" key="IDC_PREF_MOUNT_READONLY">Монтиране като "Ñамо за четене"</control>
<control lang="bg" key="IDC_PREF_MOUNT_REMOVABLE">Монтиране като "преноÑима медиÑ"</control>
<control lang="bg" key="IDC_PREF_OPEN_EXPLORER">ОтварÑне на Explorer прозорец за уÑпешно монтиран том</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="bg" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Заличаване на кешираните пароли при авто-демонтиране</control>
<control lang="bg" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Заличаване при изход</control>
@@ -857,7 +857,7 @@
<string lang="bg" key="TC_INSTALLER_IS_RUNNING">ИнÑталатора на VeraCrypt в момента е Ñтартиран на тази ÑиÑтема и Ð¿Ð¾Ð´Ð³Ð¾Ñ‚Ð²Ñ Ð¸Ð»Ð¸ извършва инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð¸Ð»Ð¸ обновÑване на VeraCrypt. Преди да продължите, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ го да Ñвърши или го затворете. Ðко не можете да го затворите, Ð¼Ð¾Ð»Ñ Ñ€ÐµÑтартирайте Ð²Ð°ÑˆÐ¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ преди да продължите.</string>
<string lang="bg" key="INSTALL_FAILED">ИнÑталациÑта неуÑпешна.</string>
<string lang="bg" key="UNINSTALL_FAILED">ДеинÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½ÐµÑƒÑпешна.</string>
- <string lang="bg" key="DIST_PACKAGE_CORRUPTED">Този пакет за диÑÑ‚Ñ€Ð¸Ð±ÑƒÑ†Ð¸Ñ Ðµ повреден. МолÑ, опитайте да го изтеглите отново (за предпочитане от Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»Ð½Ð¸Ñ ÑƒÐµÐ±Ñайт на VeraCrypt - https://veracrypt.codeplex.com).</string>
+ <string lang="bg" key="DIST_PACKAGE_CORRUPTED">Този пакет за диÑÑ‚Ñ€Ð¸Ð±ÑƒÑ†Ð¸Ñ Ðµ повреден. МолÑ, опитайте да го изтеглите отново (за предпочитане от Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»Ð½Ð¸Ñ ÑƒÐµÐ±Ñайт на VeraCrypt - https://www.veracrypt.fr).</string>
<string lang="bg" key="CANNOT_WRITE_FILE_X">Ðе може да Ñе запише файл %s</string>
<string lang="bg" key="EXTRACTING_VERB">Извличане</string>
<string lang="bg" key="CANNOT_READ_FROM_PACKAGE">Ðе може да Ñе чете от пакета.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="bg" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Желаете ли да прекратите предварителниÑÑ‚ теÑÑ‚ на ÑиÑтемното криптиране?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="bg" key="SYS_DRIVE_NOT_ENCRYPTED">Изглежда, че ÑиÑтемниÑÑ‚ дÑл/уÑтройÑтво не е криптиран (нито чаÑтично, нито изцÑло).</string>
<string lang="bg" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">ВашиÑÑ‚ ÑиÑтемен дÑл/уÑтройÑтво е криптиран (чаÑтично или изцÑло).\n\nМолÑ, декриптирайте вашиÑÑ‚ ÑиÑтемен дÑл/уÑтройÑтво изцÑло преди да продължите. За да направите това, изберете 'СиÑтема' &gt; 'Декриптиране на ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð´Ñл/уÑтройÑтво за поÑтоÑнно' от менюто на Ð³Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†Ð¾Ñ€ÐµÐ· на VeraCrypt.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.ca.xml b/Translations/Language.ca.xml
index 6fc39d7..50a3dd0 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="ca" name="Català" en-name="Catalan" version="0.1.0" translators="CESICAT, Centre de Seguretat de la Informació de Catalunya" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="ca" key="IDC_PREF_MOUNT_READONLY">Muntar els volums en mode només lectura</control>
<control lang="ca" key="IDC_PREF_MOUNT_REMOVABLE">Muntar els volums com a mitjans extraïbles</control>
<control lang="ca" key="IDC_PREF_OPEN_EXPLORER">Obrir una finestra pels volums muntats satisfactòriament</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="ca" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Oblidar les contrasenyes guardades quan es desmunti automàticament</control>
<control lang="ca" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Oblidar les contrasenyes guardades al sortir</control>
@@ -857,7 +857,7 @@
<string lang="ca" key="TC_INSTALLER_IS_RUNNING">L'instal·lador del VeraCrypt està realitzant una instal·lació o actualització del programa. Abans de continuar, si us plau esperi que acabi o tenqui'l. Si no el pot tancar, reinicii l'ordinador abans de continuar.</string>
<string lang="ca" key="INSTALL_FAILED">La instal·lació ha fallat.</string>
<string lang="ca" key="UNINSTALL_FAILED">La desinstal·lació ha fallat.</string>
- <string lang="ca" key="DIST_PACKAGE_CORRUPTED">Aquest paquet de distribució està malmès. Si us plau, torni'l a descarregar (preferentment des del lloc web oficial del VeraCrypt, a https://veracrypt.codeplex.com).</string>
+ <string lang="ca" key="DIST_PACKAGE_CORRUPTED">Aquest paquet de distribució està malmès. Si us plau, torni'l a descarregar (preferentment des del lloc web oficial del VeraCrypt, a https://www.veracrypt.fr).</string>
<string lang="ca" key="CANNOT_WRITE_FILE_X">No s'ha pogut escriure el fitxer %s</string>
<string lang="ca" key="EXTRACTING_VERB">Extraient</string>
<string lang="ca" key="CANNOT_READ_FROM_PACKAGE">No s'han pogut llegir dades del paquet.</string>
@@ -1232,7 +1232,7 @@
<string lang="ca" key="HIDDEN_OS_CREATION_PREINFO_HELP">Als passos següents, el VeraCrypt crearà un sistema operatiu ocult copiant el contingut de la partició de sistema al volum ocult (les dades copiades es xifraran al vol amb una clau de xifrat diferent a la que s'utilitza pel sistema operatiu esquer).\n\nAquest procés es durà a terme a l'entorn de prearrencada (abans d'iniciar el Windows) i pot trigar força estona a acabar-se; diverses hores o dies (depenent de la mida de la partició de sistema i del rendiment de l'ordinador).\n\nPorà interrompre el procés, apagar l'ordinador, engegar el sistema operatiu i després continuar el procés. No obstant, si l'interromp, el procés de copiar el sistema haurà de tornar a començar des del principi (ja que el contingut de la partició de sistema no haurien de canviar durant la còpia).</string>
<string lang="ca" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Vol cancel·lar el procés de creació d'un sistema operatiu ocult?\n\nNota: No podrà continuar aquest procés si el cancel·la ara.</string>
<string lang="ca" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Vol cancelar la prova prèvia de xifrat del sistema?</string>
- <string lang="ca" key="BOOT_PRETEST_FAILED_RETRY">Ha fallat la prova prèvia de xifrat del sistema. Vol tornar-ho a provar?\n\nSi selecciona 'No', es desinstal·larà el component d'autenticació prearrencada.\n\nNots.\n\n- Si el gestor d'arranc del VeraCrypt no li demana la contrasenya abans d'engegar el Windows és possible que el seu sistema operatiu no engegui des del disc dur on es troba instal·lat. Això no està suportat.\n\n- Si utilitza un algorisme de xifrat que no sigui AES i la prova prèvia falla (i ha introduït la contrasenya) pot ser degut a un controlador defectuós. Seleccioni 'No' i provi de tornar a xifrar la partició/unitat una altre vegada, però utilitzant l'algorisme de xifrat AES (que necessita menys memòria).\n\n- Per a més possibles causes i solucions, vegi: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="ca" key="BOOT_PRETEST_FAILED_RETRY">Ha fallat la prova prèvia de xifrat del sistema. Vol tornar-ho a provar?\n\nSi selecciona 'No', es desinstal·larà el component d'autenticació prearrencada.\n\nNots.\n\n- Si el gestor d'arranc del VeraCrypt no li demana la contrasenya abans d'engegar el Windows és possible que el seu sistema operatiu no engegui des del disc dur on es troba instal·lat. Això no està suportat.\n\n- Si utilitza un algorisme de xifrat que no sigui AES i la prova prèvia falla (i ha introduït la contrasenya) pot ser degut a un controlador defectuós. Seleccioni 'No' i provi de tornar a xifrar la partició/unitat una altre vegada, però utilitzant l'algorisme de xifrat AES (que necessita menys memòria).\n\n- Per a més possibles causes i solucions, vegi: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="ca" key="SYS_DRIVE_NOT_ENCRYPTED">La partició/unitat de sistema sembla no estar xifrada (ni parcial ni completament).</string>
<string lang="ca" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">La partició/unitat de sistema està xifrada (parcial o completament).\n\nSi us plau, desxifri completament la partició/unitat abans de continuar. Per a fer-ho, seleccioni 'Sistema' &gt; 'Desxifrar la partició/unitat del sistema permenentment'.</string>
<string lang="ca" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Quan la partició/unitat de sistema està xifrada (parcial o completament) no és possible baixar la versió del VeraCrypt (però es pot actualitzar o reinstal·lar la mateixa versió).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.cs.xml b/Translations/Language.cs.xml
index 0d72654..a1326e3 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="cs" name="Čeština" en-name="Czech" version="1.1.0" translators="Vítek Moser, Lagardere" />
<!-- Fonts -->
@@ -166,7 +166,7 @@
<control lang="cs" key="IDC_PREF_DISMOUNT_SCREENSAVER">Je spuÅ¡tÄ›n spoÅ™iÄ obrazovky</control>
<control lang="cs" key="IDC_PREF_FORCE_AUTO_DISMOUNT">Vynutit automatické odpojení, i když svazek obsahuje otevřené soubory nebo adresáře</control>
<control lang="cs" key="IDC_PREF_LOGON_MOUNT_DEVICES">Připojit všechny svazky na zařízeních</control>
- <control lang="cs" key="IDC_PREF_LOGON_START">Spustit VeraCrypt službu na pozadí</control>
+ <control lang="cs" key="IDC_PREF_LOGON_START">Spustit službu VeraCryptu na pozadí</control>
<control lang="cs" key="IDC_PREF_MOUNT_READONLY">PÅ™ipojit svazky jen pro Ätení</control>
<control lang="cs" key="IDC_PREF_MOUNT_REMOVABLE">Připojit svazky jako výměnná média</control>
<control lang="cs" key="IDC_PREF_OPEN_EXPLORER">Otevřít okno Průzkumníka pro úspěšně připojený svazek</control>
@@ -857,7 +857,7 @@
<string lang="cs" key="TC_INSTALLER_IS_RUNNING">Instalátor programu VeraCrypt momentálnÄ› běží na tomto systému a provádí nebo pÅ™ipravuje instalaci nebo update programu VeraCrypt. Než budete pokraÄovat, poÄkejte na dokonÄení nebo jej zavÅ™ete. Pokud ho nemůžete zavřít, restartujte prosím poÄítaÄ, než budete pokraÄovat.</string>
<string lang="cs" key="INSTALL_FAILED">Instalace nebyla úspěšná.</string>
<string lang="cs" key="UNINSTALL_FAILED">Odinstalace nebyla úspěšná.</string>
- <string lang="cs" key="DIST_PACKAGE_CORRUPTED">DistribuÄní balíÄek je poÅ¡kozený. StáhnÄ›te jej prosím znovu (nejlépe z oficiálních stránek programu VeraCrypt na adrese https://veracrypt.codeplex.com).</string>
+ <string lang="cs" key="DIST_PACKAGE_CORRUPTED">DistribuÄní balíÄek je poÅ¡kozený. StáhnÄ›te jej prosím znovu (nejlépe z oficiálních stránek programu VeraCrypt na adrese https://www.veracrypt.fr).</string>
<string lang="cs" key="CANNOT_WRITE_FILE_X">Nelze zapsat soubor %s</string>
<string lang="cs" key="EXTRACTING_VERB">Rozbalení</string>
<string lang="cs" key="CANNOT_READ_FROM_PACKAGE">Nelze pÅ™eÄíst data z balíÄku.</string>
@@ -1232,7 +1232,7 @@
<string lang="cs" key="HIDDEN_OS_CREATION_PREINFO_HELP">V následujícím kroku vytvoří VeraCrypt skrytý operaÄní systém tak, že zkopíruje obsah systémového oddílu do skrytého svazku (kopírovaná data budou zaÅ¡ifrována za bÄ›hu jiným Å¡ifrovacím klíÄem, než je ten, co se používá pro klamný operaÄní systém).\n\nProces bude proveden v pÅ™ed-bootovacím prostÅ™edí (než se Windows spustí) a může to trvat delší dobu; nÄ›kolik hodin nebo dokonce nÄ›kolik dní (záleží na velikosti systémového oddílu a na výkonu vaÅ¡eho poÄítaÄe).\n\nBudete moci proces pÅ™eruÅ¡it, vypnout poÄítaÄ a pak spustit operaÄní systém a pokraÄovat v procesu. Pokud ho ale pÅ™erušíte, celý proces kopírování systému bude spuÅ¡tÄ›n úplnÄ› od zaÄátku (protože obsah systémového oddílu se nesmí bÄ›hem klonování zmÄ›nit).</string>
<string lang="cs" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Chcete zruÅ¡it celý proces vytváření skrytého operaÄního systému?\n\nPoznámka: NEBUDETE moci pokraÄovat, pokud ho nyní zrušíte.</string>
<string lang="cs" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Chcete zrušit před-testování šifrování systému?</string>
- <string lang="cs" key="BOOT_PRETEST_FAILED_RETRY">PÅ™edběžná zkouÅ¡ka zaÅ¡ifrování systému nebyla úspěšná. Chcete to zkusit znovu?\n\nVyberete-li 'Ne', pÅ™ed-bootovací autentifikaÄní komponenta bude odinstalována.\n\nPoznámka:\n\n- Pokud vás bootovací zavadÄ›Ä VeraCryptu nevyzval k zadání hesla pÅ™ed startem Windows, je možné, že vás operaÄní systém nebootuje z disku, na kterém je nainstalován. To není podporováno.\n\n- Pokud jste použili jiný Å¡ifrovací algoritmus než AES a pÅ™edběžná zkouÅ¡ka nebyla úspěšná (a vy jste zadali heslo), může to být způsobeno nevhodnÄ› navrženým ovladaÄem. Vyberte 'Ne' a zkuste systémový oddíl/jednotku znovu zaÅ¡ifrovat, ale použijte Å¡ifrovací algoritmus AES (který má nejmenší nároky na paměť).\n\n- Pro zjiÅ¡tÄ›ní, jaké jsou další možné příÄiny a Å™eÅ¡ení, viz: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="cs" key="BOOT_PRETEST_FAILED_RETRY">PÅ™edběžná zkouÅ¡ka zaÅ¡ifrování systému nebyla úspěšná. Chcete to zkusit znovu?\n\nVyberete-li 'Ne', pÅ™ed-bootovací autentifikaÄní komponenta bude odinstalována.\n\nPoznámka:\n\n- Pokud vás bootovací zavadÄ›Ä VeraCryptu nevyzval k zadání hesla pÅ™ed startem Windows, je možné, že vás operaÄní systém nebootuje z disku, na kterém je nainstalován. To není podporováno.\n\n- Pokud jste použili jiný Å¡ifrovací algoritmus než AES a pÅ™edběžná zkouÅ¡ka nebyla úspěšná (a vy jste zadali heslo), může to být způsobeno nevhodnÄ› navrženým ovladaÄem. Vyberte 'Ne' a zkuste systémový oddíl/jednotku znovu zaÅ¡ifrovat, ale použijte Å¡ifrovací algoritmus AES (který má nejmenší nároky na paměť).\n\n- Pro zjiÅ¡tÄ›ní, jaké jsou další možné příÄiny a Å™eÅ¡ení, viz: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="cs" key="SYS_DRIVE_NOT_ENCRYPTED">Systémový oddíl/disk pravdÄ›podobnÄ› není zaÅ¡ifrován (ani ÄásteÄnÄ› ani plnÄ›).</string>
<string lang="cs" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Váš systémový oddíl/disk je zaÅ¡ifrován (ÄásteÄnÄ› nebo plnÄ›).\n\nPÅ™ed pokraÄováním celý systémový oddíl/disk nejdříve deÅ¡ifrujte. Pokud tak chcete uÄinit, zvolte 'Systém' &gt; 'Trvale deÅ¡ifrovat systémový oddíl/disk' z nabídky hlavního okna programu VeraCrypt.</string>
<string lang="cs" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Je-li systémový oddíl/disk zaÅ¡ifrován (ÄásteÄnÄ› nebo úplnÄ›), nemůžete snížit verzi VeraCryptu (ale můžete jej aktualizovat nebo pÅ™einstalovat stejnou verzi).</string>
@@ -1413,6 +1413,15 @@
<string lang="cs" key="RESCUE_DISK_EFI_CHECK_FAILED">Není možné ověřit, že záchranný disk byl správnÄ› rozbalen.\n\nByl-li rozbalen záchranný disk na zařízení USB, vyjmÄ›te a znovu zasuňte zařízení USB a kliknÄ›te na tlaÄítko "Další". Pokud to nepomůže, zkuste jiné zařízení USB a/nebo jiný program pro práci s archívem *zip.\n\nPokud nebyl jeÅ¡tÄ› záchranný disk rozbalen, uÄiňte tak a kliknÄ›te na tlaÄítko "Další".\n\nZkouÅ¡el-li jste ověřit záchranný disk Veracrypt vytvoÅ™ený pÅ™ed spuÅ¡tÄ›ním tohoto průvodce, mÄ›jte na pamÄ›ti, že takový záchranný disk nemůže být použit, neboÅ¥ byl vytvoÅ™en s jiným klíÄem. Musíte rozbalit novÄ› vygenerovaný obraz záchranného disku z formátu *.zip.</string>
<string lang="cs" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Není možné ověřit, že záchranný disk byl správnÄ› rozbalen.\n\nByl-li rozbalen záchranný disk na zařízení USB, vyjmÄ›te a znovu zasuňte zařízení USB a kliknÄ›te na tlaÄítko "Další". Pokud to nepomůže, zkuste jiné zařízení USB a/nebo jiný program pro práci s archívem *zip.\n\nZkouÅ¡el-li jste ověřit záchranný disk vytvoÅ™ený pro jiný master key, heslo, zařízení, atd., uvÄ›domte si, že kontrola bude vždy neúspěšná. Pro vytvoÅ™ení nového záchranného disku plnÄ› kompatibilního s vaším souÄasnou konfigurací, vyberte možnost v nabídce "Systém > VytvoÅ™it záchranný disk".</string>
<string lang="cs" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Obraz záchranného disku byl vytvoÅ™en a uložen v tomto souboru:\n%s\n\nNyní staÄí rozbalit obraz na zařízení USB, které je naformátováno jako FAT/FAT32.\n\nDÅ®LEŽITÉ: UvÄ›domte si, že soubor *.zip musí být rozbalen přímo do hlavního adresáře zařízení USB. Například, pokud je písmeno jednotky USB "E:", tak rozbalení souboru *.zip by mÄ›lo vytvoÅ™it adresář E:\\EFI na zařízení USB.\n\nJakmile vytvoříte záchranný disk, vyberte nabídku "Systém > Ověřit záchranný disk" a tím si ověříte jestli byl správnÄ› vytvoÅ™en.</string>
+ <control lang="cs" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Použít zabezpeÄenou plochu pro zadávání hesla</control>
+ <string lang="cs" key="ERR_REFS_INVALID_VOLUME_SIZE">Velikost svazku specifikovaného v příkazovém řádku je nekompatibilní s vybraným souborovým souborem ReFS.</string>
+ <control lang="cs" key="IDC_EDIT_DCSPROP">Upravit konfiguraci Boot Loaderu</control>
+ <control lang="cs" key="IDC_SHOW_PLATFORMINFO">Zobrazit informace o platformÄ› EFI</control>
+ <string lang="cs" key="BOOT_LOADER_CONFIGURATION_FILE">KonfiguraÄní soubor Boot Loaderu</string>
+ <string lang="cs" key="EFI_PLATFORM_INFORMATION">Informace o platformÄ› EFI</string>
+ <string lang="cs" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">UPOZORNÄšNÃ: nezkuÅ¡ení uživatelé by se nemÄ›li pokouÅ¡et upravovat konfiguraci Boot Loaderu.\n\nPokraÄovat?</string>
+ <string lang="cs" key="DCSPROP_XML_VALIDATION_FAILED">UPOZORNÄšNÃ: chyba pÅ™i ověření formátu *.xml v konfiguraci Boot Loaderu. Zkontrolujte si vaÅ¡e úpravy.</string>
+ <control lang="cs" key="IDT_ADVANCED_OPTIONS">PokroÄilé možnosti</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.da.xml b/Translations/Language.da.xml
index ee44502..4ee8f9a 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="da" name="Dansk" en-name="Danish" version="0.1.0" translators="Lasse Bond" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="da" key="IDC_PREF_MOUNT_READONLY">Tilslut bind som læs-kun</control>
<control lang="da" key="IDC_PREF_MOUNT_REMOVABLE">Tilslut bind som flytbart medie</control>
<control lang="da" key="IDC_PREF_OPEN_EXPLORER">Ã…ben Explorer vindue til succesfuldt tilsluttet bind</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="da" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Slet kodeord i hukommelsen ved auto-afbryd</control>
<control lang="da" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Slet kodeord i hukommelsen ved afslut</control>
@@ -857,7 +857,7 @@
<string lang="da" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installation kører nu på dette system og udfører eller forbereder installation eller opdatering af VeraCrypt. Før du fortsætter, vent venligst til det afsluttes eller luk det. Hvis du ikke kan lukke det, genstart venligst din computer før du fortsætter.</string>
<string lang="da" key="INSTALL_FAILED">Fejl under installation.</string>
<string lang="da" key="UNINSTALL_FAILED">Fejl under afinstallation.</string>
- <string lang="da" key="DIST_PACKAGE_CORRUPTED">Denne distributions pakke er beskadiget. Prøv venligst at downloade den igen (helst fra det officielle VeraCrypt websted på https://veracrypt.codeplex.com).</string>
+ <string lang="da" key="DIST_PACKAGE_CORRUPTED">Denne distributions pakke er beskadiget. Prøv venligst at downloade den igen (helst fra det officielle VeraCrypt websted på https://www.veracrypt.fr).</string>
<string lang="da" key="CANNOT_WRITE_FILE_X">Kan ikke skrive fil %s</string>
<string lang="da" key="EXTRACTING_VERB">Udpakker</string>
<string lang="da" key="CANNOT_READ_FROM_PACKAGE">Kan ikke læse data fra pakken.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="da" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Ønsker du at afbryde hele processen med at oprette det skjulte operativsystem?\n\nBemærk: Du vil IKKE være i stand til at fortsætte processen hvis du afbryder nu.</string>
<string lang="da" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Ønsker du at afbryde system krypteringens indledende test?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="da" key="SYS_DRIVE_NOT_ENCRYPTED">System partition/drev ser ikke ud til at være krypteret (hverken delvist eller helt).</string>
<string lang="da" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Det system partition/drev er krypteret (delvist eller helt).\n\nDekrypter venligst dit system partition/drev helt før du fortsætter. For at gøre dette, vælg 'System' &gt; 'Dekrypter System Partition/Drev Permanent' fra menulinien i VeraCrypt hovedvinduet.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.de.xml b/Translations/Language.de.xml
index bbc31ea..5293476 100644
--- a/Translations/Language.de.xml
+++ b/Translations/Language.de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version="1.19">
+ <localization prog-version="1.21">
<!-- 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" />
<!-- Schriftarten -->
@@ -857,7 +857,7 @@
<string lang="de" key="TC_INSTALLER_IS_RUNNING">Das VeraCrypt-Installationsprogramm läuft zurzeit auf diesem Computer und führt eine Installation durch oder bereitet eine Installation vor oder aktualisiert VeraCrypt. Bevor Sie fortfahren, warten Sie bitte bis es beendet ist oder schließen Sie es. Wenn Sie es nicht schließen können, dann starten Sie bitte Ihren Computer neu bevor Sie fortfahren.</string>
<string lang="de" key="INSTALL_FAILED">Installation fehlgeschlagen.</string>
<string lang="de" key="UNINSTALL_FAILED">Deinstallation fehlgeschlagen.</string>
- <string lang="de" key="DIST_PACKAGE_CORRUPTED">Dieses Paket ist beschädigt. Bitte laden Sie es erneut herunter (Vorzugsweise von der offiziellen Webseite von VeraCrypt https://veracrypt.codeplex.com).</string>
+ <string lang="de" key="DIST_PACKAGE_CORRUPTED">Dieses Paket ist beschädigt. Bitte laden Sie es erneut herunter (Vorzugsweise von der offiziellen Webseite von VeraCrypt https://www.veracrypt.fr).</string>
<string lang="de" key="CANNOT_WRITE_FILE_X">Kann Datei %s nicht schreiben</string>
<string lang="de" key="EXTRACTING_VERB">Entpacke</string>
<string lang="de" key="CANNOT_READ_FROM_PACKAGE">Die Paketdaten konnten nicht gelesen werden.</string>
@@ -1232,7 +1232,7 @@
<string lang="de" key="HIDDEN_OS_CREATION_PREINFO_HELP">In den nächsten Schritten wird VeraCrypt das versteckte Betriebssystem erstellen, indem der Inhalt der Systempartition in das Versteckte Volume kopiert wird (Daten, die kopiert werden, werden „on-the-fly“ (sofort) mit einem Verschlüsselungsschlüssel verschlüsselt, der sich von dem, der für das Köder-System verwendet wird unterscheidet).\n\nBitte beachten Sie, dass der Prozess in der Prä-Boot-Umgebung durchgeführt wird (bevor Windows startet) und es lange dauern kann, um ihn fertigzustellen; mehrere Stunden oder sogar mehrere Tage (abhängig von der Größe der Systempartition und der Leistung Ihres Computers).\n\nSie können den Prozess jederzeit anhalten, Ihren PC ausschalten, neu starten und dann den Prozess fortsetzen. Wenn Sie ihn jedoch unterbrechen, dann muss der gesamte Kopiervorgang des Systems von vorn beginnen (weil sich der Inhalt der Systempartition beim Klonen nicht ändern darf).</string>
<string lang="de" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Möchten Sie den gesamten Vorgang für die Erstellung des versteckten Betriebssystems abbrechen?\n\nHinweis: Sie werden den Vorgang nicht fortsetzen können wenn Sie ihn jetzt abbrechen.</string>
<string lang="de" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Möchten Sie den Vortest für die Systemverschlüsselung wirklich abbrechen?</string>
- <string lang="de" key="BOOT_PRETEST_FAILED_RETRY">Der VeraCrypt-Systemverschlüsselungsvortest ist fehlgeschlagen. Möchten Sie ihn erneut durchführen?\n\nWenn Sie „Nein“ wählen, wird die Prä-Boot-Authentifikationskomponente deinstalliert.\n\nHinweise:\n\n- Wenn der VeraCrypt-Bootloader vor dem Systemstart nicht nach einem Passwort gefragt hat, ist es möglich, dass das Betriebssystem nicht vom dem Laufwerk aus bootet auf dem es installiert ist. Dies wird nicht unterstützt.\n\n- Wenn Sie einen anderen Verschlüsselungsalgorithmus als AES nutzen und der Vortest fehlgeschlagen ist (und Sie das Passwort eingegeben haben), kann dies durch einen fehlerhaften Treiber verursacht worden sein. Wählen Sie „Nein“ und versuchen Sie erneut die Systemverschlüsselung durchzuführen, diesmal mit dem AES-Verschlüsselungsalgorithmus (welcher die niedrigsten Speichervoraussetzungen hat).\n\n- Weitere mögliche Ursachen und Lösungen finden Sie unter: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="de" key="BOOT_PRETEST_FAILED_RETRY">Der VeraCrypt-Systemverschlüsselungsvortest ist fehlgeschlagen. Möchten Sie ihn erneut durchführen?\n\nWenn Sie „Nein“ wählen, wird die Prä-Boot-Authentifikationskomponente deinstalliert.\n\nHinweise:\n\n- Wenn der VeraCrypt-Bootloader vor dem Systemstart nicht nach einem Passwort gefragt hat, ist es möglich, dass das Betriebssystem nicht vom dem Laufwerk aus bootet auf dem es installiert ist. Dies wird nicht unterstützt.\n\n- Wenn Sie einen anderen Verschlüsselungsalgorithmus als AES nutzen und der Vortest fehlgeschlagen ist (und Sie das Passwort eingegeben haben), kann dies durch einen fehlerhaften Treiber verursacht worden sein. Wählen Sie „Nein“ und versuchen Sie erneut die Systemverschlüsselung durchzuführen, diesmal mit dem AES-Verschlüsselungsalgorithmus (welcher die niedrigsten Speichervoraussetzungen hat).\n\n- Weitere mögliche Ursachen und Lösungen finden Sie unter: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="de" key="SYS_DRIVE_NOT_ENCRYPTED">Die Systempartition/das Systemlaufwerk ist offenbar nicht verschlüsselt (weder teilweise noch vollständig).</string>
<string lang="de" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Ihre Systempartition/Ihr Systemlaufwerk ist verschlüsselt (teilweise oder vollständig).\n\nBitte entschlüsseln Sie Ihre Systempartition/Ihr Systemlaufwerk vollständig bevor Sie fortfahren. Wählen Sie dazu „System“ &gt; „System-Partition/Laufwerk dauerhaft entschlüsseln“ in der Menüleiste des VeraCrypt-Hauptfensters aus.</string>
<string lang="de" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Wenn die Systempartition/das Systemlaufwerk teilweise oder vollständig verschlüsselt ist, können Sie VeraCrypt nicht downgraden (aber Sie können es aktualisieren oder die selbe Version erneut installieren).</string>
@@ -1413,6 +1413,15 @@
<string lang="de" key="RESCUE_DISK_EFI_CHECK_FAILED">Kann nicht bestätigen, ob der Rettungsdatenträger korrekt entpackt wurde.\n\nWenn Sie den Rettungsdatenträger entpackt haben, werfen Sie den USB-Stick bitte aus und stecken Sie ihn wieder ein; anschließend klicken Sie auf Weiter und versuchen es erneut. Wenn dies nicht hilft, versuchen Sie es bitte mit einem anderen USB-Stick und/oder einer anderen ZIP-Software.\n\nWenn Sie den Rettungsdatenträger noch nicht entpackt haben, machen Sie dies bitte und klicken Sie anschließend auf Weiter.\n\nWenn Sie vor dem Start dieses Assistenten versucht haben, den VeraCrypt-Rettungsdatenträger zu bestätigen, beachten Sie bitte, dass ein solcher Rettungsdatenträger nicht verwendet werden kann, da er für einen anderen Hauptschlüssel erstellt wurde. Sie müssen das neu generierte Rettungsdatenträger-ZIP-Abbild entpacken.</string>
<string lang="de" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Kann nicht bestätigen, ob der Rettungsdatenträger korrekt entpackt wurde.\n\nWenn Sie das Rettungsdatenträger-Abbild auf einen USB-Stick entpackt haben, werfen Sie ihn bitte aus und stecken Sie ihn wieder ein; anschließend versuchen Sie es erneut. Wenn dies nicht hilft, versuchen Sie es bitte mit einer anderen ZIP-Software und/oder Medium.\n\nWenn Sie für einen anderen Hauptschlüssel, Passwort, Salz, usw. versucht haben, den VeraCrypt-Rettungsdatenträger zu bestätigen, beachten Sie bitte, dass ein solcher Rettungsdatenträger immer durch diese Überprüfung fallen wird. Um einen neuen, mit Ihrer aktuellen Konfiguration vollständig kompatiblen Rettungsdatenträger zu erstellen, wählen Sie 'System' > 'Rettungsdatenträger erstellen' aus.</string>
<string lang="de" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Das Rettungsdatenträger-Abbild wurde erstellt und in dieser Datei gespeichert:\n%s\n\nJetzt müssen Sie das Rettungsdatenträger-Abbild auf einen mit FAT/FAT32-formatierten USB-Stick entpacken.\n\nWICHTIG: Beachten Sie, dass die ZIP-Datei direkt in das Stammverzeichnis des USB-Sticks entpackt werden muss. Zum Beispiel, wenn der Laufwerksbuchstabe des USB-Sticks E: ist, sollte das Entpacken der ZIP-Datei einen Ordner E:\\EFI auf dem USB-Stick erstellen.\n\nNachdem Sie den Rettungsdatenträger erstellt haben, wählen Sie 'System' > 'Rettungsdatenträger überprüfen' aus, um zu bestätigen, dass er korrekt erstellt wurde.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</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 af83a37..286bcdd 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="el" name="Ελληνικά" en-name="Greek" version="0.1.0" translators="Βασίλης Κοσμίδης" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="el" key="IDC_PREF_MOUNT_READONLY">ΦόÏτωση τόμων ως μόνο για ανάγνωση</control>
<control lang="el" key="IDC_PREF_MOUNT_REMOVABLE">ΦόÏτωση τόμων ως αποσπώμενα μέσα</control>
<control lang="el" key="IDC_PREF_OPEN_EXPLORER">Άνοιγμα Explorer για τους επιτυχώς φοÏτωμένους τόμους</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="el" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">ΔιαγÏαφή κωδικών από τη μνήμη κατά την αυτοεκφόÏτωση</control>
<control lang="el" key="IDC_PREF_WIPE_CACHE_ON_EXIT">ΔιαγÏ. κωδικών από τη μνήμη κατά την έξοδο</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="el" key="INSTALL_FAILED">Η εγκατάσταση απέτυχε.</string>
<string lang="el" key="UNINSTALL_FAILED">Η απεγκατάσταση απέτυχε.</string>
- <string lang="el" key="DIST_PACKAGE_CORRUPTED">Αυτό το πακέτο εγκατάστασης είναι φθαÏμένο. ΠαÏακαλώ δοκιμάστε να το κατεβάσετε ξανά (κατά Ï€Ïοτίμηση από τον ιστοχώÏο του VeraCrypt στη https://veracrypt.codeplex.com).</string>
+ <string lang="el" key="DIST_PACKAGE_CORRUPTED">Αυτό το πακέτο εγκατάστασης είναι φθαÏμένο. ΠαÏακαλώ δοκιμάστε να το κατεβάσετε ξανά (κατά Ï€Ïοτίμηση από τον ιστοχώÏο του VeraCrypt στη https://www.veracrypt.fr).</string>
<string lang="el" key="CANNOT_WRITE_FILE_X">Αδυναμία εγγÏαφής αÏχείου %s</string>
<string lang="el" key="EXTRACTING_VERB">Εξαγωγή</string>
<string lang="el" key="CANNOT_READ_FROM_PACKAGE">Αδυναμία ανάγνωσης δεδομένων από το πακέτο.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="el" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Θέλετε να ακυÏώσετε τον Ï€Ïοέλεγχο της κÏυπτογÏάφησης συστήματος;</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="el" key="SYS_DRIVE_NOT_ENCRYPTED">Το διαμέÏισμα/οδηγός του συστήματος δε φαίνεται κÏυπτογÏαφημένο (οÏτε μεÏικώς οÏτε ολόκληÏο).</string>
<string lang="el" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Το διαμέÏισμα/οδηγός του συστήματος είναι κÏυπτογÏαφημένο (μεÏικώς ή ολόκληÏο).\n\nΠαÏακαλώ αποκÏυπτογÏαφήστε το ολοκληÏωτικά Ï€Ïιν συνεχίσετε. Για να το κάνετε αυτό, επιλέξτε 'ΣÏστημα' &gt; 'Μόνιμη αποκÏυπτογÏάφηση διαμεÏίσματος/Î¿Î´Î·Î³Î¿Ï ÏƒÏ…ÏƒÏ„Î®Î¼Î±Ï„Î¿Ï‚' από το Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… κÏÏιου παÏάθυÏου του VeraCrypt.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.es.xml b/Translations/Language.es.xml
index 9d93119..a85122f 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="es" name="Español" en-name="Spanish" version="1.0.0" translators="Juan Antonio Auñón Ochando" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="es" key="IDC_PREF_MOUNT_READONLY">Montar volúmenes como sólo lectura</control>
<control lang="es" key="IDC_PREF_MOUNT_REMOVABLE">Montar volúmenes como medios extraíbles</control>
<control lang="es" key="IDC_PREF_OPEN_EXPLORER">Abrir en el &amp;explorador el volumen montado con éxito</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="es" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Usar icono distinto en la barra de tareas si hay volúmenes montados</control>
<control lang="es" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Eliminar contraseñas guardadas al desmontar automáticamente</control>
<control lang="es" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Eliminar contraseñas guardadas al salir</control>
@@ -857,7 +857,7 @@
<string lang="es" key="TC_INSTALLER_IS_RUNNING">El Instalador de VeraCrypt ya se está ejecutando en este sistema y está preparando o llevando a cabo la instalación o actualización de VeraCrypt. Antes de continuar, espere a que termine o ciérrelo. Si no puede cerrarlo, reinicie su ordenador antes de continuar.</string>
<string lang="es" key="INSTALL_FAILED">La Instalación falló.</string>
<string lang="es" key="UNINSTALL_FAILED">La Desinstalación falló.</string>
- <string lang="es" key="DIST_PACKAGE_CORRUPTED">Este paquete de distribución está dañado. Intente descargarlo nuevamente (preferentemente desde la página oficial de VeraCrypt en https://veracrypt.codeplex.com).</string>
+ <string lang="es" key="DIST_PACKAGE_CORRUPTED">Este paquete de distribución está dañado. Intente descargarlo nuevamente (preferentemente desde la página oficial de VeraCrypt en https://www.veracrypt.fr).</string>
<string lang="es" key="CANNOT_WRITE_FILE_X">No se puede escribir el archivo %s</string>
<string lang="es" key="EXTRACTING_VERB">Extrayendo</string>
<string lang="es" key="CANNOT_READ_FROM_PACKAGE">No se puede leer información del paquete.</string>
@@ -1232,7 +1232,7 @@
<string lang="es" key="HIDDEN_OS_CREATION_PREINFO_HELP">En los siguientes pasos, VeraCrypt creará el sistema operativo oculto copiando el contenido de la partición del sistema al volumen oculto (los datos que se copien serán cifrados al vuelo con una clave de cifrado diferente de la que se usará para el sistema operativo señuelo).\n\nTenga en cuenta que el proceso se realizará en el entorno de pre-arranque (antes del inicio de Windows) y puede tardar mucho en completarse; varias horas o incluso días (dependiendo del tamaño de la partición del sistema y del rendimiento de su ordenador).\n\nPodrá interrumpir el proceso, apagar su ordenador, iniciar el sistema operativo y luego continuar el proceso. No obstante, si lo interrumpe, el proceso de copiado tendrá que comenzar desde el principio (porque el contenido de la partición del sistema no debe cambiar durante la clonación).</string>
<string lang="es" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">¿Desea cancelar el proceso entero de cración del sistema operativo oculto?\n\nNota: NO podrá continuar el proceso más tarde si lo cancela ahora.</string>
<string lang="es" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">¿Desea cancelar la prueba del cifrado del sistema?</string>
- <string lang="es" key="BOOT_PRETEST_FAILED_RETRY">Ha fallado la prueba del cifrado del sistema VeraCrypt. ¿Desea intentarlo de nuevo?\n\nSi selecciona 'No', el componente de autenticación de pre-arranque será desinstalado.\n\nNotas:\n\n- Si el Cargador de Arranque VeraCrypt no le pidió que introdujera la contraseña antes de que Windows se iniciara, es posible que su sistema operativo no arranque desde la unidad en la que está instalado. Esto no está soportado.\n\n- Si usó un algoritmo de cifrado distinto a AES y la prueba falló (e introdujo la contraseña), la causa puede ser un controlador diseñado inapropiadamente. Seleccione 'No', y trate de cifrar la partición/unidad del sistema otra vez, pero use el algoritmo de cifrado AES (que tiene los requisitos de memoria más bajos).\n\n- Para más posibles causas y soluciones, vea https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="es" key="BOOT_PRETEST_FAILED_RETRY">Ha fallado la prueba del cifrado del sistema VeraCrypt. ¿Desea intentarlo de nuevo?\n\nSi selecciona 'No', el componente de autenticación de pre-arranque será desinstalado.\n\nNotas:\n\n- Si el Cargador de Arranque VeraCrypt no le pidió que introdujera la contraseña antes de que Windows se iniciara, es posible que su sistema operativo no arranque desde la unidad en la que está instalado. Esto no está soportado.\n\n- Si usó un algoritmo de cifrado distinto a AES y la prueba falló (e introdujo la contraseña), la causa puede ser un controlador diseñado inapropiadamente. Seleccione 'No', y trate de cifrar la partición/unidad del sistema otra vez, pero use el algoritmo de cifrado AES (que tiene los requisitos de memoria más bajos).\n\n- Para más posibles causas y soluciones, vea https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="es" key="SYS_DRIVE_NOT_ENCRYPTED">La partición/unidad del sistema no parece estar cifrada (ni parcial ni completamente).</string>
<string lang="es" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Su partición/unidad del sistema está cifrada (parcial o completamente).\n\nDescifre por completo su partición/unidad del sistema antes de continuar. Para ello, seleccione 'Sistema' &gt; 'Descifrar Permanentemente la Partición/Unidad del Sistema' desde el menú de la ventana principal de VeraCrypt.</string>
<string lang="es" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Si la partición/unidad del sistema está cifrada (parcial o completamente), no puede usar una versión anterior de VeraCrypt (pero puede actualizarlo o reinstalar la misma versión).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.et.xml b/Translations/Language.et.xml
index a1f3da0..df7e440 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="et" name="Eesti" en-name="Estonian" version="0.1.0" translators="Maiko Mõtsar" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="et" key="IDC_PREF_MOUNT_READONLY">Haagi konteiner kirjutuskaitstuna</control>
<control lang="et" key="IDC_PREF_MOUNT_REMOVABLE">Haagi konteinerid kui eemaldatav meedia</control>
<control lang="et" key="IDC_PREF_OPEN_EXPLORER">Ava edukalt haagitud konteiner Exploreris</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="et" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Kustuta kogutud salasõnad automaatsel lahtihaakimisel</control>
<control lang="et" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Kustuta väljumisel kogutud salasõnad</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.eu.xml b/Translations/Language.eu.xml
index 49d21ea..dc3fb68 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="eu" name="Euskara" en-name="Basque" version="1.0.0" translators="Ander Genua" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="eu" key="IDC_PREF_MOUNT_READONLY">Bolumenak &amp;irakurtzeko bakarrik muntatu</control>
<control lang="eu" key="IDC_PREF_MOUNT_REMOVABLE">Bolumenak kendu daitezkeen gailuak bezala muntatu</control>
<control lang="eu" key="IDC_PREF_OPEN_EXPLORER">Explorer-aren lehioa ireki muntatutako bolumenentzako</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="eu" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Ataza-barra ikono ezberdin bat erabili muntatutako bolumenak badaude</control>
<control lang="eu" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Gordetako pasahitzak ezabatu automatikoki desmuntatzerakoan</control>
<control lang="eu" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Gordetako pasahitzak ezabatu irtetzerakoan</control>
@@ -857,7 +857,7 @@
<string lang="eu" key="TC_INSTALLER_IS_RUNNING">VeraCrypt-en instalatzailea dagoeneko martxan dago sistema honetan instalazio bat egiten edo prestatzen edo VeraCrypt-en eguneraketa batekin. Jarraitu baino lehen, mesedez, bukatzen den arte itxaron ezazu edo itxi ezazu. Ezin baduzu itxi, mesedez, zure ordenagailua berrabiatu ezazu jarraitu baino lehen.</string>
<string lang="eu" key="INSTALL_FAILED">Instalazioak huts egin du.</string>
<string lang="eu" key="UNINSTALL_FAILED">Desinstalazioak huts egin du.</string>
- <string lang="eu" key="DIST_PACKAGE_CORRUPTED">Banaketaren pakete hau hondatuta dago. Mesedez, saiatu zaitez berriro deskargatzen (hobe VeraCrypt-en weborri ofizialetik https://veracrypt.codeplex.com).</string>
+ <string lang="eu" key="DIST_PACKAGE_CORRUPTED">Banaketaren pakete hau hondatuta dago. Mesedez, saiatu zaitez berriro deskargatzen (hobe VeraCrypt-en weborri ofizialetik https://www.veracrypt.fr).</string>
<string lang="eu" key="CANNOT_WRITE_FILE_X">Ezin da %s fitxategia idatzi</string>
<string lang="eu" key="EXTRACTING_VERB">Ateratzen</string>
<string lang="eu" key="CANNOT_READ_FROM_PACKAGE">Ezin da paketeko informazioa irakurri.</string>
@@ -1232,7 +1232,7 @@
<string lang="eu" key="HIDDEN_OS_CREATION_PREINFO_HELP">Hurrengo urratsetan VeraCrypt ezkutuko sistema eragile berria sortuko du sistemaren partizioa ezkutuko bolumenera kopiatuz (kopiatutako datuak segidan zifratuko dira sistema amu bezala dagoen sistema eragileak daukan gako ezberdinarekin).\n\nKontutan izan ezazu prozesu hau hasieraketa aurreko ingurunean (Windows hasi aurretik) egingo dela eta asko iraun dezakela; orduak edo egunak (sistemaren partizioaren tamaina eta ordenagailuaren potentziaren arabera).\n\nProzesua bertan bera uzti ahal izango duzu ordenagailua itzaliz, sistema eragilea hasieratu eta prozesua jarraitu. Hala ere, prozesua mozten baduzu, sistema kopiatzeko prozesu guztia haieratik hasi behar izando da berriro (sistemaren partizioaren edukia ezin daitekeelako aldatu klonatze prozesua martxan dagoenean).</string>
<string lang="eu" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Ezkutuko sistema eragilearen sortzeko prozesua bertan behera utzi nahi al duzu?n\nOharra: Orain uzten baduzu ezingo diozu prozesuari berrekin.</string>
<string lang="eu" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Sistema zifratzeko aurre-azterketa bertan behera utzi nahi al duzu?</string>
- <string lang="eu" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt-en sistema zifratzeko aurre-azterketak huts egin du. Berriz saiatu nahi duzu?\n\n'Ez' aukeratzen baduzu, hasieraketa aurreko kautotze osagarria desinstalatuko da.\n\nOharrak:\n\n- VeraCrypt Hasieraketa Kargatzaileak ez badizu pasahitzik eskatu Windows hasi aurretik, agian zure sistema eragilea ez da abiatzen instalatuta dagoen unitatetik. Hori ez dago onartua.\n\n- AES ez den zifraketa algoritmo bat erabili baduzu eta aurre-azterketak huts egin badu (eta pasahitza sartu duzu), gaizki diseinatuta dagoen erabiltzaile baten errua izan daiteke. 'Ez' aukeratu ezazu eta sistemaren partizio/unitatea berriz zifratzen saiatu zatez, baina oraingoan AES zifratze algoritmoa erabiliz (zeinek memoria behar baxuenak dituen).\n\n- Zergati eta konponbide gehiago ikusteko: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="eu" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt-en sistema zifratzeko aurre-azterketak huts egin du. Berriz saiatu nahi duzu?\n\n'Ez' aukeratzen baduzu, hasieraketa aurreko kautotze osagarria desinstalatuko da.\n\nOharrak:\n\n- VeraCrypt Hasieraketa Kargatzaileak ez badizu pasahitzik eskatu Windows hasi aurretik, agian zure sistema eragilea ez da abiatzen instalatuta dagoen unitatetik. Hori ez dago onartua.\n\n- AES ez den zifraketa algoritmo bat erabili baduzu eta aurre-azterketak huts egin badu (eta pasahitza sartu duzu), gaizki diseinatuta dagoen erabiltzaile baten errua izan daiteke. 'Ez' aukeratu ezazu eta sistemaren partizio/unitatea berriz zifratzen saiatu zatez, baina oraingoan AES zifratze algoritmoa erabiliz (zeinek memoria behar baxuenak dituen).\n\n- Zergati eta konponbide gehiago ikusteko: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="eu" key="SYS_DRIVE_NOT_ENCRYPTED">Sistemaren partizioa/unitatea ez dirudi zifratuta dagoenik (ez zati bat, ez guztiz).</string>
<string lang="eu" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Zure sistemaren partizioa/unitatea (zatika edo guztiz) zifratuta dago.\n\nMesedez, sistemaren partizio/unitate osoa argitu jarraitu aurretik. Hori egiteko, 'Sistema' &gt; 'Sistemaren Partizioa/Unitatea Betirako Argitu' aukeratu VeraCrypt lehio nagusiaren menuan.</string>
<string lang="eu" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Sistemaren partizioa/unitatea (zatika edo guztiz) zifratuta dagoenean, ezin zara VeraCrypt-en bertsio zahar batera aldatu (baina berri bat instalatu edo martxan dagoena berrinstalatu bai).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.fa.xml b/Translations/Language.fa.xml
index 8cdf026..c1e39a3 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="fa" name="Ùارسي" en-name="Persian" version="0.1.0" translators="Ali Bitazar, Rodabeh Sarmadi" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="fa" key="IDC_PREF_MOUNT_READONLY">Ùايل سيستم Ùقط خواندني را استارت كند</control>
<control lang="fa" key="IDC_PREF_MOUNT_REMOVABLE">Ùايل سيستم را براي درايوهاي جداپذير شروع كند</control>
<control lang="fa" key="IDC_PREF_OPEN_EXPLORER">مرورگر را براي Ùايل سيستم هايي كه با موÙقيت مونت شدند بازكن</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="en" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Wipe cached passwords on auto-dismount</control>
<control lang="en" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Wipe cached passwords on exit</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.fi.xml b/Translations/Language.fi.xml
index 8a4e039..f7340e6 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="fi" name="Suomi" en-name="Finnish" version="0.1.0" translators="Matti Ruhanen" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="fi" key="IDC_PREF_MOUNT_READONLY">Yhdistä taltiot vain lukutilaan</control>
<control lang="fi" key="IDC_PREF_MOUNT_REMOVABLE">Yhdistä taltiot liikutettavina välineinä</control>
<control lang="fi" key="IDC_PREF_OPEN_EXPLORER">Avaa Selaus ikkuna onnistuneesti yhdistetyille taltioille</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="fi" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Tyhjennä tallennetut välimuisti salasanat taltioilta auto-poiskytketyillä yhteyksillä</control>
<control lang="fi" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Pyyhi välimuisti salasanat poistuttaessa</control>
@@ -857,7 +857,7 @@
<string lang="fi" key="TC_INSTALLER_IS_RUNNING">VeraCrypt asennusohjelma on juuri käynnissä tässä järjestelmässä ja suorittaa tai valmistelee asennusta tai VeraCrypt päivittämistä. Ennen kuin aloitat, ole hyvä ja odota sen loppumista tai sulje se. Jos et voi sulkea sitä, ole hyvä ja käynnistä tietokoneesi uudelleen ennen tätä suoritusta.</string>
<string lang="fi" key="INSTALL_FAILED">Asennus epäonnistui.</string>
<string lang="fi" key="UNINSTALL_FAILED">Asennuksen poisto epäonnistui.</string>
- <string lang="fi" key="DIST_PACKAGE_CORRUPTED">Tämä jaettu paketti on viallinen. Yritä ladata se uudelleen (mieluiten virallisilta VeraCrypt kotisivuilta osoitteesta https://veracrypt.codeplex.com).</string>
+ <string lang="fi" key="DIST_PACKAGE_CORRUPTED">Tämä jaettu paketti on viallinen. Yritä ladata se uudelleen (mieluiten virallisilta VeraCrypt kotisivuilta osoitteesta https://www.veracrypt.fr).</string>
<string lang="fi" key="CANNOT_WRITE_FILE_X">Ei voida kirjoittaa tiedostoa %s</string>
<string lang="fi" key="EXTRACTING_VERB">Puretaan</string>
<string lang="fi" key="CANNOT_READ_FROM_PACKAGE">Ei voida lukea tietoja paketista.</string>
@@ -1232,7 +1232,7 @@
<string lang="fi" key="HIDDEN_OS_CREATION_PREINFO_HELP">Seuraavassa askeleessa, VeraCrypt luo piilotetun käyttöjärjestelmän kopioimalla järjestelmäosion sisällön piilotetulle taltiolle (kopioitava data salataan lennossa salausavaimella joka eroaa siitä mitä käytetään houkutuslintu käyttöjärjestelmälle).\n\nOle hyvä ja huomioi että prosessi suorittaa esikäynnistys ympäristössä (ennen kuin Windows käynnistyy) ja sen valmistuminen saattaa kestää kauemmin; useita tunteja tai jopa useita päiviä (riippuen järjestelmäosion koosta ja tietokoneen suorituskyvystä).\n\nSinun on mahdollista keskeyttää prosessi, sulkea tietokone, käynnistää käyttöjärjestelmä ja sitten aloittaa uudelleen prosessi. Kuitenkin, jos keskeytät sen, koko järjestelmän kopiointi prosessi täytyy aloittaa alusta (koska järjestelmäosion sisältö ei saa muuttua kloonauksen aikana).</string>
<string lang="fi" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Haluatko peruuttaa koko piilotetun käyttöjärjestelmän luonti tehtävän?\n\nHuomioi: EI ole mahdollista aloittaa tehtävää uudelleen jos keskeytät tehtävän nyt.</string>
<string lang="fi" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Haluatko perua järjestelmän salauksen esitestauksen?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="fi" key="SYS_DRIVE_NOT_ENCRYPTED">järjestelmäosio/asema ei ole salattu (ei osittain eikä täysin).</string>
<string lang="fi" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">järjestelmäosio/asema on suojattu (osittain tai täysin).\n\nValitse salauksenpurku järjestelmäosiolle/asemalle pelkästään ennen suoritusta. Tee näin, valitse 'Järjestelmä' &gt; 'Pysyvästi salasanapurettu järjestelmäosio/asema' menusta VeraCrypt pääikkunasta.</string>
<string lang="fi" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Kun järjestelmäosio/asema on salattu (osittain tai täysin), et voi käyttää vanhempaa versiota VeraCrypt ohjelmasta (mutta voit päivittää sen tai uudelleen asentaa saman version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.fr.xml b/Translations/Language.fr.xml
index 25e7c3b..3b6dab1 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="fr" name="Français" en-name="French" version="0.3.0" translators="Stéphane S., Olivier M., Thierry T" />
<!-- Fonts -->
@@ -857,7 +857,7 @@
<string lang="fr" key="TC_INSTALLER_IS_RUNNING">L'installeur de VeraCrypt est actuellement exécuté sur votre système et réalise ou prépare l'installation ou la mise à jour de VeraCrypt. Avant de poursuivre, attendez qu'il termine ou se ferme. Si vous ne pouvez pas le fermer, redémarrez votre ordinateur avant de poursuivre.</string>
<string lang="fr" key="INSTALL_FAILED">L'installation a échoué.</string>
<string lang="fr" key="UNINSTALL_FAILED">La désinstallation a échoué.</string>
- <string lang="fr" key="DIST_PACKAGE_CORRUPTED">Ce package est endommagé. Essayez de le télécharger à nouveau (de préférence à partir du site web officiel de VeraCrypt à l'URL https://veracrypt.codeplex.com).</string>
+ <string lang="fr" key="DIST_PACKAGE_CORRUPTED">Ce package est endommagé. Essayez de le télécharger à nouveau (de préférence à partir du site web officiel de VeraCrypt à l'URL https://www.veracrypt.fr).</string>
<string lang="fr" key="CANNOT_WRITE_FILE_X">Impossible d'écrire dans le fichier %s</string>
<string lang="fr" key="EXTRACTING_VERB">Extraction de</string>
<string lang="fr" key="CANNOT_READ_FROM_PACKAGE">Impossible de lire les données du package.</string>
@@ -1232,7 +1232,7 @@
<string lang="fr" key="HIDDEN_OS_CREATION_PREINFO_HELP">Dans les prochaines étapes, VeraCrypt va créer le système d'exploitation caché en copiant le contenu de la partition système sur le volume caché (les données à copier à la volée seront chiffrées avec une clé de chiffrement différente de celle qui sera utilisée pour le système d'exploitation leurre).\n\nVeuillez noter que le processus sera effectué dans l'environnement de pré-amorçage (avant le démarrage de Windows) et cela peut prendre beaucoup de temps, plusieurs heures ou même plusieurs jours (selon la taille de la partition système et les performances de votre ordinateur).\n\nVous serez en mesure d'interrompre le processus, arrêtez l'ordinateur, démarrez le système d'exploitation et ensuite reprendre le processus. Toutefois, si vous l'interrompez, tout le processus de copie du système devra recommencer depuis le début (parce que le contenu de la partition système ne doit pas changer lors du clonage).</string>
<string lang="fr" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Voulez-vous annuler l'intégralité du processus de création du système d'exploitation caché ?\n\nNote : Vous ne pourrez PAS reprendre le processus si vous l'annulez maintenant.</string>
<string lang="fr" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Voulez-vous annuler le pré-test de chiffrement du système ?</string>
- <string lang="fr" key="BOOT_PRETEST_FAILED_RETRY">Le prétest de chiffrement du système VeraCrypt a échoué. Voulez-vous réessayer ?\n\nSi vous sélectionnez « Non », le composant d'authentification de pré-amorçage sera désinstallé.\n\nRemarques :\n\n- Si le chargeur de démarrage de VeraCrypt n'a pas demandé d'entrer le mot de passe avant que Windows a commencé à démarrer, il est possible que votre système d'exploitation ne démarre pas depuis le disque sur lequel il est installé. Ceci n'est pas supporté.\\n\n- Si vous avez utilisé un algorithme de chiffrement autre que de l'AES et que le prétest a échoué (et vous avez entré le mot de passe), cela peut avoir été causé par un pilote mal conçu. Sélectionnez « Non » et essayer de chiffrer la partition/lecteur système à nouveau, mais utilisez l'algorithme de chiffrement AES (qui a le plus bas niveau d'exigences).\n\n- Pour plus de détails sur les causes et les solutions, voir : https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="fr" key="BOOT_PRETEST_FAILED_RETRY">Le prétest de chiffrement du système VeraCrypt a échoué. Voulez-vous réessayer ?\n\nSi vous sélectionnez « Non », le composant d'authentification de pré-amorçage sera désinstallé.\n\nRemarques :\n\n- Si le chargeur de démarrage de VeraCrypt n'a pas demandé d'entrer le mot de passe avant que Windows a commencé à démarrer, il est possible que votre système d'exploitation ne démarre pas depuis le disque sur lequel il est installé. Ceci n'est pas supporté.\\n\n- Si vous avez utilisé un algorithme de chiffrement autre que de l'AES et que le prétest a échoué (et vous avez entré le mot de passe), cela peut avoir été causé par un pilote mal conçu. Sélectionnez « Non » et essayer de chiffrer la partition/lecteur système à nouveau, mais utilisez l'algorithme de chiffrement AES (qui a le plus bas niveau d'exigences).\n\n- Pour plus de détails sur les causes et les solutions, voir : https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="fr" key="SYS_DRIVE_NOT_ENCRYPTED">La partition/le disque système ne semble pas chiffré (totalement ou en partie).</string>
<string lang="fr" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Votre partition/votre disque système est chiffré (totalement ou en partie).\n\nDéchiffrez votre partition/votre disque système entièrement avant de poursuivre. Pour cela sélectionnez 'Système' &gt; 'Déchiffrer définitivement la partition/le disque système' depuis la barre des menus de la fenêtre principale VeraCrypt.</string>
<string lang="fr" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Lorsque la partition/lecteur système est chiffré (partiellement ou totalement), vous ne pouvez pas rétrograder VeraCrypt (mais vous pouvez le mettre à jour ou réinstaller la même version).</string>
@@ -1413,6 +1413,15 @@
<string lang="fr" key="RESCUE_DISK_EFI_CHECK_FAILED">Impossible de vérifier que le disque de secours a été correctement décompressé.\n\nSi vous avez décompressé le disque de secours dans une clef USB, éjectez-la et réinsérez-la ; puis cliquez sur Suivant pour essayer à nouveau. Si cela ne fonctionne pas, essayez avec une autre clef USB et/ou un autre logiciel ZIP.\n\nSi vous n'avez pas encore décompressé le disque de secours, veuillez le faire et cliquez sur Suivant.\n\nSi vous a tenté de vérifier un disque de secours VeraCrypt créé avant de lancer cet Assistant, ce disque de secours ne peut pas être utilisé, car il a été créé pour une clé maître différente. Vous avez besoin de graver le disque de secours nouvellement généré.</string>
<string lang="fr" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Impossible de vérifier que le disque de secours a été correctement décompressé.\n\nSi vous avez décompressé le disque de secours dans une clef USB, éjectez-la et réinsérez-la puis essayez à nouveau. Si cela n'aide pas, essayez un autre logiciel de ZIP ou une autre clef USB.\n\nSi vous essayez de vérifier un disque de secours créé pour une clé principale différente, un mot de passe différent, etc... dans ce cas la vérification échouera à tous les coups. Pour créer un nouveau disque de secours totalement compatible avec votre configuration actuelle, sélectionnez 'Système' &gt; 'Créer un disque de secours'.</string>
<string lang="fr" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">L'image ZIP du disque de secours a été créée et stockée dans le fichier : \n%s\n\nMainteant vous avez besoin de la décompresser dans une clef USB formattée en FAT/FAT32.\n\nIMPORTANT : Le fichier ZIP doit être décompressé directement à la racine de la clef USB. Par exemple, si la lettre E: est attribuée à la clef USB, alors la décompression du fichier zip devrait créer un répertoire E:\\EFI sur la clef USB.\n\nAprès avoir créer le disque de secours, sélectionnez « Système » &gt; « Vérifier le disque de secours » pour vérifier qu'il a été créé correctement.</string>
+ <control lang="fr" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Utiliser le Bureau Sécurisé pour la demande de mot de passe</control>
+ <string lang="fr" key="ERR_REFS_INVALID_VOLUME_SIZE">La taille du volume spécifiée en ligne de commande n'est pas compatible avec ReFS.</string>
+ <control lang="fr" key="IDC_EDIT_DCSPROP">Modifier la configuration du chargeur de démarrage</control>
+ <control lang="fr" key="IDC_SHOW_PLATFORMINFO">Afficher les détails de la platforme EFI</control>
+ <string lang="fr" key="BOOT_LOADER_CONFIGURATION_FILE">Fichier de configuration du chargeur de démarrage</string>
+ <string lang="fr" key="EFI_PLATFORM_INFORMATION">Détails de la platforme EFI</string>
+ <string lang="fr" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">AVERTISSEMENT : Les utilisateurs novices ne devraient pas modifier manuellement le fichier de configuration du chargeur de démarrage.\n\nContinuer ?</string>
+ <string lang="fr" key="DCSPROP_XML_VALIDATION_FAILED">ATTENTION: échec de la validation du format XML du fichier de configuration du chargeur de démarrage. Merci de vérifier vos modifications.</string>
+ <control lang="fr" key="IDT_ADVANCED_OPTIONS">Options Avancées</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.hu.xml b/Translations/Language.hu.xml
index 04b4c60..ee8f988 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="hu" name="Magyar" en-name="Hungarian" version="0.1.0" translators="Nyul Balazs" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="hu" key="IDC_PREF_MOUNT_READONLY">Kötetek csak olvasható csatolása</control>
<control lang="hu" key="IDC_PREF_MOUNT_REMOVABLE">Kötetek csatolása cserélhető lemezként</control>
<control lang="hu" key="IDC_PREF_OPEN_EXPLORER">Sikeresen csatolt kötet Explorerben való megnyitása</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="hu" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Tárolt jelszavak törlése auto-leválasztáskor</control>
<control lang="hu" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Tárolt jelszavak törlése kilépéskor</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.id.xml b/Translations/Language.id.xml
index fb8f59f..e65a563 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="id" name="Bahasa Indonesia" en-name="Indonesian" version="0.1.0" translators="Tajuddin N. F." />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="id" key="IDC_PREF_MOUNT_READONLY">Sambung volume hanya bisa-baca</control>
<control lang="id" key="IDC_PREF_MOUNT_REMOVABLE">Sambung volume jadi media lepas-pasang</control>
<control lang="id" key="IDC_PREF_OPEN_EXPLORER">Buka jendela explorer dari volume yang berhasil disambung</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="id" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Bersihkan password tersimpan pada sambung otomatist</control>
<control lang="id" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Bersihkan password tersimpan saat keluar</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.it.xml b/Translations/Language.it.xml
index 6ba4116..c444878 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="it" name="Italiano" en-name="Italian" version="1.0.1" translators="Maurizio Ballo, Consiglio Gaetano" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="it" key="IDC_PREF_MOUNT_READONLY">Monta i volumi in sola lettura</control>
<control lang="it" key="IDC_PREF_MOUNT_REMOVABLE">Monta i volumi come unità rimovibili</control>
<control lang="it" key="IDC_PREF_OPEN_EXPLORER">Apri la finestra di Esplora risorse dopo aver montato un volume correttamente</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="it" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Usa un icona diversa nella barra di sistema se ci sono volumi montati</control>
<control lang="it" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Azzera le password nella cache allo smontaggio automatico</control>
<control lang="it" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Azzera le password nella cache in uscita</control>
@@ -857,7 +857,7 @@
<string lang="it" key="TC_INSTALLER_IS_RUNNING">L’installer di VeraCrypt è attualmente in esecuzione in questo sistema ed esegue o prepara l’installazione oppure aggiornamento di VeraCrypt. Prima di procedere, attendere per finire o chiudere esso. Se non potete chiudere l’installer, riavviare i computer prima di procedere.</string>
<string lang="it" key="INSTALL_FAILED">Installazione fallita.</string>
<string lang="it" key="UNINSTALL_FAILED">Disinstallazione fallita.</string>
- <string lang="it" key="DIST_PACKAGE_CORRUPTED">Questo pacchetto di distribuzione è danneggiato. Provare a scaricarlo nuovamente (preferibilmente dal sito ufficiale di VeraCrypt all’indirizzo ww.veracrypt.org).</string>
+ <string lang="it" key="DIST_PACKAGE_CORRUPTED">Questo pacchetto di distribuzione è danneggiato. Provare a scaricarlo nuovamente (preferibilmente dal sito ufficiale di VeraCrypt all’indirizzo https://www.veracrypt.fr).</string>
<string lang="it" key="CANNOT_WRITE_FILE_X">Impossibile scrivere il file %s</string>
<string lang="it" key="EXTRACTING_VERB">Estrazione</string>
<string lang="it" key="CANNOT_READ_FROM_PACKAGE">Impossibile leggere i dati dal pacchetto.</string>
@@ -1232,7 +1232,7 @@
<string lang="it" key="HIDDEN_OS_CREATION_PREINFO_HELP">Nei passi successivi, VeraCrypt creerà il sistema operativo nascosto copiando il contenuto della partizione di sistema nel volume nascosto (i dati in copia saranno Codificati al volo con una chiave di codifica differente da quella usata per il sistema operativo di richiamo).\n\nNotate che il processo sarà eseguito in ambiente di pre-boot(prima dell’avvio di Windows) e può impiegare molto tempo per essere completato; diverse ore o anche diversi giorni (a seconda della dimensione della partizione di sistema e dalle prestazioni del vostro computer).\n\nVoi potrete interrompere il processo, spegnere il vostro computer, avviare il sistema operativo e riavviare il processo. Comunque, se interrompete tale processo, l’intera procedura di copia del sistema dovrà ripartire dall’inizio (perché il contenuto della partizione di sistema non deve cambiare durante la clonazione).</string>
<string lang="it" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Volete annullare l’intero processo di creazione del sistema operativo nascosto?\n\nNota: NON potrete ripristinare il processo se lo annullate adesso.</string>
<string lang="it" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Volete annullare il pre-test per la codifica di sistema?</string>
- <string lang="it" key="BOOT_PRETEST_FAILED_RETRY">La richiesta di codifica di sistema VeraCrypt è fallita. Volete ritentare?\n\nSelezionando 'No', il componente di autenticazione in pre-boot sarà disinstallato.\n\nNota:\n\n- Se il Boot Loader di VeraCrypt non vi richiede di digitare la password prima dell'avvio di Windows, è possibile che il vostro sistema operativo non si it is avvia dall'unità nella quale esso è installato. Questo non è supportato.\n\n- Se usate un algoritmo di cifratura diverso di AES e la richiesta è fallita (ed avete digitato la password), questo è stato causato da un driver designato inadeguatamente. Selezionare 'No', e ritentare la cifratura della partizione/unità di sistema, usando l'algoritmo di codifica AES (che ha dei requisiti di memoria inferiori).\n\n- Per più possibili cause e soluzioni, visitare: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="it" key="BOOT_PRETEST_FAILED_RETRY">La richiesta di codifica di sistema VeraCrypt è fallita. Volete ritentare?\n\nSelezionando 'No', il componente di autenticazione in pre-boot sarà disinstallato.\n\nNota:\n\n- Se il Boot Loader di VeraCrypt non vi richiede di digitare la password prima dell'avvio di Windows, è possibile che il vostro sistema operativo non si it is avvia dall'unità nella quale esso è installato. Questo non è supportato.\n\n- Se usate un algoritmo di cifratura diverso di AES e la richiesta è fallita (ed avete digitato la password), questo è stato causato da un driver designato inadeguatamente. Selezionare 'No', e ritentare la cifratura della partizione/unità di sistema, usando l'algoritmo di codifica AES (che ha dei requisiti di memoria inferiori).\n\n- Per più possibili cause e soluzioni, visitare: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="it" key="SYS_DRIVE_NOT_ENCRYPTED">La partizione/disco di sistema non sembra essere criptato (né parzialmente né interamente).</string>
<string lang="it" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">La vostra partizione/disco di sistema è criptato (parzialmente o completamente).\n\nDeCodificate la vostra partizione/disco interamente prima di procedere. Per fare questo, selezionate 'Sistema'&gt;'Decodifica definitivamente la partizione/disco di sistema' dal menu della barra strumenti della finestra principale di VeraCrypt.</string>
<string lang="it" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Quando la partizione/unità di sistema è crittata (parzialmente o totalmente), non potete tornare ad una precedente versione di VeraCrypt (ma potete aggiornare o reinstallare la stessa versione di esso).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.ja.xml b/Translations/Language.ja.xml
index 80e2bf1..ad9e515 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="ja" name="日本語" en-name="Japanese" version="1.0.0" translators="OGOSHI Masayuki" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="ja" key="IDC_PREF_MOUNT_READONLY">ボリュームを読ã¿å–り専用ã§ãƒžã‚¦ãƒ³ãƒˆ</control>
<control lang="ja" key="IDC_PREF_MOUNT_REMOVABLE">ボリュームをリムーãƒãƒ–ルメディアã¨ã—ã¦ãƒžã‚¦ãƒ³ãƒˆ</control>
<control lang="ja" key="IDC_PREF_OPEN_EXPLORER">マウントæˆåŠŸæ™‚ã«ãã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‹ã</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="ja" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">マウントã•ã‚ŒãŸãƒœãƒªãƒ¥ãƒ¼ãƒ ãŒã‚ã‚‹ã¨ãã«ã‚¿ã‚¹ã‚¯ãƒãƒ¼ã‚¢ã‚¤ã‚³ãƒ³ã‚’変ãˆã‚‹</control>
<control lang="ja" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">自動アンマウントã®éš›ã«è¨˜æ†¶ã—ã¦ã„ãŸãƒ‘スワードを消去</control>
<control lang="ja" key="IDC_PREF_WIPE_CACHE_ON_EXIT">終了時ã«è¨˜æ†¶ã—ã¦ã„ãŸãƒ‘スワードを消去</control>
@@ -857,7 +857,7 @@
<string lang="ja" key="TC_INSTALLER_IS_RUNNING">ç¾åœ¨VeraCryptインストーラãŒèµ·å‹•ã—ã¦ãŠã‚Šã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚ã‚‹ã„ã¯ã‚¢ãƒƒãƒ—デートã®å®Ÿè¡Œä¸­ã§ã™ã€‚インストーラã®å‡¦ç†ãŒçµ‚ã‚ã‚‹ã®ã‚’å¾…ã¤ã‹ã€é–‰ã˜ã‚‹ã‹ã—ã¦ãã ã•ã„。閉ã˜ã‚‹ã“ã¨ãŒã§ããªã„å ´åˆã¯å†èµ·å‹•ã—ã¦ãã ã•ã„。</string>
<string lang="ja" key="INSTALL_FAILED">インストールã«å¤±æ•—ã—ã¾ã—ãŸã€‚</string>
<string lang="ja" key="UNINSTALL_FAILED">アンインストールã«å¤±æ•—ã—ã¾ã—ãŸã€‚</string>
- <string lang="ja" key="DIST_PACKAGE_CORRUPTED">ã“ã®é…布パッケージã¯ç ´æã—ã¦ã„ã¾ã™ã€‚(ãªã‚‹ã¹ãVeraCryptã®å…¬å¼ã‚µã‚¤ãƒˆ https://veracrypt.codeplex.com ã‹ã‚‰ï¼‰ã‚‚ã†ä¸€åº¦ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ã¦ã¿ã¦ãã ã•ã„。</string>
+ <string lang="ja" key="DIST_PACKAGE_CORRUPTED">ã“ã®é…布パッケージã¯ç ´æã—ã¦ã„ã¾ã™ã€‚(ãªã‚‹ã¹ãVeraCryptã®å…¬å¼ã‚µã‚¤ãƒˆ https://www.veracrypt.fr ã‹ã‚‰ï¼‰ã‚‚ã†ä¸€åº¦ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ã¦ã¿ã¦ãã ã•ã„。</string>
<string lang="ja" key="CANNOT_WRITE_FILE_X">ファイル %s を書ãè¾¼ã‚ã¾ã›ã‚“。</string>
<string lang="ja" key="EXTRACTING_VERB">展開</string>
<string lang="ja" key="CANNOT_READ_FROM_PACKAGE">パッケージã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“。</string>
@@ -1232,7 +1232,7 @@
<string lang="ja" key="HIDDEN_OS_CREATION_PREINFO_HELP">次ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã€VeraCryptã¯ã‚·ã‚¹ãƒ†ãƒ ãƒ‘ーティションã‹ã‚‰éš ã—ボリュームã¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’コピーã™ã‚‹ã“ã¨ã§éš ã—OS領域を作æˆã—ã¾ã™ï¼ˆå›®OS領域ã¨ã¯åˆ¥ã®æš—å·éµã§å³æ™‚æš—å·åŒ–ã—ãªãŒã‚‰ã‚³ãƒ”ーã—ã¾ã™ï¼‰ã€‚\n\nã“ã®å‡¦ç†ã¯Windowsèµ·å‹•å‰ã®ç’°å¢ƒã§è¡Œã‚ã‚Œã€å®Œäº†ã™ã‚‹ã¾ã§ã«é•·æ™‚é–“ã‹ã‹ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。処ç†æ™‚é–“ã¯ã‚·ã‚¹ãƒ†ãƒ ãƒ‘ーティションã®ã‚µã‚¤ã‚ºã‚„コンピュータã®æ€§èƒ½ã«ã‚‚よりã¾ã™ãŒã€æ•°æ™‚é–“ã‹ã‚‰æ•°æ—¥ã‹ã‹ã‚‹ã“ã¨ã‚‚ã‚ã‚Šã¾ã™ã€‚\n\nã“ã®å‡¦ç†ã‚’途中ã§ä¸­æ–­ã—ã€ã‚³ãƒ³ãƒ”ュータをå†èµ·å‹•ã—ãŸå¾Œã«ã‚らãŸã‚ã¦å†é–‹ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ãŸã ã—ã€ã‚‚ã—処ç†ã‚’中断ã—ãŸå ´åˆã¯ã€ã‚·ã‚¹ãƒ†ãƒ ã®ã‚³ãƒ”ー処ç†ã‹ã‚‰ã‚„ã‚Šç›´ã—ã«ãªã‚Šã¾ã™ã€‚ã“ã‚Œã¯ã‚·ã‚¹ãƒ†ãƒ ãƒ‘ーティションã¨ã‚³ãƒ”ー先ã®å†…容をåŒä¸€ã«ã™ã‚‹ãŸã‚ã«å¿…è¦ã§ã™ã€‚</string>
<string lang="ja" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">éš ã—OSã®ä½œæˆã‚’キャンセルã—ã¾ã™ã‹ï¼Ÿ\n\nã“ã“ã§å‡¦ç†ã‚’キャンセルã—ãŸå ´åˆã€å¾Œã§å‡¦ç†ã‚’å†é–‹ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。</string>
<string lang="ja" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">システム暗å·åŒ–ã®äºˆå‚™æ¤œæŸ»ã‚’キャンセルã—ã¾ã™ã‹ï¼Ÿ</string>
- <string lang="ja" key="BOOT_PRETEST_FAILED_RETRY">VeraCryptã®ã‚·ã‚¹ãƒ†ãƒ æš—å·åŒ–予備検査ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦äºˆå‚™æ¤œæŸ»ã‚’ã—ã¾ã™ã‹ï¼Ÿ\n\nã‚‚ã—「ã„ã„ãˆã€ã‚’é¸ã‚“ã å ´åˆã€èµ·å‹•å‰èªè¨¼ç”¨ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¾ã™ã€‚\n\n注:\n\n- ã‚‚ã—VeraCryptブートローダーãŒWindowsãŒèµ·å‹•ã™ã‚‹å‰ã«ãƒ‘スワードã®å…¥åŠ›ã‚’è¦æ±‚ã—ã¦ã“ãªã‹ã£ãŸå ´åˆã€ãƒ–ートローダーãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚ŒãŸã®ã§ã¯ãªã„ドライブã‹ã‚‰OSãŒèµ·å‹•ã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ã“ã®ã‚±ãƒ¼ã‚¹ã«ã¯å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“。\n\n- ã‚‚ã—AES以外ã®æš—å·åŒ–アルゴリズムを使ã£ã¦äºˆå‚™æ¤œæŸ»ã«å¤±æ•—ã—ãŸï¼ˆãã—ã¦ãƒ‘スワードã¯å…¥åŠ›ã—ãŸï¼‰å ´åˆã€ä¸é©åˆ‡ãªè¨­è¨ˆã®ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ã«èµ·å› ã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚「ã„ã„ãˆã€ã‚’é¸æŠžã—ã€ã‚·ã‚¹ãƒ†ãƒ ãƒ‘ーティション/ドライブをAESを使ã£ã¦æš—å·åŒ–ã—ãªãŠã—ã¦ã¿ã¦ãã ã•ã„(メモリ使用é‡ãŒæœ€å°‘ã«ãªã‚Šã¾ã™ï¼‰ã€‚\n\n- ãã®ä»–ã«è€ƒãˆã‚‰ã‚Œã‚‹åŽŸå› ã‚„対処方法ã«ã¤ã„ã¦ã¯ã€https://veracrypt.codeplex.com/wikipage?title=Troubleshooting ã‚’ã”覧ãã ã•ã„。</string>
+ <string lang="ja" key="BOOT_PRETEST_FAILED_RETRY">VeraCryptã®ã‚·ã‚¹ãƒ†ãƒ æš—å·åŒ–予備検査ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦äºˆå‚™æ¤œæŸ»ã‚’ã—ã¾ã™ã‹ï¼Ÿ\n\nã‚‚ã—「ã„ã„ãˆã€ã‚’é¸ã‚“ã å ´åˆã€èµ·å‹•å‰èªè¨¼ç”¨ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¾ã™ã€‚\n\n注:\n\n- ã‚‚ã—VeraCryptブートローダーãŒWindowsãŒèµ·å‹•ã™ã‚‹å‰ã«ãƒ‘スワードã®å…¥åŠ›ã‚’è¦æ±‚ã—ã¦ã“ãªã‹ã£ãŸå ´åˆã€ãƒ–ートローダーãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚ŒãŸã®ã§ã¯ãªã„ドライブã‹ã‚‰OSãŒèµ·å‹•ã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ã“ã®ã‚±ãƒ¼ã‚¹ã«ã¯å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“。\n\n- ã‚‚ã—AES以外ã®æš—å·åŒ–アルゴリズムを使ã£ã¦äºˆå‚™æ¤œæŸ»ã«å¤±æ•—ã—ãŸï¼ˆãã—ã¦ãƒ‘スワードã¯å…¥åŠ›ã—ãŸï¼‰å ´åˆã€ä¸é©åˆ‡ãªè¨­è¨ˆã®ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ã«èµ·å› ã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚「ã„ã„ãˆã€ã‚’é¸æŠžã—ã€ã‚·ã‚¹ãƒ†ãƒ ãƒ‘ーティション/ドライブをAESを使ã£ã¦æš—å·åŒ–ã—ãªãŠã—ã¦ã¿ã¦ãã ã•ã„(メモリ使用é‡ãŒæœ€å°‘ã«ãªã‚Šã¾ã™ï¼‰ã€‚\n\n- ãã®ä»–ã«è€ƒãˆã‚‰ã‚Œã‚‹åŽŸå› ã‚„対処方法ã«ã¤ã„ã¦ã¯ã€https://www.veracrypt.fr/en/Troubleshooting.html ã‚’ã”覧ãã ã•ã„。</string>
<string lang="ja" key="SYS_DRIVE_NOT_ENCRYPTED">システムパーティション/ドライブã¯éƒ¨åˆ†çš„ã«ã‚‚全体的ã«ã‚‚æš—å·åŒ–ã•ã‚Œã¦ã„ãªã„よã†ã§ã™ã€‚</string>
<string lang="ja" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">システムパーティション/デãƒã‚¤ã‚¹ã¯æš—å·åŒ–ã•ã‚Œã¦ã„ã¾ã™ï¼ˆéƒ¨åˆ†çš„ã‚ã‚‹ã„ã¯å…¨ä½“的)。\n\n処ç†ã‚’進ã‚ã‚‹å‰ã«ã‚·ã‚¹ãƒ†ãƒ ãƒ‘ーティション/デãƒã‚¤ã‚¹å…¨ä½“ã®æš—å·åŒ–を解除ã—ã¦ãã ã•ã„。VeraCryptã®ãƒ¡ã‚¤ãƒ³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‹ã‚‰[システム]-[æš—å·åŒ–ã®è§£é™¤]ã‚’é¸æŠžã™ã‚‹ã“ã¨ã§è§£é™¤ã§ãã¾ã™ã€‚</string>
<string lang="ja" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">システムパーティション/ドライブãŒéƒ¨åˆ†çš„ã§ã‚れ全体ã§ã‚れ暗å·åŒ–ã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ã€VeraCryptをダウングレードã§ãã¾ã›ã‚“。ãŸã ã—アップグレードã‚ã‚‹ã„ã¯åŒã˜ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã®å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¯å¯èƒ½ã§ã™ã€‚</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.ka.xml b/Translations/Language.ka.xml
index dd7cc49..b02544c 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="ka" name="ქáƒáƒ áƒ—ული" en-name="Georgian" version="0.1.0" translators="Kakha Lomiashvili" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="ka" key="IDC_PREF_MOUNT_READONLY">ტáƒáƒ›áƒ˜áƒ¡ მიერთებრმხáƒáƒšáƒáƒ“ კითხვისáƒáƒ—ვის</control>
<control lang="ka" key="IDC_PREF_MOUNT_REMOVABLE">მიერთებრგáƒáƒ áƒ” მáƒáƒ¬áƒ§áƒáƒ‘ილáƒáƒ‘ის სáƒáƒ®áƒ˜áƒ—</control>
<control lang="ka" key="IDC_PREF_OPEN_EXPLORER">წáƒáƒ áƒ›áƒáƒ¢áƒ”ბული მიერთების შემთხვევáƒáƒ¨áƒ˜ Explorer-ის გáƒáƒ®áƒ¡áƒœáƒ</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="ka" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">პáƒáƒ áƒáƒšáƒ”ბის ქეშის წáƒáƒ¨áƒšáƒ áƒáƒ•áƒ¢áƒáƒ’áƒáƒ›áƒáƒ”რთებისáƒáƒ¡</control>
<control lang="ka" key="IDC_PREF_WIPE_CACHE_ON_EXIT">პáƒáƒ áƒáƒšáƒ”ბის ქეშის წáƒáƒ¨áƒšáƒ გáƒáƒ¡áƒ•áƒšáƒ˜áƒ¡áƒáƒ¡</control>
@@ -266,7 +266,7 @@
<control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
<control lang="ka" key="IDM_VOLUME_PROPERTIES">ტáƒáƒ›áƒ˜áƒ¡ მáƒáƒ®áƒáƒ¡áƒ˜áƒáƒ—ებლები</control>
<control lang="ka" key="IDM_VOLUME_WIZARD">ტáƒáƒ›áƒ”ბის შექმნის áƒáƒ¡áƒ¢áƒáƒ¢áƒ˜</control>
- <control lang="ka" key="IDM_WEBSITE">veracrypt.codeplex.com</control>
+ <control lang="en" key="IDM_WEBSITE">VeraCrypt Website</control>
<control lang="ka" key="IDM_WIPE_CACHE">პáƒáƒ áƒáƒšáƒ”ბის ქეშის წáƒáƒ¨áƒšáƒ</control>
<control lang="ka" key="IDOK">დიáƒáƒ®</control>
<control lang="en" key="IDT_ACCELERATION_OPTIONS">Hardware Acceleration</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="ka" key="INSTALL_FAILED">ინსტáƒáƒšáƒáƒªáƒ˜áƒ ჩáƒáƒ˜áƒ¨áƒáƒšáƒ.</string>
<string lang="ka" key="UNINSTALL_FAILED">დეინსტáƒáƒšáƒáƒªáƒ˜áƒ ჩáƒáƒ˜áƒ¨áƒáƒšáƒ.</string>
- <string lang="ka" key="DIST_PACKAGE_CORRUPTED">ეს სáƒáƒ˜áƒœáƒ¡áƒ¢áƒáƒšáƒáƒªáƒ˜áƒ პáƒáƒ™áƒ”ტი დáƒáƒ–იáƒáƒœáƒ”ბულიáƒ. გთხáƒáƒ•áƒ—, ხელáƒáƒ®áƒšáƒáƒœ ჩáƒáƒ›áƒáƒ¢áƒ•áƒ˜áƒ áƒ—áƒáƒ— (უმჯáƒáƒ‘ესირáƒáƒ¤áƒ˜áƒªáƒ˜áƒáƒšáƒ£áƒ áƒ˜ სáƒáƒ˜áƒ¢áƒ˜áƒ“áƒáƒœ https://veracrypt.codeplex.com).</string>
+ <string lang="ka" key="DIST_PACKAGE_CORRUPTED">ეს სáƒáƒ˜áƒœáƒ¡áƒ¢áƒáƒšáƒáƒªáƒ˜áƒ პáƒáƒ™áƒ”ტი დáƒáƒ–იáƒáƒœáƒ”ბულიáƒ. გთხáƒáƒ•áƒ—, ხელáƒáƒ®áƒšáƒáƒœ ჩáƒáƒ›áƒáƒ¢áƒ•áƒ˜áƒ áƒ—áƒáƒ— (უმჯáƒáƒ‘ესირáƒáƒ¤áƒ˜áƒªáƒ˜áƒáƒšáƒ£áƒ áƒ˜ სáƒáƒ˜áƒ¢áƒ˜áƒ“áƒáƒœ https://www.veracrypt.fr).</string>
<string lang="ka" key="CANNOT_WRITE_FILE_X">ფáƒáƒ˜áƒšáƒ˜áƒ¡ %s ჩáƒáƒ¬áƒ”რრáƒáƒ  ხერხდებáƒ</string>
<string lang="ka" key="EXTRACTING_VERB">დეáƒáƒ áƒ¥áƒ˜áƒ•áƒáƒªáƒ˜áƒ</string>
<string lang="ka" key="CANNOT_READ_FROM_PACKAGE">პáƒáƒ™áƒ”ტიდáƒáƒœ მáƒáƒœáƒáƒªáƒ”მთრწáƒáƒ™áƒ˜áƒ—ხვრáƒáƒ  ხერხდებáƒ.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="ka" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">გსურთ სისტემის შიფრáƒáƒªáƒ˜áƒ˜áƒ¡áƒ¬áƒ˜áƒœáƒ ტესტირების შეწყვეტáƒ?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="ka" key="SYS_DRIVE_NOT_ENCRYPTED">სისტემური გáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜/დისკი áƒáƒ  áƒáƒ áƒ˜áƒ¡ დáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒ˜ (ნáƒáƒ¬áƒ˜áƒšáƒáƒ‘რივ áƒáƒœ მთლიáƒáƒœáƒáƒ“).</string>
<string lang="ka" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">სისტემური გáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜/დისკი დáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒ˜áƒ (ნáƒáƒ¬áƒ˜áƒšáƒáƒ‘რივ áƒáƒœ მთლიáƒáƒœáƒáƒ“).\n\nგáƒáƒ’რძელებáƒáƒ›áƒ“ე გთხáƒáƒ•áƒ—, დეშიფრáƒáƒªáƒ˜áƒ გáƒáƒ£áƒ™áƒ”თáƒáƒ— მთლიáƒáƒœáƒáƒ“ სისტემურ გáƒáƒœáƒáƒ§áƒáƒ¤áƒ¡/დისკს. áƒáƒ›áƒ˜áƒ¡áƒáƒ—ვის, áƒáƒ˜áƒ áƒ©áƒ˜áƒ”თ პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡ მენიუში "სისტემáƒ" &gt; "სისტემური გáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜áƒ¡/დისკის სáƒáƒ›áƒ£áƒ“áƒáƒ›áƒ დეშიფრáƒáƒªáƒ˜áƒ".</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.ko.xml b/Translations/Language.ko.xml
index 9b246f5..b32ed72 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="ko" name="한국어" en-name="Korean" version="0.1.1" translators="Kim Young, Herbert Shin" />
<!-- Fonts -->
@@ -857,7 +857,7 @@
<string lang="ko" key="TC_INSTALLER_IS_RUNNING">VeraCrypt 설치기가 â‘  현재 시스템ì—ì„œ 실행ë˜ê³  있거나 â‘¡ ì„¤ì¹˜ì˜ ì‹¤í–‰ ë° ì¤€ë¹„ ë˜ëŠ” â‘¢ VeraCrypt를 ì—…ë°ì´íŠ¸í•˜ê³  있습니다. 진행하기 ì „ì—, ê·¸ ìž‘ì—…ì´ ëë‚  때까지 기다리거나 ë‹«ì•„ 주세요. 만약 닫기 ìž‘ì—…ì´ ë˜ì§€ 않는 경우ì—는 진행 ì „ì— ì»´í“¨í„°ë¥¼ 다시 시작해야 합니다.</string>
<string lang="ko" key="INSTALL_FAILED">설치 실패.</string>
<string lang="ko" key="UNINSTALL_FAILED">제거 실패.</string>
- <string lang="ko" key="DIST_PACKAGE_CORRUPTED">ë°°í¬ íŒ¨í‚¤ì§€ê°€ ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤. 다시 다운로드해 보시기 ë°”ëžë‹ˆë‹¤(VeraCrypt ê³µì‹ ì›¹ì‚¬ì´íŠ¸ - https://veracrypt.codeplex.com).</string>
+ <string lang="ko" key="DIST_PACKAGE_CORRUPTED">ë°°í¬ íŒ¨í‚¤ì§€ê°€ ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤. 다시 다운로드해 보시기 ë°”ëžë‹ˆë‹¤(VeraCrypt ê³µì‹ ì›¹ì‚¬ì´íŠ¸ - https://www.veracrypt.fr).</string>
<string lang="ko" key="CANNOT_WRITE_FILE_X">%s 파ì¼ì„ 쓸 수 없습니다.</string>
<string lang="ko" key="EXTRACTING_VERB">추출 중</string>
<string lang="ko" key="CANNOT_READ_FROM_PACKAGE">패키지ì—ì„œ ë°ì´í„°ë¥¼ ì½ì„ 수 없습니다.</string>
@@ -1232,7 +1232,7 @@
<string lang="ko" key="HIDDEN_OS_CREATION_PREINFO_HELP">ë‹¤ìŒ ë‹¨ê³„ì—ì„œ VeraCrypt는 시스템 íŒŒí‹°ì…˜ì˜ ë‚´ìš©ì„ ìˆ¨ê¸´ ë³¼ë¥¨ì— ë³µì‚¬í•˜ëŠ” 방법으로 숨긴 ìš´ì˜ì²´ì œë¥¼ 만듭니다. 복사ë˜ëŠ” ë°ì´í„°ëŠ” 미ë¼ìš© ìš´ì˜ì²´ì œì—ì„œ 사용ë˜ëŠ” 키와 다른 것으로 실시간으로 암호화ë©ë‹ˆë‹¤.\n\n진행 ê³¼ì •ì€ ë¶€íŒ…-ì „ 환경(→ 윈ë„ìš° 시작 ì „)ì—ì„œ 실행ë˜ê³ , ì™„ë£Œí•˜ëŠ”ë° ë§Žì€ ì‹œê°„ì´ ì†Œìš”ë  ìˆ˜ 있습니다(→ 시스템 íŒŒí‹°ì…˜ì˜ í¬ê¸° ë° ì»´í“¨í„°ì˜ ì„±ëŠ¥ì— ë”°ë¼ ëª‡ 시간 ë˜ëŠ” 몇 ì¼ì´ 걸릴 수 있습니다).\n\nì—¬ëŸ¬ë¶„ì€ ì§„í–‰ ê³¼ì •ì— ê°„ì„­í•  수 있으며, 컴퓨터를 종료하고 ìš´ì˜ì²´ì œë¥¼ 시작하며 진행 ê³¼ì •ì„ ë‹¤ì‹œ 시작할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 그러나 진행 ê³¼ì •ì— ê°„ì„­ì„ í•  경우, 시스템 복사 ìž‘ì—…ì€ ì²˜ìŒë¶€í„° 시작하게 ë©ë‹ˆë‹¤. 왜ëƒí•˜ë©´ 시스템 íŒŒí‹°ì…˜ì˜ ë‚´ìš©ì€ ë³µì œí•˜ëŠ” ë™ì•ˆ 변경ë˜ì–´ì„  안ë˜ê¸° 때문입니다.</string>
<string lang="ko" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">숨긴 ìš´ì˜ì²´ì œì˜ ì „ì²´ ìƒì„± ìž‘ì—…ì„ ì·¨ì†Œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?\n\n참고: 지금 취소하게 ë˜ë©´ ì´ ì§„í–‰ ìž‘ì—…ì„ ë‹¤ì‹œ 시작할 수 없게 ë©ë‹ˆë‹¤.</string>
<string lang="ko" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">시스템 암호화 예비테스트를 취소하시겠습니까?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="ko" key="SYS_DRIVE_NOT_ENCRYPTED">시스템 파티션/ë“œë¼ì´ë¸Œê°€ (부분ì ìœ¼ë¡œ ë˜ëŠ” 완전히) 암호화ë˜ì§€ ì•Šì€ ê²ƒìœ¼ë¡œ 보입니다.</string>
<string lang="ko" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">시스템 파티션/ë“œë¼ì´ë¸Œê°€ (완전히 ë˜ëŠ” 부분ì ìœ¼ë¡œ) 암호화ë˜ì—ˆìŠµë‹ˆë‹¤.\n\nìž‘ì—…ì„ ì§„í–‰í•˜ê¸° ì „ì— ì‹œìŠ¤í…œ 파티션/ë“œë¼ì´ë¸Œë¥¼ 완전히 암호해제시켜 주세요. 해제하려면 VeraCrypt ë©”ì¸ ì°½ì˜ ë©”ë‰´í‘œì‹œì¤„ì—ì„œ “시스템†▶ “시스템 파티션/ë“œë¼ì´ë¸Œ ì˜êµ¬ì  암호해제â€ë¥¼ ì„ íƒí•˜ì„¸ìš”.</string>
<string lang="ko" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">시스템 파티션/ë“œë¼ì´ë¸Œê°€ (완전히 ë˜ëŠ” 부분ì ìœ¼ë¡œ) ì•”í˜¸í™”ëœ ê²½ìš°, VeraCrypt를 다운그레ì´ë“œí•  수 없습니다(* 업그레ì´ë“œí•˜ê±°ë‚˜ ë™ì¼ ë²„ì „ì„ ìž¬ì„¤ì¹˜í•  수는 있습니다).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.lv.xml b/Translations/Language.lv.xml
index 0580042..87e50fb 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="lv" name="Latviešu" en-name="Latvian" version="0.1.0" translators="Edmunds Melkers" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="lv" key="IDC_PREF_MOUNT_READONLY">UzstÄdÄ«t apgabalus tikai lasÄ«Å¡anai</control>
<control lang="lv" key="IDC_PREF_MOUNT_REMOVABLE">UzstÄdÄ«t apgabalus kÄ removable media</control>
<control lang="lv" key="IDC_PREF_OPEN_EXPLORER">AtvÄ“rt sekmÄ«gi uzstÄdÄ«tu apgabalu Explorer logÄ</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="lv" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Auto-demontÄ“jot, iznÄ«cinÄt keÅ¡atmiÅ†Ä ierakstÄ«tÄs paroles</control>
<control lang="lv" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Aizverot, iznÄ«cinÄt keÅ¡atmiÅ†Ä ier. paroles</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.my.xml b/Translations/Language.my.xml
index 6d31e00..c926cc7 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="my" name="မြန်မာ" en-name="Burmese" version="1.0.0" translators="Zaw Myo Htet" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="my" key="IDC_PREF_MOUNT_READONLY">Volumes များကို ဖá€á€ºá€›á€¾á€¯á€›á€”် အá€á€½á€€á€ºá€žá€¬ အစပျိုးရန်</control>
<control lang="my" key="IDC_PREF_MOUNT_REMOVABLE">Volumes များကို ဖြုá€á€ºá€á€•á€ºá€”ိုင်သော ကြားá€á€¶á€¡á€–ြစ်သာ အစပျိုးရန်</control>
<control lang="my" key="IDC_PREF_OPEN_EXPLORER">အောင်မြင်စွာ အစပျိုးလိုက်သော volume အá€á€½á€€á€º Explorer á€á€„်းဒိုးကို ဖွင့်ရန်</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="my" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">အစပျိုးထားသော volumes များ ရှိပါက á€á€¼á€¬á€¸á€”ားသော taskbar ပုံများကို သုံးစွဲရန်</control>
<control lang="my" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">အလိုအလျောက် အဆုံးသá€á€ºá€žá€Šá€ºá€·á€¡á€á€« á€á€±á€á€¹á€ မှá€á€ºá€‘ားသော စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ရှင်းလင်းရန်</control>
<control lang="my" key="IDC_PREF_WIPE_CACHE_ON_EXIT">ထွက်သည့်အá€á€« á€á€±á€á€¹á€ မှá€á€ºá€‘ားသော စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ရှင်းလင်းရန်</control>
@@ -859,7 +859,7 @@
<string lang="my" key="TC_INSTALLER_IS_RUNNING">VeraCrypt ဆော့ဗ်á€á€² ထည့်သွင်းစနစ်သည် လောလောဆယ် ဤစက်ပေါ်ጠအလုပ်လုပ်နေပြီး စက်ထဲ ထည့်သွင်းရန် ပြင်ဆင်နေသည် (သို့) VeraCrypt မွမ်းမံá€á€»á€€á€ºá€€á€­á€¯ လုပ်ဆောင်နေသည်ዠရှေ့ဆက် မသွားမီአá„င်းပြီးဆုံးသည့်အထိ စောင့်ဆိုင်းပါ (သို့) ပိá€á€ºá€œá€­á€¯á€€á€ºá€•á€«á‹ အကယ်á ပိá€á€º မရပါက ကွန်ပြူá€á€¬á€€á€­á€¯ ပြန်ဖွင့်ပါá‹</string>
<string lang="my" key="INSTALL_FAILED">စက်ထဲ ထည့်သွင်းမှု မအောင်မြင်ပါá‹</string>
<string lang="my" key="UNINSTALL_FAILED">ဖယ်ထုá€á€ºá€™á€¾á€¯ မအောင်မြင်ပါá‹</string>
- <string lang="my" key="DIST_PACKAGE_CORRUPTED">ဖြန့်á€á€»á€®á€žá€±á€¬ ဖိုင်ထုá€á€º ပျက်စီးနေသည်ዠထပ်မံá ဒေါင်းလုဒ် ဆွဲယူပါ (á€á€›á€¬á€¸á€á€„် VeraCrypt ကွန်ရက် စာမျက်နှာ www.teuecrypt.org ጠရယူရန် ပိုသင့်လျှော်သည်)á‹ </string>
+ <string lang="my" key="DIST_PACKAGE_CORRUPTED">ဖြန့်á€á€»á€®á€žá€±á€¬ ဖိုင်ထုá€á€º ပျက်စီးနေသည်ዠထပ်မံá ဒေါင်းလုဒ် ဆွဲယူပါ (á€á€›á€¬á€¸á€á€„် VeraCrypt ကွန်ရက် စာမျက်နှာ https://www.veracrypt.fr ጠရယူရန် ပိုသင့်လျှော်သည်)á‹ </string>
<string lang="my" key="CANNOT_WRITE_FILE_X">%s ဖိုင်ကို ရေးá မရပါ</string>
<string lang="my" key="EXTRACTING_VERB">ဖြည်á€á€»á€”ေသည်</string>
<string lang="my" key="CANNOT_READ_FROM_PACKAGE">ဒေá€á€¬á€™á€»á€¬á€¸á€€á€­á€¯ ဖိုင်ထုá€á€ºá€‘ဲမှ ဖá€á€ºá မရပါá‹</string>
@@ -1234,7 +1234,7 @@
<string lang="my" key="HIDDEN_OS_CREATION_PREINFO_HELP">နောက်အဆင့်များá€á€½á€„်አVeraCrypt သည် ကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်ထဲရှိ အကြောင်းအရာများကို လျှို့á€á€¾á€€á€º volume ထဲ ကော်ပီကူးá€á€¼á€„်းဖြင့် လျှို့á€á€¾á€€á€º OS စနစ်ကို ဖန်á€á€®á€¸á€žá€½á€¬á€¸á€™á€Šá€º ဖြစ်သည် (ကော်ပီးကူးနေသည့် ဒေá€á€¬á€™á€»á€¬á€¸á€€á€­á€¯ မျက်လှည့် OS စနစ်အá€á€½á€€á€º အသုံးပြုမည့် ကီးနှင့် မá€á€°á€žá€±á€¬ စာá€á€¾á€€á€ºá€…နစ် ကီးá€á€…်á€á€¯á€–ြင့် á€á€»á€€á€ºá€á€¼á€„်း စာá€á€¾á€€á€ºá€•á€±á€¸á€™á€Šá€º ဖြစ်သည်)á‹\n\nစက်မá€á€€á€ºá€™á€® အá€á€¼á€±á€¡á€”ေ (Windows မဖွင့်မီ) á€á€½á€„် လုပ်ငန်းစဉ်ကို လုပ်ဆောင်သွားမည် ဖြစ်ပြီး ပြီးစီးရန် (ကွန်ပျူá€á€¬ အá€á€”်းကန့် အရွယ်အစားနှင့် စွမ်းဆောင်ရည်á€á€­á€¯á€·á€¡á€•á€±á€«á€º မူá€á€Šá€ºá€•á€¼á€®á€¸) အ​á€á€»á€­á€”်အá€á€±á€¬á€ºá€€á€¼á€¬ ယူမည် ဖြစ်သည် - နာရီ အá€á€±á€¬á€ºá€€á€¼á€¬ (သို့) ရက်အá€á€”်ကြာ ဖြစ်နိုင်သည်á‹\n\nဤလုပ်ငန်းစဉ်ကို သင် ရပ်ဆိုင်းနိုင်သည်ዠကွန်ပျူá€á€¬á€€á€­á€¯ စက်ပိá€á€ºá€‘ားနိုင်သည်ዠOS စနစ်ကို စဖွင့်ပြီး လုပ်ငန်းစဉ်ကို ပြန်စနိုင်သည်ዠသို့သော်አá„င်းကို ရပ်ဆိုင်းလိုက်ပါကአကွန်ပျူá€á€¬á€…နစ် ကော်ပီ လုပ်á€á€¼á€„်း လုပ်ငန်းစဉ် á€á€…်á€á€¯á€œá€¯á€¶á€¸á€€á€­á€¯ အစမှ ပြန်လည် စá€á€„်ရမည် ဖြစ်သည် (အဘယ်ကြောင့် ဆိုသော် ကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်ရှိ အကြောင်းအရာသည် ကိုယ်ပွား ပြုလုပ်နေစဉ် ပြောင်းလဲမည် မဟုá€á€ºá€žá€±á€¬á€€á€¼á€±á€¬á€„့် ဖြစ်သည်)</string>
<string lang="my" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">လျှို့á€á€¾á€€á€º OS စနစ် ဖန်á€á€®á€¸á€™á€¾á€¯ လုပ်ငန်းစဉ် á€á€…်á€á€¯á€œá€¯á€¶á€¸á€€á€­á€¯ ဖျက်သိမ်းရန် အလိုရှိသလား?\n\nမှá€á€ºá€á€»á€€á€º - အကယ်á á„င်းကို ယá€á€¯ ဖျက်သိမ်းပါက လုပ်ငန်းစဉ်ကို ပြန်စနိုင်မည် မဟုá€á€ºá€•á€«á‹</string>
<string lang="my" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">ကွန်ပျူá€á€¬á€…နစ် စာá€á€¾á€€á€ºá€á€¼á€„်း အကြို စမ်းသပ်á€á€»á€€á€ºá€€á€­á€¯ ဖျက်သိမ်းလိုသလား?</string>
- <string lang="my" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt စနစ် စာá€á€¾á€€á€ºá€á€¼á€„်း အကြို စမ်းသပ်á€á€»á€€á€º မအောင်မြင်ပါዠသင် ထပ်မံ ကြိုးစားလိုသလား?\n\nအကယ်á 'မဟုá€á€ºá€•á€«' ကို ရွေးá€á€»á€šá€ºá€•á€«á€€áŠ စက်မá€á€„်မီ စစ်ဆေးအá€á€Šá€ºá€•á€¼á€¯á€á€»á€€á€º အစိá€á€ºá€¡á€•á€­á€¯á€„်းကို ဖယ်ထုá€á€ºá€žá€½á€¬á€¸á€™á€Šá€º ဖြစ်သည်á‹\n\nမှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ - \n\n- အကယ်á Windows မá€á€€á€ºá€™á€® VeraCrypt Boot Loader က စကားá€á€¾á€€á€º ရေးထည့်ရန် မá€á€±á€¬á€„်းပါကአသင့် OS စနစ်သည် á„င်းကို ထည့်သွင်းထားသော drive မှ boot မá€á€€á€ºá ဖြစ်မည်ዠဤအá€á€»á€€á€ºá€¡á€á€½á€€á€º ပံ့ပိုးမထားပါá‹\n\n- အကယ်á သင်သည် AES ကို မသုံးပဲ စာá€á€¾á€€á€ºá€…နစ် အယ်လဂိုရီသမ် á€á€…်á€á€¯á€€á€­á€¯ အသုံးပြုပြီး အကြို စမ်းသပ်á€á€»á€€á€º မအောင်မြင်ပါက (စကားá€á€¾á€€á€º ရေးထည့်သော်လည်း)አစနစ်á€á€€á€» စီမံရေးသားá€á€¼á€„်း မပြုသော ဒရိုင်ဘာ á€á€…်á€á€¯á€€á€¼á€±á€¬á€„့် ဖြစ်နိုင်သည်ዠ'မဟုá€á€ºá€•á€«' ကို ရွေးပြီးአကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်/drive ကို ထပ်မံ စာá€á€¾á€€á€ºá€€á€¼á€Šá€ºá€·á€•á€«áŠ သို့သော် AES စာá€á€¾á€€á€ºá€…နစ် အယ်လဂိုရီသမ်ကို အသုံးပြုပါ (á„င်းጠမှá€á€ºá€‰á€¬á€á€º လုပ်အပ်á€á€»á€€á€º အနိမ့်ဆုံး ရှိသည်)á‹\n\nဖြစ်နိုင်á€á€»á€± အကြောင်းရင်းများနှင့် ဖြေရှင်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€¡á€á€½á€€á€ºáŠ https://veracrypt.codeplex.com/wikipage?title=Troubleshooting ကို လေ့လာပါá‹</string>
+ <string lang="my" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt စနစ် စာá€á€¾á€€á€ºá€á€¼á€„်း အကြို စမ်းသပ်á€á€»á€€á€º မအောင်မြင်ပါዠသင် ထပ်မံ ကြိုးစားလိုသလား?\n\nအကယ်á 'မဟုá€á€ºá€•á€«' ကို ရွေးá€á€»á€šá€ºá€•á€«á€€áŠ စက်မá€á€„်မီ စစ်ဆေးအá€á€Šá€ºá€•á€¼á€¯á€á€»á€€á€º အစိá€á€ºá€¡á€•á€­á€¯á€„်းကို ဖယ်ထုá€á€ºá€žá€½á€¬á€¸á€™á€Šá€º ဖြစ်သည်á‹\n\nမှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ - \n\n- အကယ်á Windows မá€á€€á€ºá€™á€® VeraCrypt Boot Loader က စကားá€á€¾á€€á€º ရေးထည့်ရန် မá€á€±á€¬á€„်းပါကአသင့် OS စနစ်သည် á„င်းကို ထည့်သွင်းထားသော drive မှ boot မá€á€€á€ºá ဖြစ်မည်ዠဤအá€á€»á€€á€ºá€¡á€á€½á€€á€º ပံ့ပိုးမထားပါá‹\n\n- အကယ်á သင်သည် AES ကို မသုံးပဲ စာá€á€¾á€€á€ºá€…နစ် အယ်လဂိုရီသမ် á€á€…်á€á€¯á€€á€­á€¯ အသုံးပြုပြီး အကြို စမ်းသပ်á€á€»á€€á€º မအောင်မြင်ပါက (စကားá€á€¾á€€á€º ရေးထည့်သော်လည်း)አစနစ်á€á€€á€» စီမံရေးသားá€á€¼á€„်း မပြုသော ဒရိုင်ဘာ á€á€…်á€á€¯á€€á€¼á€±á€¬á€„့် ဖြစ်နိုင်သည်ዠ'မဟုá€á€ºá€•á€«' ကို ရွေးပြီးአကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်/drive ကို ထပ်မံ စာá€á€¾á€€á€ºá€€á€¼á€Šá€ºá€·á€•á€«áŠ သို့သော် AES စာá€á€¾á€€á€ºá€…နစ် အယ်လဂိုရီသမ်ကို အသုံးပြုပါ (á„င်းጠမှá€á€ºá€‰á€¬á€á€º လုပ်အပ်á€á€»á€€á€º အနိမ့်ဆုံး ရှိသည်)á‹\n\nဖြစ်နိုင်á€á€»á€± အကြောင်းရင်းများနှင့် ဖြေရှင်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€¡á€á€½á€€á€ºáŠ https://www.veracrypt.fr/en/Troubleshooting.html ကို လေ့လာပါá‹</string>
<string lang="my" key="SYS_DRIVE_NOT_ENCRYPTED">ကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်/drive သည် (á€á€…်á€á€€á€ºá€á€…်ပိုင်း ဖြစ်စေአအပြည့်အဠဖြစ်စေ) စာá€á€¾á€€á€ºá€‘ားပုံ မပေါ်ပါá‹</string>
<string lang="my" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">ကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်/drive ကို (á€á€…်á€á€€á€ºá€á€…်ပိုင်း ဖြစ်စေአအပြည့်အဠဖြစ်စေ) စာá€á€¾á€€á€ºá€‘ားသည်á‹\n\nဆက်လက် မလုပ်ဆောင်မီ ကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်/drive ကို စာá€á€¾á€€á€ºá€–ြည်ပါዠထိုသို့ ပြုလုပ်ရန်አပင်မ VeraCrypt á€á€„်းဒိုးရှိ မီနူးဘားမှ 'System' &gt; 'Permanently Decrypt System Partition/Drive' ကို ရွေးပါá‹</string>
<string lang="my" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">ကွန်ပျူá€á€¬á€…နစ် အá€á€”်းကန့်/drive ကို (á€á€…်á€á€€á€ºá€á€…်ပိုင်း ဖြစ်စေአအပြည့်အဠဖြစ်စေ) စာá€á€¾á€€á€ºá€•á€¼á€®á€¸á€žá€Šá€ºá€·á€¡á€á€«áŠ VeraCrypt (သို့ရာá€á€½á€„် á„င်းကို အဆင့်မြှင့်နိုင်ပြီး အလားá€á€° ဗားရှင်းကို ပြန်လည် ထည့်သွင်းနိုင်သည်) ကို အဆင့်လျှော့á မရပါá‹</string>
@@ -1415,6 +1415,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.nl.xml b/Translations/Language.nl.xml
index 4ae5232..7bfab21 100644
--- a/Translations/Language.nl.xml
+++ b/Translations/Language.nl.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version="1.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="nl" name="Nederlands" en-name="Dutch" version="0.2.3" translators="Jan van der Wal, Peter Tak" />
+
<!-- Fonts -->
<font lang="nl" class="normal" size="11" face="default" />
<font lang="nl" class="bold" size="13" face="Arial" />
@@ -26,11 +27,11 @@
<control lang="nl" key="IDHELP">&amp;Help</control>
<control lang="nl" key="IDT_EXTRACT_DESTINATION">Selecteer of type de locatie waar u de uitgepakte bestanden naartoe wilt kopiëren:</control>
<control lang="nl" key="IDT_INSTALL_DESTINATION">Selecteer of type de locatie waar u de VeraCrypt programma bestanden naartoe wilt kopiëren. Als de gespecificeerde map niet bestaat, wordt deze automatisch aangemaakt.</control>
- <control lang="nl" key="IDT_UNINSTALL_DIR">Klik op Deinstalleer om VeraCrypt te verwijderen van dit systeem.</control>
+ <control lang="nl" key="IDT_UNINSTALL_DIR">Klik op De-installeer om VeraCrypt van dit systeem te verwijderen.</control>
<control lang="nl" key="IDC_ABORT_BUTTON">Afbreken</control>
<control lang="nl" key="IDC_BENCHMARK">&amp;Benchmark</control>
<control lang="nl" key="IDC_CIPHER_TEST">&amp;Test</control>
- <control lang="nl" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Aanmaken en formateren gecodeerd volume</control>
+ <control lang="nl" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Aanmaken en formatteren gecodeerd volume</control>
<control lang="nl" key="IDC_DEVICE_TRANSFORM_MODE_INPLACE">Op-De-Plaats codering van de partitie (Windows Vista)</control>
<control lang="nl" key="IDC_DISPLAY_KEYS">Toon gegenereerde sleutels (hun gedeelten)</control>
<control lang="nl" key="IDC_DISPLAY_POOL_CONTENTS">Toon inhoud</control>
@@ -56,22 +57,22 @@
<control lang="nl" key="IDC_MORE_INFO_ON_SYS_ENCRYPTION">Meer informatie over systeemcodering</control>
<control lang="nl" key="IDC_MORE_INFO_SYS_ENCRYPTION">Meer informatie</control>
<control lang="nl" key="IDC_MULTI_BOOT">Multi-boot</control>
- <control lang="nl" key="IDC_NONSYS_DEVICE">Codeer een niet-systeem partitie/station</control>
+ <control lang="nl" key="IDC_NONSYS_DEVICE">Codeer een niet-systeempartitie/station</control>
<control lang="nl" key="IDC_NO_HISTORY">&amp;Nooit geschiedenis opslaan</control>
<control lang="nl" key="IDC_OPEN_OUTER_VOLUME">Buiten-volume</control>
<control lang="nl" key="IDC_PAUSE">&amp;Pauze</control>
<control lang="nl" key="IDC_PIM_ENABLE">Gebruik P&amp;IM</control>
<control lang="nl" key="IDC_NEW_PIM_ENABLE">Gebruik PIM</control>
<control lang="nl" key="IDC_QUICKFORMAT">Snel Formatteren</control>
- <control lang="nl" key="IDC_SHOW_PASSWORD">&amp;Laat wachtwoord zien</control>
+ <control lang="nl" key="IDC_SHOW_PASSWORD">&amp;Wachtwoord tonen</control>
<control lang="nl" key="IDC_SHOW_PASSWORD_SINGLE">&amp;Toon wachtwoord</control>
<control lang="nl" key="IDC_SHOW_PIM">&amp;Toon PIM</control>
<control lang="nl" key="IDC_SINGLE_BOOT">Single-boot</control>
<control lang="nl" key="IDC_STD_VOL">Standaard VeraCrypt volume</control>
<control lang="nl" key="IDC_SYSENC_HIDDEN">Ver&amp;borgen</control>
<control lang="nl" key="IDC_SYSENC_NORMAL">Normaal</control>
- <control lang="nl" key="IDC_SYS_DEVICE">Codeer de systeem partitie of gehele systeem schijf</control>
- <control lang="nl" key="IDC_SYS_PARTITION">Codeer de Windows systeem partitie</control>
+ <control lang="nl" key="IDC_SYS_DEVICE">Codeer de systeempartitie of gehele systeemschijf</control>
+ <control lang="nl" key="IDC_SYS_PARTITION">Codeer de Windows systeempartitie</control>
<control lang="nl" key="IDC_WHOLE_SYS_DRIVE">Codeer de gehele schijf</control>
<control lang="nl" key="IDD_VOL_CREATION_WIZARD_DLG">VeraCrypt volume aanmaak wizard</control>
<control lang="nl" key="IDT_CLUSTER">Cluster </control>
@@ -86,9 +87,9 @@
<control lang="nl" key="IDT_HASH_ALGO">Hash algoritme</control>
<control lang="nl" key="IDT_HEADER_KEY">Header key: </control>
<control lang="nl" key="IDT_LEFT">Nog</control>
- <control lang="nl" key="IDT_MASTER_KEY">Master key: </control>
+ <control lang="nl" key="IDT_MASTER_KEY">Hoofdsleutel: </control>
<control lang="nl" key="IDT_MULTI_BOOT">Selecteer deze optie als er twee of meer besturingssystemen geïnstalleerd zijn op deze computer.\n\nBijvoorbeeld:\n- Windows XP en Windows XP\n- Windows XP en Windows Vista\n- Windows en Mac OS X\n- Windows en Linux\n- Windows, Linux en Mac OS X</control>
- <control lang="nl" key="IDT_NON_SYS_DEVICE">Codeert een niet-systeem partitie op iedere in/externe schijf (bijv. USB Stick). Kan ook een verborgen volume aanmaken.</control>
+ <control lang="nl" key="IDT_NON_SYS_DEVICE">Codeert een niet-systeempartitie op iedere in/externe schijf (bijv. USB Stick). Kan ook een verborgen volume aanmaken.</control>
<control lang="nl" key="IDT_PARTIAL_POOL_CONTENTS">Huidige pool inhoud (gedeelte)</control>
<control lang="nl" key="IDT_PASS">OK</control>
<control lang="nl" key="IDT_PASSWORD">Wachtwoord:</control>
@@ -118,7 +119,7 @@
<control lang="nl" key="IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT">&amp;Sluit token sessie (log uit) nadat een volume succesvol is gekoppeld</control>
<control lang="nl" key="IDC_COPY_EXPANDER">Inclusief VeraCrypt volume expander</control>
<control lang="nl" key="IDC_COPY_WIZARD">Inclusief VeraCrypt volume aanmaak wizard</control>
- <control lang="nl" key="IDC_CREATE">Maak aan</control>
+ <control lang="nl" key="IDC_CREATE">Aanmaken</control>
<control lang="nl" key="IDC_CREATE_VOLUME">&amp;Maak volume</control>
<control lang="nl" key="IDC_DISABLE_BOOT_LOADER_OUTPUT">Laat geen &amp;tekst zien in het pre-boot authenticatie scherm (behalve de onderstaande aangepaste boodschap)</control>
<control lang="nl" key="IDC_DISABLE_EVIL_MAID_ATTACK_DETECTION">"Evil Maid" aanval detectie uitschakelen</control>
@@ -159,17 +160,17 @@
<control lang="nl" key="IDC_PIM_HELP">(Leeg of 0 voor standaard iteraties)</control>
<control lang="nl" key="IDC_PREF_BKG_TASK_ENABLE">Geactiveerd</control>
<control lang="nl" key="IDC_PREF_CACHE_PASSWORDS">Cache wachtwoorden in geheugen</control>
- <control lang="nl" key="IDC_PREF_DISMOUNT_INACTIVE">Auto-ontkoppeling volume als geen data gelezen/geschreven gedurende</control>
+ <control lang="nl" key="IDC_PREF_DISMOUNT_INACTIVE">Auto-ontkoppel het volume bij inactiviteit gedurende</control>
<control lang="nl" key="IDC_PREF_DISMOUNT_LOGOFF">als de gebruiker uitlogt</control>
<control lang="nl" key="IDC_PREF_DISMOUNT_SESSION_LOCKED">bij blokkeren van de gebruikerssessie</control>
<control lang="nl" key="IDC_PREF_DISMOUNT_POWERSAVING">bij starten stroombesparing modus</control>
<control lang="nl" key="IDC_PREF_DISMOUNT_SCREENSAVER">als de screensaver start</control>
- <control lang="nl" key="IDC_PREF_FORCE_AUTO_DISMOUNT">Forceer auto-ontkoppeling, zelfs als volume open bestanden of directories bevat</control>
+ <control lang="nl" key="IDC_PREF_FORCE_AUTO_DISMOUNT">Forceer auto-ontkoppeling, zelfs als het volume open bestanden of mappen bevat</control>
<control lang="nl" key="IDC_PREF_LOGON_MOUNT_DEVICES">Alle opgeslagen VeraCrypt volumes koppelen</control>
<control lang="nl" key="IDC_PREF_LOGON_START">Start VeraCrypt achtergrondtaak</control>
<control lang="nl" key="IDC_PREF_MOUNT_READONLY">Koppel volumes als alleen-lezen</control>
<control lang="nl" key="IDC_PREF_MOUNT_REMOVABLE">Koppel volumes als verwijderbare media</control>
- <control lang="nl" key="IDC_PREF_OPEN_EXPLORER">Open verkenner venster voor succesvol gekoppeld volume</control>
+ <control lang="nl" key="IDC_PREF_OPEN_EXPLORER">Verkennervenster voor succesvol gekoppelde volume openen</control>
<control lang="nl" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Wachtwoord tijdelijk in cache plaatsen bij "Koppel favoriete volumes"</control>
<control lang="nl" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Gebruik een ander taalkbalkicon bij gekoppelde volumes</control>
<control lang="nl" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Wis wachtwoorden in de cache bij auto-ontkoppeling</control>
@@ -215,11 +216,11 @@
<control lang="nl" key="IDM_CLOSE_ALL_TOKEN_SESSIONS">Sluit alle Security Token sessies</control>
<control lang="nl" key="IDM_CONTACT">Contact</control>
<control lang="nl" key="IDM_CREATE_HIDDEN_OS">Aanmaak verborgen besturingssysteem</control>
- <control lang="nl" key="IDM_CREATE_RESCUE_DISK">Maak reddingsschijf aan</control>
+ <control lang="nl" key="IDM_CREATE_RESCUE_DISK">Een herstelschijf aanmaken</control>
<control lang="nl" key="IDM_CREATE_VOLUME">Volume aanmaak wizard</control>
<control lang="nl" key="IDM_DECRYPT_NONSYS_VOL">Permanent decoderen...</control>
<control lang="nl" key="IDM_DEFAULT_KEYFILES">Creëer standaard sleutelbestanden</control>
- <control lang="nl" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default koppelingparameters...</control>
+ <control lang="nl" key="IDM_DEFAULT_MOUNT_PARAMETERS">Standaard koppelingparameters...</control>
<control lang="nl" key="IDM_DONATE">Doneer nu...</control>
<control lang="nl" key="IDM_ENCRYPT_SYSTEM_DEVICE">Codeer systeempartitie/-schijf</control>
<control lang="nl" key="IDM_FAQ">Veel gestelde vragen</control>
@@ -230,7 +231,7 @@
<control lang="nl" key="IDM_LANGUAGE">Taal</control>
<control lang="nl" key="IDM_LICENSE">Algemene voorwaarden</control>
<control lang="nl" key="IDM_MANAGE_TOKEN_KEYFILES">Beheer Security Token sleutelbestanden</control>
- <control lang="nl" key="IDM_MOUNTALL">Automatisch koppelen alle in stations gehuisveste volumes</control>
+ <control lang="nl" key="IDM_MOUNTALL">Automatisch koppelen alle in het station gehuisveste volumes</control>
<control lang="nl" key="IDM_MOUNT_FAVORITE_VOLUMES">Koppel favoriete volumes</control>
<control lang="nl" key="IDM_MOUNT_SYSENC_PART_WITHOUT_PBA">Koppel zonder pre-boot &amp;authenticatie</control>
<control lang="nl" key="IDM_MOUNT_VOLUME">Koppel volume</control>
@@ -260,8 +261,8 @@
<control lang="nl" key="IDM_TRAVELER">Traveler disk aanmaken...</control>
<control lang="nl" key="IDM_UNMOUNTALL">Ontkoppel alle gekoppelde volumes</control>
<control lang="nl" key="IDM_UNMOUNT_VOLUME">Ontkoppel volume</control>
- <control lang="nl" key="IDM_VERIFY_RESCUE_DISK">Controleer reddingsschijf</control>
- <control lang="nl" key="IDM_VERIFY_RESCUE_DISK_ISO">Controleer reddingsschijf bestand</control>
+ <control lang="nl" key="IDM_VERIFY_RESCUE_DISK">Controleer de herstelschijf</control>
+ <control lang="nl" key="IDM_VERIFY_RESCUE_DISK_ISO">Controleer de herstelschijf bestand</control>
<control lang="nl" key="IDM_VERSION_HISTORY">Versiegeschiedenis</control>
<control lang="en" key="IDM_VOLUME_EXPANDER">Volume expander</control>
<control lang="nl" key="IDM_VOLUME_PROPERTIES">Volume eigenschappen</control>
@@ -274,7 +275,7 @@
<control lang="nl" key="IDT_AUTORUN">AutoRun configuratie (autorun.inf)</control>
<control lang="nl" key="IDT_AUTO_DISMOUNT">Auto-ontkoppeling</control>
<control lang="nl" key="IDT_AUTO_DISMOUNT_ON">Auto-ontkoppelen:</control>
- <control lang="nl" key="IDT_BOOT_LOADER_SCREEN_OPTIONS">Boot lader schermopties</control>
+ <control lang="nl" key="IDT_BOOT_LOADER_SCREEN_OPTIONS">Bootloader schermopties</control>
<control lang="nl" key="IDT_CONFIRM_PASSWORD">Bevestig Wachtwoord:</control>
<control lang="nl" key="IDT_CURRENT">Huidig</control>
<control lang="nl" key="IDT_CUSTOM_BOOT_LOADER_MESSAGE">Laat deze aangepaste boodschap zien in het pre-boot authenticatie scherm (24 karakters maximaal):</control>
@@ -283,13 +284,13 @@
<control lang="nl" key="IDT_DRIVER_OPTIONS">Stuurprogrammaconfiguratie</control>
<control lang="nl" key="IDC_ENABLE_EXTENDED_IOCTL_SUPPORT">Activeer ondersteuning voor uitgebreide schijf controleopties</control>
<control lang="nl" key="IDT_FAVORITE_LABEL">Label van gekozen favoriete volume:</control>
- <control lang="nl" key="IDT_FILE_SETTINGS">Bestand Instellingen</control>
+ <control lang="nl" key="IDT_FILE_SETTINGS">Bestandsinstellingen</control>
<control lang="nl" key="IDT_HOTKEY_KEY">Toe te wijzen toetsen:</control>
<control lang="nl" key="IDT_HW_AES_SUPPORTED_BY_CPU">De processor (CPU) in deze computer ondersteunt hardwareversnelling voor AES:</control>
<control lang="nl" key="IDT_LOGON">Acties bij opstarten van Windows</control>
<control lang="nl" key="IDT_MINUTES">minuten</control>
<control lang="nl" key="IDT_MOUNT_LETTER">Koppel volume aan station:</control>
- <control lang="nl" key="IDT_MOUNT_SETTINGS">Koppel Instellingen</control>
+ <control lang="nl" key="IDT_MOUNT_SETTINGS">Koppel-instellingen</control>
<control lang="nl" key="IDT_NEW">Nieuw</control>
<control lang="nl" key="IDT_NEW_PASSWORD">Wachtwoord:</control>
<control lang="nl" key="IDT_PARALLELIZATION_OPTIONS">Threadgebaseerde paralellisatie</control>
@@ -299,9 +300,9 @@
<control lang="nl" key="IDT_PW_CACHE_OPTIONS">Wachtwoordcache</control>
<control lang="nl" key="IDT_SECURITY_OPTIONS">Beveiliging opties</control>
<control lang="nl" key="IDT_TASKBAR_ICON">VeraCrypt achtergrondtaak</control>
- <control lang="nl" key="IDT_TRAVELER_MOUNT">VeraCrypt volume te koppelen (t.o.v. Traveler schijf basis directory):</control>
- <control lang="nl" key="IDT_TRAVEL_INSERTION">Na aanbrengen Traveler schijf: </control>
- <control lang="nl" key="IDT_TRAVEL_ROOT">Maak Traveler schijfbestanden in (Traveler schijf basis directory):</control>
+ <control lang="nl" key="IDT_TRAVELER_MOUNT">VeraCrypt volume koppelen (t.o.v. Traveler schijf basismap):</control>
+ <control lang="nl" key="IDT_TRAVEL_INSERTION">Na plaatsen Traveler schijf: </control>
+ <control lang="nl" key="IDT_TRAVEL_ROOT">Maak Traveler schijfbestanden in (Traveler schijf basismap):</control>
<control lang="nl" key="IDT_VOLUME">Volume</control>
<control lang="nl" key="IDT_WINDOWS_RELATED_SETTING">Windows</control>
<control lang="nl" key="IDC_ADD_KEYFILE_PATH">Voeg &amp;pad toe</control>
@@ -366,12 +367,12 @@
<control lang="nl" key="IDT_PLAINTEXT_SIZE_UNIT">bits</control>
<control lang="nl" key="IDT_POOL_CONTENTS">Huidige Inhoud</control>
<control lang="nl" key="IDT_PRF">Mixing PRF:</control>
- <control lang="nl" key="IDT_RANDOM_POOL_ENRICHMENT_NOTE">BELANGRIJK: Beweeg uw muis zo willekeurig als mogelijk binnen dit scherm. Hoe langer, hoe beter. Dit verbetert significant de veiligheid. Indien gereed klikt u op ‘Doorgaan’.</control>
+ <control lang="nl" key="IDT_RANDOM_POOL_ENRICHMENT_NOTE">BELANGRIJK: Beweeg uw muis zo willekeurig als mogelijk binnen dit scherm. Hoe langer, hoe beter. Dit verbetert significant de veiligheid. Indien gereed klikt u op 'Doorgaan'.</control>
<control lang="nl" key="IDT_SECONDARY_KEY">Secundaire sleutel (hexadecimaal)</control>
<control lang="nl" key="IDT_SECURITY_TOKEN">Security token:</control>
<control lang="nl" key="IDT_SORT_METHOD">Weergave:</control>
<control lang="nl" key="IDT_STATIC_MODELESS_WAIT_DLG_INFO">Een moment geduld. Deze acties hebben even tijd nodig...</control>
- <control lang="nl" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Een moment geduld...\nDeze acties hebben even tijd nodig en VeraCrypt wordt even geblokkeerd.</control>
+ <control lang="nl" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Een moment geduld alstublieft...\nDeze acties hebben even tijd nodig en VeraCrypt is zolang geblokkeerd.</control>
<control lang="nl" key="IDT_TEST_BLOCK_NUMBER">Blok nummer:</control>
<control lang="nl" key="IDT_TEST_CIPHERTEXT">Codetekst (hexadecimaal)</control>
<control lang="nl" key="IDT_TEST_DATA_UNIT_NUMBER">Data eenheidnummer (64-bit hexadecimaal, dataeenheid grootte is 512 bytes)</control>
@@ -391,17 +392,17 @@
<string lang="nl" key="ACCESSMODEFAIL">Het alleen-lezen attribuut op uw oude volume kon niet worden aangepast. Controleer de permissies van het bestand.</string>
<string lang="nl" key="ACCESS_DENIED">Fout: Toegang geweigerd.\n\nDe partitie die u probeert te bereiken is of 0 sectoren groot, of is uw opstart partitie.</string>
<string lang="nl" key="ADMINISTRATOR">Administrator</string>
- <string lang="nl" key="ADMIN_PRIVILEGES_DRIVER">Om de VeraCrypt driver te laden moet u zijn ingelogd met een account met administrator rechten.</string>
- <string lang="nl" key="ADMIN_PRIVILEGES_WARN_DEVICES">Noot: om een apparaat/partitie te kunnen coderen/Decodeer/formatteren moet u ingelogd zijn met een beheersaccount, dus met administrator rechten.\n\nDit geldt niet voor het formatteren/coderen van volumes die zijn opgenomen in een Bestandscontainer.</string>
- <string lang="nl" key="ADMIN_PRIVILEGES_WARN_HIDVOL">Om een verborgen volume te kunnen maken moet u ingelogd zijn in een account met administrator rechten.\n\nDoorgaan?</string>
- <string lang="nl" key="ADMIN_PRIVILEGES_WARN_NTFS">Om het volume te kunen formatteren in NTFS formaat moet u ingelogd zijn in een account met administrator rechten.\n\nZonder administrator rechten kunt u het volume in FAT formaat formatteren.</string>
+ <string lang="nl" key="ADMIN_PRIVILEGES_DRIVER">Om de VeraCrypt driver te laden moet u zijn ingelogd met een account met administratorrechten.</string>
+ <string lang="nl" key="ADMIN_PRIVILEGES_WARN_DEVICES">Noot: om een apparaat/partitie te kunnen coderen/decoderen/formatteren moet u ingelogd zijn met een administrator account, dus met administratorrechten.\n\nDit geldt niet voor het formatteren/coderen van volumes die zijn opgenomen in een Bestandscontainer.</string>
+ <string lang="nl" key="ADMIN_PRIVILEGES_WARN_HIDVOL">Om een verborgen volume te kunnen maken moet u ingelogd zijn in een account met administratorrechten.\n\nDoorgaan?</string>
+ <string lang="nl" key="ADMIN_PRIVILEGES_WARN_NTFS">Om het volume te kunen formatteren in NTFS formaat moet u ingelogd zijn in een account met administratorrechten.\n\nZonder administratorrechten kunt u het volume in FAT formaat formatteren.</string>
<string lang="nl" key="AES_HELP">FIPS-goedgekeurde code (Rijndael, gepubliceerd 1998) die mag worden gebruikt door U.S. overheids departementen en agentschappen om geclassificeerde informatie te beveiligen tot aan Top Secret level. 256-bit sleutel, 128-bit blok, 14 rondgangen (AES-256). Bewerkingsmodus is XTS.</string>
<string lang="nl" key="ALREADY_MOUNTED">Volume is reeds gekoppeld.</string>
<string lang="nl" key="ERR_SELF_TESTS_FAILED">WAARSCHUWING: Bij tenminste een codering of hash algoritme is de ingebouwde automatische zelftest mislukt!\n\nDe installatie van VeraCrypt kan mogelijk beschadigd zijn.</string>
<string lang="nl" key="ERR_NOT_ENOUGH_RANDOM_DATA">Waarschuwing: Er zijn niet genoeg data in de Random Nummer Generator om te voorzien in de gevraagde hoeveelheid random data.\n\nGa niet verder in het programma. Wilt u a.u.b.'Rapporteer een fout' uit het Help menu kiezen en deze fout rapporteren?</string>
<string lang="nl" key="ERR_HARDWARE_ERROR">De schijf is beschadigd (fysiek defect) of een kabel is beschadigd, of het geheugen disfunctioneert.\n\nMerk a.u.b. op dat dit een probleem met uw hardware is, niet met VeraCrypt. Rapporteer dit daarom a.u.b. NIET als een bug of probleem in VeraCrypt en vraag hiervoor NIET om hulp in het VeraCrypt Forum. Neem a.u.b. contact op met het technisch ondersteunings team van uw computer verkoper voor hulp. Dank u wel.\n\nMerk op: Als de fout herhaaldelijk op dezelfde plaats optreedt, wordt deze waarschijnlijk veroorzaakt door een zgn. bad cluster op de schijf. Dit kunt u mogelijk corrigeren met software van een derde partij (in veel gevallen is de opdracht 'chkdsk /r' niet in staat deze fout te corrigeren omdat dit programma op bestandsniveau werkt; in sommige gevallen zal 'chkdsk' de fout zelfs niet opmerken).</string>
<string lang="nl" key="DEVICE_NOT_READY_ERROR">Als u toegang tot een station op een verwisselbaar apparaat wilt, wees er dan zeker van dat het apparaat is aangesloten. De schijf/Het apparaat kan ook beschadigd zijn (mogelijk is er een fysiek defect) of is de kabel afgekoppeld/beschadigd.</string>
- <string lang="nl" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Uw system heeft aangepaste chipset drivers met daarin een bug die codering van de gehele systeem schijf verhindert.\n\nProbeer a.u.b. (niet-Microsoft) aangepaste chipset drivers bij te werken of te deïnstalleren voordat u verder gaat. Codeer alleen de systeem partitie als het probleem blijft.</string>
+ <string lang="nl" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Uw systeem heeft aangepaste chipset drivers met daarin een bug die codering van de gehele systeemschijf verhindert.\n\nProbeer a.u.b. (niet-Microsoft) aangepaste chipset drivers bij te werken of te de-installeren voordat u verder gaat. Codeer alleen de systeempartitie als het probleem blijft.</string>
<string lang="nl" key="BAD_DRIVE_LETTER">Ongeldige stationsletter.</string>
<string lang="nl" key="INVALID_PATH">Ongeldig pad.</string>
<string lang="nl" key="CANCEL">Annuleer</string>
@@ -429,18 +430,18 @@
<string lang="nl" key="INPLACE_ENC_CANT_LOCK_OR_DISMOUNT_FILESYS">Fout: Het bestandssysteem kon niet worden gekoppeld en/of ontkoppeld. Het bestandssysteem kan in gebruik zijn door het besturingssysteem of programma's (bijv. antivirus software). Het coderen van de partitie kan dan data corruptie en systeeminstabiliteit veroorzaken.\n\nSluit a.u.b. ieder programma dat het bestandssysteem zou kunnen gebruiken (incl. antivirus software) en probeer het opnieuw. Indien dit niet helpt, volg a.u.b. de stappen hieronder.</string>
<string lang="nl" key="DEVICE_IN_USE_INFO">WAARSCHUWING: Sommige van de gekoppelde apparaten/partities waren reeds in gebruik!\n\nIndien u dit negeert kan dit ongewenste gevolgen en systeeminstabiliteit tot gevolg hebben.\n\nWe raden u sterk aan ieder programma dat het apparaat/partitie in gebruik zou kunnen hebben te beëindigen.</string>
<string lang="nl" key="DEVICE_PARTITIONS_ERR">Het geselecteerde apparaat bevat partities!\n\nDit apparaat formatteren zou systeem instabiliteit en dataverlies tot gevolg kunnen hebben. Selecteert u a.u.b. een partitie op dit apparaat, of verwijdert u alle partities zodat VeraCrypt het apparaat vervolgens veilig kan formatteren.</string>
- <string lang="nl" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">Op apparaten die niet gepartitioneerd zijn (incl. harde schijven en Solid State drives) kunnen gecodeerde VeraCrypt volumes worden aangemaakt. Een apparaat dat partities bevat kan slechts als één geheel worden gecodeerd (met één master key) indien Windows daarop geïnstalleerd is en ermee opgestart wordt.\n\nAls u het geselecteerde niet-systeem apparaat als één geheel wilt coderen met één master key, dient u eerst alle partities te verwijderen waarna VeraCrypt dit apparaat als één geheel kan formatteren. Als alternatief kunt u iedere partitie op dit apparaat afzonderlijk selecteren voor aanmaak van een VeraCrypt volume. (Iedere partitie wordt dan met een andere master key gecodeerd).\n\nNoot:Als u alle partities wilt verwijderen van een GPT disk, zou u deze kunnen converteren naar een MBR disk (middels bijv. Computerbeheer in Windows) teneinde de verborgen partities te kunnen verwijderen.</string>
- <string lang="nl" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">Waarschuwing: Als u het volledige apparaat codeert (dit in tegenstelling tot het coderen van een partitie), zal het besturingssysteem het apparaat als nieuw, leeg en ongeformatteerd beschouwen; dit omdat de partitietabel leeg is. Als gevolg hiervan kan het besturingssysteem het apparaat "spontaan" initialiseren (of je vragen dit te doen), met als gevolg dat het volume onbruikbaar wordt. Ook zal het niet mogelijk zijn om de volume als favoriet te koppelen (b.v. als de stationsletter wijzigt) of kan er geen favoriet-volumelabel worden toegewezen.\n\nOm dit te voorkomen kunt u overwegen een partitie op het apparaat aan te maken en die partitie te coderen.\n\nWeet u zeker dat je het volledige apparaat wilt coderen?</string>
- <string lang="nl" key="AFTER_FORMAT_DRIVE_LETTER_WARN">BELANGRIJK: Houdt er rekening mee dat deze volume NIET kan worden gekoppeld/benaderd met stationsletter %c:, welke nu hieraan is toegewezen!\n\nOm dit volume te koppelen, klik 'Auto-koppel apparaten' in het VeraCrypt hoofdvenster (alternatief, in het VeraCrypt hoofdvenster, klik 'Selecteer apparaat', selecteer daarna deze partitie/apparaat en klik 'Koppelen'). U moet het volume koppelen met een ander stationsletter, welke u kunt selecteren uit de lijst in het VeraCrypt hoofdvenster.\n\nDe originele stationsletter %c: mag alleen worden gebruikt in het geval dat u de codering van de partitie/apparaat wilt verwijderen (b.v., wanneer codering niet meer nodig is). In dat geval, rechtsklikken op de stationsletter %c: in de 'Computer' (of 'Mijn computer') lijst en selecteer 'Formatteren'. In andere gevallen moet u de stationsletter %c: nooit gebruiken (tenzij je het verwijderd, zoals beschreven b.v. in het VeraCrypt FAQ, en het toewijst aan een andere partitie/apparaat).</string>
- <string lang="nl" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Op-De-Plaats codering van niet-systeem volumes wordt niet ondersteunt door uw besturingssysteem (het wordt slechts ondersteunt door Windows Vista en latere versies van Windows).\n\nDe reden is dat deze versie krimpen van het bestandsysteem niet ondersteunt (hetgeen noodzakelijk is om plaats te maken voor de volumeheader en back-upheader).</string>
+ <string lang="nl" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">Op apparaten die niet gepartitioneerd zijn (incl. harde schijven en Solid State drives) kunnen gecodeerde VeraCrypt volumes worden aangemaakt. Een apparaat dat partities bevat kan slechts als één geheel worden gecodeerd (met één hoofdsleutel) indien Windows daarop geïnstalleerd is en ermee opgestart wordt.\n\nAls u het geselecteerde niet-systeemapparaat als één geheel wilt coderen met één hoofdsleutel, dient u eerst alle partities te verwijderen waarna VeraCrypt dit apparaat als één geheel kan formatteren. Als alternatief kunt u iedere partitie op dit apparaat afzonderlijk selecteren voor aanmaak van een VeraCrypt volume. (Iedere partitie wordt dan met een andere hoofdsleutel gecodeerd).\n\nNoot:Als u alle partities wilt verwijderen van een GPT disk, zou u deze kunnen converteren naar een MBR disk (middels bijv. Computerbeheer in Windows) teneinde de verborgen partities te kunnen verwijderen.</string>
+ <string lang="nl" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">Waarschuwing: Als u het volledige apparaat codeert (dit in tegenstelling tot het coderen van een partitie), zal het besturingssysteem het apparaat als nieuw, leeg en ongeformatteerd beschouwen; dit omdat de partitietabel leeg is. Als gevolg hiervan kan het besturingssysteem het apparaat "spontaan" initialiseren (of u vragen dit te doen), met als gevolg dat het volume onbruikbaar wordt. Ook zal het niet mogelijk zijn om de volume als favoriet te koppelen (b.v. als de stationsletter wijzigt) of kan er geen favoriet-volumelabel worden toegewezen.\n\nOm dit te voorkomen kunt u overwegen een partitie op het apparaat aan te maken en die partitie te coderen.\n\nWeet u zeker dat u het volledige apparaat wilt coderen?</string>
+ <string lang="nl" key="AFTER_FORMAT_DRIVE_LETTER_WARN">BELANGRIJK: Houdt er rekening mee dat deze volume NIET kan worden gekoppeld/benaderd met stationsletter %c:, welke nu hieraan is toegewezen!\n\nOm dit volume te koppelen, klik 'Auto-koppel apparaten' in het VeraCrypt hoofdvenster (alternatief, in het VeraCrypt hoofdvenster, klik 'Selecteer apparaat', selecteer daarna deze partitie/apparaat en klik 'Koppelen'). U moet het volume koppelen met een ander stationsletter, welke u kunt selecteren uit de lijst in het VeraCrypt hoofdvenster.\n\nDe originele stationsletter %c: mag alleen worden gebruikt in het geval dat u de codering van de partitie/apparaat wilt verwijderen (b.v., wanneer codering niet meer nodig is). In dat geval, rechtsklikken op de stationsletter %c: in de 'Computer' (of 'Mijn computer') lijst en selecteer 'Formatteren'. In andere gevallen moet u de stationsletter %c: nooit gebruiken (tenzij u het verwijderd, zoals beschreven b.v. in het VeraCrypt FAQ, en het toewijst aan een andere partitie/apparaat).</string>
+ <string lang="nl" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Op-De-Plaats codering van niet-systeem volumes wordt niet ondersteunt door uw besturingssysteem (het wordt slechts ondersteunt door Windows Vista en latere versies van Windows).\n\nDe reden is dat deze versie krimpen van het bestandssysteem niet ondersteunt (hetgeen noodzakelijk is om plaats te maken voor de volumeheader en back-upheader).</string>
<string lang="nl" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">De geselecteerde partitie blijkt geen NTFS bestandssysteem te bevatten. Alleen partities met daarop het NTFS bestandssysteem kunnen Op-De-Plaats worden gecodeerd.De reden hiervoor is dat alleen onder NTFS het krimpen van het bestandssyteem mogelijk is zodat er ruimte vrijkomt voor de volumeheader en de back-upheader).</string>
- <string lang="nl" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">De geselecteerde partitie blijkt geen NTFS bestandssysteem te bevatten. Alleen partities met daarop het NTFS bestandssysteem kunnen Op-De-Plaats worden gecodeerd.\n\nIndien u een VeraCrypt volume wilt aanmaken in deze partitie, kies dan ‘Aanmaak en formattering gecodeerd volume’ (i.p.v. ‘Op-De-Plaats Codering van de partitie (Windows Vista))’</string>
+ <string lang="nl" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">De geselecteerde partitie blijkt geen NTFS bestandssysteem te bevatten. Alleen partities met daarop het NTFS bestandssysteem kunnen Op-De-Plaats worden gecodeerd.\n\nIndien u een VeraCrypt volume wilt aanmaken in deze partitie, kies dan 'Aanmaak en formattering gecodeerd volume' (i.p.v. 'Op-De-Plaats Codering van de partitie (Windows Vista))'</string>
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_NONSYS_INPLACE_ENC">Fout: De partitie is te klein. VeraCrypt kan het niet Op-De-Plaats coderen.</string>
- <string lang="nl" key="INPLACE_ENC_ALTERNATIVE_STEPS">Volg a.u.b. de volgende stappen om de bestanden op deze partitie te coderen:\n\n1) Maak een VeraCrypt volume aan op een lege partitie/apparaat en koppel dit volume.\n\n2) Kopieer alle bestanden van de partitie die u oorspronkelijk wilde coderen naar het in stap 1 aangemaakte en gekoppelde VeraCrypt volume. U heeft nu een in VeraCrypt gecodeerde back-up van uw bestanden gemaakt.\n\n3) Maak een VeraCrypt volume aan op de partitie die u oorspronkelijk wilde coderen en zorg ervoor dat u in de‘VeraCrypt volume aanmaak wizard’ de keuze ‘Aanmaak en formattering gecodeerd volume’ doet en dus niet ‘Op-De-Plaats Codering van de partitie (Windows Vista)’. Alle data op de partitie wordt nu gewist. Na de aanmaak kunt u het volume koppelen.\n\n4) Kopieer nu alle back-upbestanden die u op het in stap 1 gekoppelde VeraCrypt volume hebt veiliggesteld naar het volume dat u in stap 3 heeft aangemaakt en gekoppeld.\n\nNadat u deze stappen hebt doorlopen zijn uw bestanden gecodeerd én heeft u er een back-up van.</string>
- <string lang="nl" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeem schijf Op-De-Plaats coderen.\n\nIndien u een VeraCrypt volume wilt maken in het geselecteerde niet-systeem apparaat, kies dan ‘Aanmaak en formattering gecodeerd volume’ (i.p.v. ‘Op-De-Plaats Codering van de partitie (Windows Vista))’</string>
- <string lang="nl" key="INPLACE_ENC_INVALID_PATH">Fout: VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeem schijf Op-De-Plaats coderen.Controleer a.u.b. of het opgegeven pad geldig is.</string>
- <string lang="nl" key="CANNOT_RESIZE_FILESYS">Fout: Kan het bestandssysteem niet krimpen (dit is noodzakelijk om plaats te maken voor de volumeheader en de back-upheader).\n\nMogelijke oorzaken en oplossingen:\n\n- Niet voldoende vrije ruimte op het volume. Zorg ervoor dat geen ander programma aan het schrijven is naar het bestandssysteem.\n\n- Corrupt bestandssysteem. Controleer en repareer indien nodig de fouten: Klik rechts op de overeenkomende stationsletter in ‘Mijn Computer’, klik op ‘Eigenschappen’ &gt; Extra &gt; ‘Volume op fouten controleren’, zorg dat de optie ‘Fouten in het bestandssysteem automatisch corrigeren’ is aangevinkt en druk op ‘Starten’.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
- <string lang="nl" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">Fout: er is niet genoeg vrije ruimte op het volume waardoor het bestandssysteem niet kan worden ingekrompen (dit is noodzakelijk om ruimte te maken voor de volumeheader en de back-upheader).\n\nVerwijder a.u.b. alle overbodige bestanden en maak de prullenbak leeg om zo minstens 256 KB ruimte vrij te maken en probeer het daarna opnieuw. Door een probleem in Windows kan de vrije ruimte, gemeld door Windows Explorer, incorrect kan zijn zolang de computer niet opnieuw is gestart. Als opnieuw starten van de computer niet helpt, kan het bestandssysteem mogelijk corrupt zijn. Controleer dit dan en repareer de fouten: Klik rechts op de stationsletter in ‘Mijn Computer’, klik op ‘Eigenschappen’ &gt; Extra &gt; ‘Volume op fouten controleren’, zorg dat de optie ‘Fouten in het bestandssysteem automatisch corrigeren’ is aangevinkt en druk op ‘Starten’.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
+ <string lang="nl" key="INPLACE_ENC_ALTERNATIVE_STEPS">Volg a.u.b. de volgende stappen om de bestanden op deze partitie te coderen:\n\n1) Maak een VeraCrypt volume aan op een lege partitie/apparaat en koppel dit volume.\n\n2) Kopieer alle bestanden van de partitie die u oorspronkelijk wilde coderen naar het in stap 1 aangemaakte en gekoppelde VeraCrypt volume. U heeft nu een in VeraCrypt gecodeerde back-up van uw bestanden gemaakt.\n\n3) Maak een VeraCrypt volume aan op de partitie die u oorspronkelijk wilde coderen en zorg ervoor dat u in de 'VeraCrypt volume aanmaak wizard' de keuze 'Aanmaak en formattering gecodeerd volume' doet en dus niet 'Op-De-Plaats Codering van de partitie (Windows Vista)'. Alle data op de partitie wordt nu gewist. Na de aanmaak kunt u het volume koppelen.\n\n4) Kopieer nu alle back-upbestanden die u op het in stap 1 gekoppelde VeraCrypt volume hebt veiliggesteld naar het volume dat u in stap 3 heeft aangemaakt en gekoppeld.\n\nNadat u deze stappen hebt doorlopen zijn uw bestanden gecodeerd én heeft u er een back-up van.</string>
+ <string lang="nl" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeemschijf Op-De-Plaats coderen.\n\nIndien u een VeraCrypt volume wilt maken in het geselecteerde niet-systeemapparaat, kies dan 'Aanmaak en formattering gecodeerd volume' (i.p.v. 'Op-De-Plaats Codering van de partitie (Windows Vista))'</string>
+ <string lang="nl" key="INPLACE_ENC_INVALID_PATH">Fout: VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeemschijf Op-De-Plaats coderen.Controleer a.u.b. of het opgegeven pad geldig is.</string>
+ <string lang="nl" key="CANNOT_RESIZE_FILESYS">Fout: Kan het bestandssysteem niet krimpen (dit is noodzakelijk om plaats te maken voor de volumeheader en de back-upheader).\n\nMogelijke oorzaken en oplossingen:\n\n- Niet voldoende vrije ruimte op het volume. Zorg ervoor dat geen ander programma aan het schrijven is naar het bestandssysteem.\n\n- Corrupt bestandssysteem. Controleer en repareer indien nodig de fouten: Klik rechts op de overeenkomende stationsletter in 'Mijn Computer', klik op 'Eigenschappen' &gt; Extra &gt; 'Volume op fouten controleren', zorg dat de optie 'Fouten in het bestandssysteem automatisch corrigeren' is aangevinkt en druk op 'Starten'.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
+ <string lang="nl" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">Fout: er is niet genoeg vrije ruimte op het volume waardoor het bestandssysteem niet kan worden ingekrompen (dit is noodzakelijk om ruimte te maken voor de volumeheader en de back-upheader).\n\nVerwijder a.u.b. alle overbodige bestanden en maak de prullenbak leeg om zo minstens 256 KB ruimte vrij te maken en probeer het daarna opnieuw. Door een probleem in Windows kan de vrije ruimte, gemeld door Windows Explorer, incorrect kan zijn zolang de computer niet opnieuw is gestart. Als opnieuw starten van de computer niet helpt, kan het bestandssysteem mogelijk corrupt zijn. Controleer dit dan en repareer de fouten: Klik rechts op de stationsletter in 'Mijn Computer', klik op 'Eigenschappen' &gt; Extra &gt; 'Volume op fouten controleren', zorg dat de optie 'Fouten in het bestandssysteem automatisch corrigeren' is aangevinkt en druk op 'Starten'.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
<string lang="nl" key="DISK_FREE_BYTES">Vrije ruimte op schijf %s is %.2f bytes.</string>
<string lang="nl" key="DISK_FREE_KB">Vrije ruimte op schijf %s is %.2f KB</string>
<string lang="nl" key="DISK_FREE_MB">Vrije ruimte op schijf %s is %.2f MB</string>
@@ -449,43 +450,43 @@
<string lang="nl" key="DISK_FREE_PB">Vrije ruimte op schijf %s is %.2f PB</string>
<string lang="nl" key="DRIVELETTERS">Kon geen beschikbare stationsletters verkrijgen.</string>
<string lang="nl" key="DRIVER_NOT_FOUND">Fout: VeraCrypt driver niet gevonden.\n\nKopieer a.u.b. de bestanden 'veracrypt.sys' en 'veracrypt-x64.sys' naar de map waar VeraCrypt (VeraCrypt.exe) is geïnstalleerd.</string>
- <string lang="en" key="DRIVER_VERSION">Error: An incompatible version of the VeraCrypt driver is currently running.\n\nIf you are trying to run VeraCrypt in portable mode (i.e. without installing it) and a different version of VeraCrypt is already installed, you must uninstall it first (or upgrade it using the VeraCrypt installer). To uninstall it, follow these steps: On Windows Vista or later, select 'Startmenu' > Computer > 'Uninstall or change a program' > VeraCrypt > Uninstall; on Windows XP, select 'Startmenu' > Settings > 'Control Panel' > 'Add Or Remove Programs' > VeraCrypt > Remove.\n\nSimilarly, if you are trying to run VeraCrypt in portable mode (i.e. without installing it) and a different version of VeraCrypt is already running in portable mode, you must restart the system first and then run only this new version.</string>
+ <string lang="nl" key="DRIVER_VERSION">Fout: Er is een incompatibele versie van het VeraCrypt stuurprogramma actief.\n\nAls u VeraCrypt wilt gebruiken in portable modus (d.w.z. zonder het te installeren) en een andere versie van VeraCrypt is al geïnstalleerd, dan moet u deze eerst verwijderen (of upgraden middels het VeraCrypt installatieprogramma). Volg deze stappen om het te verwijderen: Op Windows Vista of nieuwer, selecteer 'Startmenu' > Configuratiescherm > 'Programma's en onderdelen' > VeraCrypt > Verwijderen; op Windows XP, selecteer 'Startmenu' > Instellingen > 'Configuratiescherm' > 'Programma's toevoegen of verwijderen' > VeraCrypt > Verwijderen.\n\nVergelijkbaar, als u VeraCrypt wilt gebruiken in portable modus (d.w.z. zonder het te installeren) en een andere versie van VeraCrypt is operationeel in portable modus, dan moet u het systeem herstarten en alleen deze nieuwere versie starten.</string>
<string lang="nl" key="ERR_CIPHER_INIT_FAILURE">Error: Code initialisatie mislukt.</string>
<string lang="nl" key="ERR_CIPHER_INIT_WEAK_KEY">Fout: Een zwakke of potentieel-zwakke sleutel is ontdekt. De sleutel wordt verwijderd. Probeert u het a.u.b. opnieuw.</string>
<string lang="nl" key="EXCEPTION_REPORT">Er is een kritische fout in VeraCrypt opgetreden waardoor dit moet worden beëindigd. Als dit veroorzaakt is door een fout in VeraCrypt willen we deze graag herstellen. Om ons te helpen kunt u ons een automatisch aangemaakt foutrapport sturen met de volgende informatie:\n\n- Programma versie\n- besturingssysteem versie\n- Type CPU\n- VeraCrypt component naam\n- Checksum van VeraCrypt executable\n- Symbolische naam van dialoog scherm\n- Fout categorie\n- Fout adres\n- VeraCrypt call stack\n\nAls u op 'Ja' drukt, zal de volgende URL (met daarin het hele foutrapport) worden geopend in uw standaard internet browser.\n\n%s\n\nWilt u ons dit rapport zenden?</string>
<string lang="nl" key="EXCEPTION_REPORT_EXT">Er is een kritische fout in uw systeem opgetreden waardoor VeraCrypt moet worden beëindigd.\n\nMerk op dat deze fout NIET is veroorzaakt door VeraCrypt. (De VeraCrypt ontwikkelaars kunnen deze fout dus NIET oplossen). Controleer uw computer op mogelijke problemen (bijv. systeem configuratie, netwerkverbinding, defecte hardware componenten).</string>
- <string lang="en" key="EXCEPTION_REPORT_EXT_FILESEL">A critical error has occurred in your system, which requires VeraCrypt to be terminated.\n\nIf this problem persists, you may want to try disabling or uninstalling applications that could potentially be causing this issue, such as antivirus or Internet security software, system "enhancers", "optimizers" or "tweakers", etc. If it does not help, you may want to try reinstalling your operating system (this problem may also be caused by malware).</string>
+ <string lang="nl" key="EXCEPTION_REPORT_EXT_FILESEL">Er is een kritieke fout in uw systeem opgetreden, waardoor VeraCrypt zal worden afgesloten.\n\nAls dit probleem zich blijft voordoen, kunt u proberen programma's die dit probleem mogelijk veroorzaken uit te schakelen of zelfs te verwijderen. Denk hierbij aan systeem "uitbreidingen", "optimaliseerders", "tweaking tools", antivirus of internet beveiligingssoftware enz. Als dit niet helpt, kunt u ook proberen of herinstallatie van het besturingssysteem helpt (het probleem kan ook worden veroorzaakt door malware).</string>
<string lang="nl" key="EXCEPTION_REPORT_TITLE">VeraCrypt kritieke fout</string>
<string lang="nl" key="SYSTEM_CRASHED_ASK_REPORT">VeraCrypt constateert dat het besturingssysteem recent is gecrashed. Er zijn veel mogelijke redenen waardoor het systeem kan crashen (bijvoorbeeld, een defect hardwareonderdeel, een fout in een stuurprogramma, enz.)\n\nWilt u dat VeraCrypt controleert of er mogelijk een fout in VeraCrypt zit die de oorzaak van een systeemcrash kan zijn?</string>
<string lang="nl" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Wilt u dat VeraCrypt systeemcrashes blijft controleren?</string>
<string lang="nl" key="NO_MINIDUMP_FOUND">VeraCrypt heeft geen systeemcrash dumpbestand gevonden.</string>
<string lang="nl" key="ASK_DELETE_KERNEL_CRASH_DUMP">Wilt u de Windows crash logbestanden verwijderen om schijfruimte vrij te maken?</string>
- <string lang="en" key="ASK_DEBUGGER_INSTALL">In order to analyze the system crash, VeraCrypt needs to install Microsoft Debugging Tools for Windows first.\n\nAfter you click OK, the Windows installer will download the Microsoft Debugging Tools installation package (16 MB) from a Microsoft server and install it (the Windows installer will be forwarded to the Microsoft server URL from the veracrypt.org server, which ensures that this feature works even if Microsoft changes the location of the installation package).</string>
+ <string lang="nl" key="ASK_DEBUGGER_INSTALL">Om de systeemcrash te kunnen analyseren moet VeraCrypt eerst Microsoft Debugging Tools voor Windows installeren.\n\nNadat u op OK klikt zal de Windows installer het Microsoft Debugging Tools installatieprogramma van een Microsoft server downloaden (16 MB) en installeren. De Windows installer krijgt van de veracrypt.org server een URL van de Microsoft server, hierdoor weten we zeker dat deze optie werkt ook wanneer Microsoft de locatie van het installatieprogramma wijzigt.</string>
<string lang="nl" key="SYSTEM_CRASH_ANALYSIS_INFO">Wanneer u op OK klikt zal VeraCrypt de systeemcrash analyseren. Dit kan enkele minuten duren.</string>
<string lang="nl" key="DEBUGGER_NOT_FOUND">Zorg ervoor dat de environment variabele 'PATH' ook een verwijzing naar 'kd.exe' (Kernel Debugger) bevat.</string>
<string lang="nl" key="SYSTEM_CRASH_NO_VERACRYPT">Het lijkt erop dat VeraCrypt niet de oorzaak van de systeemcrash is. Er zijn veel mogelijkheden waardoor een systeem kan crashen (bijvoorbeeld, een defect hardware onderdeel, een fout in een stuurapparaat, enz.)</string>
<string lang="nl" key="SYSTEM_CRASH_UPDATE_DRIVER">Uit de analyse blijkt dat updaten van het volgende stuurprogramma mogelijk het probleem oplost: </string>
- <string lang="en" key="SYSTEM_CRASH_REPORT">To help us determine whether there is a bug in VeraCrypt, you can send us an automatically generated error report containing the following items:\n- Program version\n- Operating system version\n- Type of CPU\n- Error category\n- Driver name and version\n- System call stack\n\nIf you select 'Yes', the following URL (which contains the entire error report) will be opened in your default Internet browser.</string>
+ <string lang="nl" key="SYSTEM_CRASH_REPORT">Om ons te helpen om te zien of dit een bug in VeraCrypt is, kunt u ons een automatisch aangemaakt foutmelding toesturen met daarin :\n- Programma versie\n- Besturingssysteem versie\n- Type CPU\n- Categorie foutmelding\n- Stuurprogramma en versie\n- Systeem call stack\n\nAls u op 'Ja' klikt, dan wordt een internetpagina in uw standaard browser geopend om de volledige foutmelding te versturen.</string>
<string lang="nl" key="ASK_SEND_ERROR_REPORT">Wilt u ons het bovengenoemde foutenrapport sturen?</string>
<string lang="nl" key="ENCRYPT">&amp;Coderen</string>
<string lang="nl" key="DECRYPT">&amp;Decoderen</string>
<string lang="nl" key="PERMANENTLY_DECRYPT">&amp;Permanent decoderen</string>
<string lang="nl" key="EXIT">Sluiten</string>
<string lang="nl" key="EXT_PARTITION">Maak a.u.b. een logisch station aan voor deze extended partitie en probeer het dan nogmaals.</string>
- <string lang="en" key="FILE_HELP">A VeraCrypt volume can reside in a file (called VeraCrypt container), which can reside on a hard disk, on a USB flash drive, etc. A VeraCrypt container is just like any normal file (it can be, for example, moved or deleted as any normal file). Click 'Select File' to choose a filename for the container and to select the location where you wish the container to be created.\n\nWARNING: If you select an existing file, VeraCrypt will NOT encrypt it; the file will be deleted and replaced with the newly created VeraCrypt container. You will be able to encrypt existing files (later on) by moving them to the VeraCrypt container that you are about to create now.</string>
- <string lang="en" key="FILE_HELP_HIDDEN_HOST_VOL">Select the location of the outer volume to be created (within this volume the hidden volume will be created later on).\n\nA VeraCrypt volume can reside in a file (called VeraCrypt container), which can reside on a hard disk, on a USB flash drive, etc. A VeraCrypt container can be moved or deleted as any normal file. Click 'Select File' to choose a filename for the container and to select the location where you wish the container to be created. If you select an existing file, VeraCrypt will NOT encrypt it; it will be deleted and replaced with the newly created container. You will be able to encrypt existing files (later on) by moving them to the VeraCrypt container you are about to create now.</string>
+ <string lang="nl" key="FILE_HELP">Een VeraCrypt volume kan geplaatst zijn in een bestand (een VeraCrypt container), welke zich bevind op de harde schijf, op een usb-stick, enz. Een VeraCrypt container is net als een gewoon bestand (u kunt het, bijvoorbeeld, verplaatsen en verwijderen als een gewoon bestand). Klik 'Selecteer bestand' om een bestandsnaam in te voeren en selecteer een locatie om de container aan te maken.\n\nWAARSCHUWING: Als u een bestaand bestand kiest, dan zal VeraCrypt deze niet versleutelen; het bestand wordt gewist en vervangen door de nieuw te maken VeraCrypt container. U kunt bestaande bestanden versleutelen door ze (later) te verplaatsen naar de VeraCrypt container die u nu gaat aanmaken.</string>
+ <string lang="nl" key="FILE_HELP_HIDDEN_HOST_VOL">Selecteer een locatie om de buiten-volume aan te maken (in deze buiten-volume zal later de verborgen volume worden aangemaakt).\n\nEen VeraCrypt volume kan geplaatst zijn in een bestand (een VeraCrypt container), welke zich bevind op de harde schijf, op een usb-stick, enz. Een VeraCrypt container is net als een gewoon bestand (u kunt het, bijvoorbeeld, verplaatsen en verwijderen als een gewoon bestand). Klik 'Selecteer bestand' om een bestandsnaam in te voeren en selecteer een locatie om de container aan te maken. Als u een bestaand bestand kiest, dan zal VeraCrypt deze NIET versleutelen; het bestand wordt gewist en vervangen door de nieuw te maken VeraCrypt container. U kunt bestaande bestanden versleutelen door ze (later) te verplaatsen naar de VeraCrypt container die u nu gaat aanmaken.</string>
<string lang="nl" key="DEVICE_HELP">Partities op harde schijven, Solid State Drives, USB sticks en andere ondersteunde apparaten kunnen worden gecodeerd tot VeraCrypt volumes.\n\nIndien een apparaat (incl. Solid State Drives en USB sticks) geen partities bevat kan het ook als geheel worden gecodeerd tot een VeraCrypt volume.\n\nNoot: Een apparaat dat partities bevat kan als geheel worden gecodeerd (met gebruik van één sleutel) alléén indien op dit apparaat Windows is gehuisvest en er vanaf wordt opgestart.</string>
<string lang="nl" key="DEVICE_HELP_NO_INPLACE">Een VeraCrypt volume kan worden aangemaakt binnen een harde schijf partitie, Solid-State Drive, USB stick en andere ondersteunde apparaten.\n\nWAARSCHUWING: Het apparaat/partitie zal in dit proces worden geformatteerd waardoor alle erop aanwezige bestanden verloren zullen gaan.</string>
<string lang="nl" key="DEVICE_HELP_HIDDEN_HOST_VOL">\nSelecteer de locatie waar het buiten volume moet worden aangemaakt (binnen dit buiten volume zal later het verborgen volume worden aangemaakt).\n\nPartities op harde schijven, Solid State Drives, USB sticks en andere ondersteunde apparaten kunnen worden gecodeerd tot een buiten volume. Apparaten die geen partities bevatten (incl. Solid State Drives en USB sticks) kunnen ook als geheel worden gecodeerd tot een buiten volume.\n\nWAARSCHUWING: Het gehele apparaat of partitie wordt tijdens het coderen geformatteerd en alle data die er op staan gaan verloren!</string>
<string lang="nl" key="FILE_HELP_HIDDEN_HOST_VOL_DIRECT">Selecteer de locatie van het VeraCrypt volume waarin u een verborgen volume wilt aanmaken.</string>
- <string lang="nl" key="FILE_IN_USE">WAARSCHUWING: Het huisvestende bestand/apparaat is in gebruik!\n\nDit negeren kan ongewenste gevolgen hebben zoals systeem instabiliteit. Alle programma’s die het huisvestende bestand/apparaat gebruiken (bijv. antivirus/back-up) stoppen alvorens het volume te koppelen.\n\nDoorgaan met koppelen?</string>
+ <string lang="nl" key="FILE_IN_USE">WAARSCHUWING: Het huisvestende bestand/apparaat is in gebruik!\n\nDit negeren kan ongewenste gevolgen hebben zoals systeem instabiliteit. Alle programma's die het huisvestende bestand/apparaat gebruiken (bijv. antivirus/back-up) stoppen alvorens het volume te koppelen.\n\nDoorgaan met koppelen?</string>
<string lang="nl" key="FILE_IN_USE_FAILED">Fout: Kan het volume niet koppelen. Het huisvestende bestand/apparaat is reeds in gebruik. Een poging te koppelen met exclusieve toegang is ook mislukt.</string>
<string lang="nl" key="FILE_OPEN_FAILED">Het bestand kon niet worden geopend.</string>
<string lang="nl" key="FILE_TITLE">Volumelocatie</string>
<string lang="nl" key="FILESYS_PAGE_TITLE">Grote Bestanden</string>
<string lang="nl" key="FILESYS_PAGE_HELP_QUESTION">Wilt u bestanden groter dan 4 GB opslaan in dit VeraCrypt volume?</string>
<string lang="nl" key="FILESYS_PAGE_HELP_EXPLANATION">Gebaseerd op uw keuze hierboven zal VeraCrypt een passend bestandssyteem kiezen voor het aan te maken VeraCrypt volume (u kunt deze keuze in de volgende stap desgewenst aanpassen).</string>
- <string lang="nl" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Gelieve, omdat u een buiten volume aanmaakt, a.u.b. ‘Nee’ in overweging te nemen. Als u ‘Ja’ kiest, zal het standaard systeem NTFS zijn, hetgeen minder geschikt is voor buitenvolumes dan FAT (de max. grootte van verborgen volumes is bijv. veel kleiner bij NTFS dan bij FAT). Normaal gesproken is de standaard FAT voor zowel verborgen als normale volumes (dus wekt FAT ook geen argwaan). Echter, indien u aangeeft bestanden groter dan 4 GB op te willen slaan, dan is FAT niet de standaard.</string>
+ <string lang="nl" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Gelieve, omdat u een buiten volume aanmaakt, a.u.b. 'Nee' in overweging te nemen. Als u 'Ja' kiest, zal het standaard systeem NTFS zijn, hetgeen minder geschikt is voor buiten volumes dan FAT (de max. grootte van verborgen volumes is bijv. veel kleiner bij NTFS dan bij FAT). Normaal gesproken is de standaard FAT voor zowel verborgen als normale volumes (dus wekt FAT ook geen argwaan). Echter, indien u aangeeft bestanden groter dan 4 GB op te willen slaan, dan is FAT niet de standaard.</string>
<string lang="nl" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM">Bent u zeker van uw keuze 'Ja'?</string>
<string lang="nl" key="DEVICE_TRANSFORM_MODE_PAGE_TITLE">Volume aanmaak modus</string>
<string lang="nl" key="DEVICE_TRANSFORM_MODE_PAGE_FORMAT_HELP">Dit is de snelste manier om van deze partitie/apparaat een VeraCrypt volume te maken. (De andere optie, codering, is langzamer omdat alle bestanden erop dan gecodeerd moeten worden.) Deze snelle manier zal alle bestanden op het apparaat/partitie wissen en overschrijven met random data. De bestanden zullen dus NIET worden gecodeerd. Indien u de bestanden wenst te behouden en coderen, kies dan de andere optie.</string>
@@ -504,12 +505,12 @@
<string lang="nl" key="WIPE_FINISHED_DECOY_SYSTEM_PARTITION">De inhoud van de partitie waar het oorspronkelijke systeem aanwezig was is succesvol gewist.</string>
<string lang="en" key="DECOY_OS_VERSION_WARNING">Please make sure the version of Windows you are going to install (on the wiped partition) is the same as the version of Windows you are currently running. This is required due to the fact that both systems will share a common boot partition.</string>
<string lang="nl" key="SYSTEM_ENCRYPTION_FINISHED">De systeempartitie/-schijf is succesvol gecodeerd.\n\nNote: Als er niet-systeem Veracrypt volumes zijn die u automatisch wilt koppelen wanneer Windows start, dan kunt u dat instellen door ze te koppelen en daarna 'favorieten' te selecteren > 'Gekoppelde volume aan systeemfavorieten toevoegen').</string>
- <string lang="nl" key="SYSTEM_DECRYPTION_FINISHED">De systeem partitie/schijf is succesvol gedecodeerd.</string>
+ <string lang="nl" key="SYSTEM_DECRYPTION_FINISHED">De systeempartitie/schijf is succesvol gedecodeerd.</string>
<string lang="nl" key="FORMAT_FINISHED_HELP">\n\nHet VeraCrypt volume is succesvol aangemaakt en is klaar voor gebruik. Als u nog een VeraCrypt volume wilt aanmaken, klik dan op Volgende. Anders op Sluiten klikken.</string>
<string lang="nl" key="SYSENC_HIDDEN_VOL_FORMAT_FINISHED_HELP">\n\nHet Verborgen VeraCrypt volume is aangemaakt (het verborgen besturingssysteem zal zich in dit verborgen volume bevinden).\n\nKlik op Volgende om door te gaan.</string>
<string lang="nl" key="NONSYS_INPLACE_ENC_FINISHED_TITLE">Volume volledig gecodeerd</string>
<string lang="nl" key="NONSYS_INPLACE_DEC_FINISHED_TITLE">Volume volledig gedecodeerd</string>
- <string lang="nl" key="NONSYS_INPLACE_ENC_FINISHED_INFO">BELANGRIJK: OM TOEGANG TOT DIT NIEUW AANGEMAAKT VERACRYPT VOLUME TE KRIJGEN MOET HET EERST GEKOPPELD WORDEN, KLIK OP ‘Auto-Koppel Apparaten’ IN HET VERACRYPT HOOFDSCHERM. Na ingave van het wachtwoord (en/of indien de juiste sleutelbestanden op aanwezigheid zijn gecontroleerd) zal het volume worden gekoppeld aan de stationsletter die u heeft geselecteerd in het hoofdscherm. Via deze stationsletter heeft u toegang tot de data op uw VeraCrypt volume.\n\nONTHOUDT DEZE STAPPEN GOED WANT U MOET ZE IEDERE KEER WEER UITVOEREN OM BIJ DE DATA TE KUNNEN KOMEN DIE OP HET VOLUME GECODEERD ZIJN OPGESLAGEN. Als alternatief kunt u in het hoofdscherm klikken op ‘Selecteer apparaat’, selecteer dan deze partitie/apparaat, klik een lege stationsletter aan in het hoofdscherm en klik op ‘Koppel’.\n\nDe partitie/apparaat is succesvol gecodeerd, het bevat nu een volledig gecodeerd VeraCrypt volume en is klaar voor gebruik.</string>
+ <string lang="nl" key="NONSYS_INPLACE_ENC_FINISHED_INFO">BELANGRIJK: OM TOEGANG TOT DIT NIEUW AANGEMAAKT VERACRYPT VOLUME TE KRIJGEN MOET HET EERST GEKOPPELD WORDEN, KLIK OP 'Auto-Koppel Apparaten' IN HET VERACRYPT HOOFDSCHERM. Na ingave van het wachtwoord (en/of indien de juiste sleutelbestanden op aanwezigheid zijn gecontroleerd) zal het volume worden gekoppeld aan de stationsletter die u heeft geselecteerd in het hoofdscherm. Via deze stationsletter heeft u toegang tot de data op uw VeraCrypt volume.\n\nONTHOUDT DEZE STAPPEN GOED WANT U MOET ZE IEDERE KEER WEER UITVOEREN OM BIJ DE DATA TE KUNNEN KOMEN DIE OP HET VOLUME GECODEERD ZIJN OPGESLAGEN. Als alternatief kunt u in het hoofdscherm klikken op 'Selecteer apparaat', selecteer dan deze partitie/apparaat, klik een lege stationsletter aan in het hoofdscherm en klik op 'Koppel'.\n\nDe partitie/apparaat is succesvol gecodeerd, het bevat nu een volledig gecodeerd VeraCrypt volume en is klaar voor gebruik.</string>
<string lang="nl" key="NONSYS_INPLACE_DEC_FINISHED_INFO">De VeraCrypt volume is succesvol gedecodeerd.</string>
<string lang="en" key="NONSYS_INPLACE_DEC_FINISHED_DRIVE_LETTER_SEL_INFO">The VeraCrypt volume has been successfully decrypted.\n\nPlease select a drive letter that you wish to assign to the decrypted volume and then click Finish.\n\nIMPORTANT: Until a drive letter is assigned to the decrypted volume, you will not be able to access data stored on the volume.</string>
<string lang="en" key="NONSYS_INPLACE_DEC_FINISHED_NO_DRIVE_LETTER_AVAILABLE">Warning: To be able to access the decrypted data, a drive letter needs to be assigned to the decrypted volume. However, no drive letter is currently available.\n\nPlease vacate a drive letter (for example, by disconnecting a USB flash drive or external hard drive, etc.) and then click OK.</string>
@@ -526,15 +527,15 @@
<string lang="nl" key="HIDDEN_VOL_WIZARD_MODE_TITLE">Volume aanmaak modus</string>
<string lang="nl" key="HIDVOL_FORMAT_FINISHED_TITLE">Verborgen volume gemaakt</string>
<string lang="en" key="HIDVOL_FORMAT_FINISHED_HELP">The hidden VeraCrypt volume has been successfully created and is ready for use. If all the instructions have been followed and if the precautions and requirements listed in the section "Security Requirements and Precautions Pertaining to Hidden Volumes" in the VeraCrypt User's Guide are followed, it should be impossible to prove that the hidden volume exists, even when the outer volume is mounted.\n\nWARNING: IF YOU DO NOT PROTECT THE HIDDEN VOLUME (FOR INFORMATION ON HOW TO DO SO, REFER TO THE SECTION "PROTECTION OF HIDDEN VOLUMES AGAINST DAMAGE" IN THE VERACRYPT USER'S GUIDE), DO NOT WRITE TO THE OUTER VOLUME. OTHERWISE, YOU MAY OVERWRITE AND DAMAGE THE HIDDEN VOLUME!</string>
- <string lang="nl" key="FIRST_HIDDEN_OS_BOOT_INFO">U heeft het verborgen besturingssysteem gestart. Zoals u misschien heeft opgemerkt, lijkt het verborgen besturingssysteem geïnstalleerd te zijn op dezelfde partitie als het originele besturingssysteem. In werkelijkheid echter, is het aanwezig op de partitie erachter (in het verborgen volume). Alle lees- en schrijf operaties worden transparant doorgesluisd van het originele besturingssysteem naar het besturingssysteem in het verborgen volume.\n\nZowel het besturingssysteem als de applicaties ‘weten’ niet dat de data gelezen van en geschreven naar de systeem partitie in werkelijkheid worden gelezen van/geschreven naar de partitie erachter (van/naar het verborgen volume daar). Alle data worden on-the-fly gecodeerd met een codeersleutel die verschilt van de key die wordt gebruikt voor het lokaas besturingssysteem.\n\nKlik a.u.b. op ‘Volgende’ om door te gaan.</string>
- <string lang="nl" key="HIDVOL_HOST_FILLING_HELP_SYSENC">Het buiten volume is aangemaakt en gekoppeld als schijf %hc:. Kopieer nu enige belangrijk-uitziende bestanden naar dit buiten volume die u NIET wilt verbergen. Ze zullen daar staan t.b.v. eenieder die u zal dwingen het wachtwoord te onthullen van de eerste partitie achter de systeem partitie, waar naast het buiten volume ook het verborgen volume aanwezig is. U kunt dan het wachtwoord van het buiten volume onthullen waardoor het verborgen volume met daarin het verborgen besturingssysteem onontdekt zal blijven.\n\nBELANGRIJK: De bestanden die u gaat kopiëren naar het buitenvolume mogen niet meer ruimte in beslag nemen dan %s. Anders is er mogelijk te weinig ruimte voor het verborgen volume waarna u niet verder kunt. Klik na het kopiëren op Volgende.</string>
+ <string lang="nl" key="FIRST_HIDDEN_OS_BOOT_INFO">U heeft het verborgen besturingssysteem gestart. Zoals u misschien heeft opgemerkt, lijkt het verborgen besturingssysteem geïnstalleerd te zijn op dezelfde partitie als het originele besturingssysteem. In werkelijkheid echter, is het aanwezig op de partitie erachter (in het verborgen volume). Alle lees- en schrijfoperaties worden transparant doorgesluisd van het originele besturingssysteem naar het besturingssysteem in het verborgen volume.\n\nZowel het besturingssysteem als de applicaties 'weten' niet dat de data gelezen van en geschreven naar de systeempartitie in werkelijkheid worden gelezen van/geschreven naar de partitie erachter (van/naar het verborgen volume daar). Alle data worden Op-De-Plaats gecodeerd met een codeersleutel die verschilt van de key die wordt gebruikt voor het lokaas besturingssysteem.\n\nKlik a.u.b. op 'Volgende' om door te gaan.</string>
+ <string lang="nl" key="HIDVOL_HOST_FILLING_HELP_SYSENC">Het buiten volume is aangemaakt en gekoppeld als schijf %hc:. Kopieer nu enige belangrijk-uitziende bestanden naar dit buiten volume die u NIET wilt verbergen. Ze zullen daar staan t.b.v. eenieder die u zal dwingen het wachtwoord te onthullen van de eerste partitie achter de systeempartitie, waar naast het buiten volume ook het verborgen volume aanwezig is. U kunt dan het wachtwoord van het buiten volume onthullen waardoor het verborgen volume met daarin het verborgen besturingssysteem onontdekt zal blijven.\n\nBELANGRIJK: De bestanden die u gaat kopiëren naar het buiten volume mogen niet meer ruimte in beslag nemen dan %s. Anders is er mogelijk te weinig ruimte voor het verborgen volume waarna u niet verder kunt. Klik na het kopiëren op Volgende.</string>
<string lang="nl" key="HIDVOL_HOST_FILLING_HELP">Het buiten volume is aangemaakt en gekoppeld als station %hc:. Naar dit volume moet u nu wat gevoelig uitziende bestanden kopiëren die u NIET wilt verbergen. Deze bestanden zijn voor degene die u onverhoopt dwingt uw wachtwoord prijs te geven. U kunt dan alleen het wachtwoord prijsgeven van het buiten volume. De bestanden die belangrijk zijn staan dan in het verborgen volume (dat nog moet worden aangemaakt). Druk op Volgende als u klaar bent met kopiëren. Ontkoppel het buiten volume niet.\n\nNoot: Nadat u op Volgende hebt gedrukt, zal de cluster bitmap van het buiten volume worden gescand om de grootte van de aaneengesloten vrije ruimte te bepalen die samenvalt met het einde van het buiten volume. Deze vrije ruimte zal het verborgen volume gaan huisvesten en dus meteen de maximum omvang ervan beperken. Dit scannen verzekert ervan dat geen data van het buiten volume zullen worden overschreven door het verborgen volume.</string>
<string lang="nl" key="HIDVOL_HOST_FILLING_TITLE">Buiten volume inhoud</string>
<string lang="nl" key="HIDVOL_HOST_PRE_CIPHER_HELP">\n\nIn de volgende stappen zullen alle eigenschappen worden vastgesteld van het buiten volume (waarin later het verborgen volume zal worden aangemaakt).</string>
<string lang="nl" key="HIDVOL_HOST_PRE_CIPHER_HELP_SYSENC">\n\nIn de volgende stappen wordt nu het buiten volume aangemaakt in de eerste partitie achter de systeempartitie.</string>
<string lang="nl" key="HIDVOL_HOST_PRE_CIPHER_TITLE">Buiten volume</string>
- <string lang="nl" key="HIDDEN_OS_PRE_CIPHER_HELP">Hierna worden de opties en het wachtwoord bepaald voor het verborgen volume dat het verborgen besturingssysteem zal bevatten.\n\nOpmerking: De cluster bitmap van het buiten volume is gescand om de grootte te bepalen van de ononderbroken vrije ruimte waarvan het einde samenvalt met het einde van het buitenvolume. Dit in grootte beperkte gebied zal het verborgen volume bevatten. Van deze maximum grootte is vastgesteld dat hij groter is dan de systeempartitie, hetgeen ook nodig is omdat de systeempartitie in het geheel naar het verborgen volume gekopieerd gaat worden). Aldus is vastgesteld dat data aanwezig in het buitenvolume niet overschreven zullen worden door data die naar het verborgen volume worden geschreven.</string>
- <string lang="nl" key="HIDDEN_OS_PRE_CIPHER_WARNING">BELANGRIJK: Onthoud de in deze stap gekozen algoritmes!! U dient dezelfde algoritmes te selecteren bij aanmaak van het lokaas systeem. Anders zal het verborgen systeem niet toegankelijk zijn. (Het lokaas systeem moet worden gecodeerd met dezelfde algoritmes als het verborgen systeem.)\n\nNoot: De reden hiervoor is dat beide systemen dezelfde boot lader gebruiken. Een boot lader ondersteunt slechts één algoritmen. (Voor ieder algoritme is er een eigen versie van de bootlader.)</string>
+ <string lang="nl" key="HIDDEN_OS_PRE_CIPHER_HELP">Hierna worden de opties en het wachtwoord bepaald voor het verborgen volume dat het verborgen besturingssysteem zal bevatten.\n\nOpmerking: De clusterbitmap van het buiten volume is gescand om de grootte te bepalen van de ononderbroken vrije ruimte waarvan het einde samenvalt met het einde van het buiten volume. Dit in grootte beperkte gebied zal het verborgen volume bevatten. Van deze maximum grootte is vastgesteld dat hij groter is dan de systeempartitie, hetgeen ook nodig is omdat de systeempartitie in het geheel naar het verborgen volume wordt gekopieerd). Aldus is vastgesteld dat data aanwezig in het buiten volume niet overschreven zullen worden door data die naar het verborgen volume worden geschreven.</string>
+ <string lang="nl" key="HIDDEN_OS_PRE_CIPHER_WARNING">BELANGRIJK: Onthoud de in deze stap gekozen algoritmes!! U dient dezelfde algoritmes te selecteren bij aanmaak van het lokaas systeem. Anders zal het verborgen systeem niet toegankelijk zijn. (Het lokaas systeem moet worden gecodeerd met dezelfde algoritmes als het verborgen systeem.)\n\nNoot: De reden hiervoor is dat beide systemen dezelfde bootloader gebruiken. Een bootloader ondersteunt slechts één algoritmen. (Voor ieder algoritme is er een eigen versie van de bootloader.)</string>
<string lang="nl" key="HIDVOL_PRE_CIPHER_HELP">\n\nDe volume cluster bitmap is gescand en de maximaal mogelijke grootte van het verborgen volume is vastgesteld. In de volgende stap kunt u de opties, de grootte en het wachtwoord voor het verborgen volume bepalen.</string>
<string lang="nl" key="HIDVOL_PRE_CIPHER_TITLE">Verborgen volume</string>
<string lang="nl" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Het verborgen volume is nu beveiligd tegen schade totdat het buiten volume is ontkoppeld.\n\nWAARSCHUWING: Als data wordt geprobeerd te schrijven naar het verborgen volume, zal VeraCrypt schrijf-bescherming instellen voor het gehele volume (zowel het buiten als het verborgen deel) todat het is ontkoppeld. Dit kan beschadiging van gegevens in het buiten volume tot gevolg hebben, wat (indien herhaald) de aannemelijke ontkenbaarheid van het verborgen volume kan aantasten. Gelieve daarom te voorkomen dat er nu geschreven wordt in het verborgen volume gedeelte. Alle gegevens weggeschreven naar het verborgen volume zullen verloren gaan. Windows kan dit rapporteren als een schrijffout ("Uitgestelde schrijfactie mislukt" of "Verkeerde parameter").</string>
@@ -545,7 +546,7 @@
<string lang="en" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">For security reasons, when a hidden operating system is running, hidden volumes can be created only in the 'direct' mode (because outer volumes must always be mounted as read-only). To create a hidden volume securely, follow these steps:\n\n1) Boot the decoy system.\n\n2) Create a normal VeraCrypt volume and, to this volume, copy some sensitive-looking files that you actually do NOT want to hide (the volume will become the outer volume).\n\n3) Boot the hidden system and start the VeraCrypt Volume Creation Wizard. If the volume is file-hosted, move it to the system partition or to another hidden volume (otherwise, the newly created hidden volume would be mounted as read-only and could not be formatted). Follow the instructions in the wizard so as to select the 'direct' hidden volume creation mode.\n\n4) In the wizard, select the volume you created in step 2 and then follow the instructions to create a hidden volume within it.</string>
<string lang="nl" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Wanneer een verborgen operating system draait kunnen locale ongecodeerde bestandssystemen en niet-verborgen VeraCrypt volumes alleen als read-only worden gekoppeld (data schrijven onmogelijk).\n\nData kunnen dan slechts worden geschreven naar bestanden in een verborgen VeraCrypt volume (indien dit verborgen volume NIET is geplaatst in een container in een ongecodeerd bestandssysteem of een read-only bestandssysteem).</string>
<string lang="en" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">There are three main reasons why such countermeasures have been implemented:\n\n- It enables the creation of a secure platform for mounting of hidden VeraCrypt volumes. Note that we officially recommend that hidden volumes are mounted only when a hidden operating system is running. (For more information, see the subsection 'Security Requirements and Precautions Pertaining to Hidden Volumes' in the documentation.)\n\n- In some cases, it is possible to determine that, at a certain time, a particular filesystem was not mounted under (or that a particular file on the filesystem was not saved or accessed from within) a particular instance of an operating system (e.g. by analyzing and comparing filesystem journals, file timestamps, application logs, error logs, etc). This might indicate that a hidden operating system is installed on the computer. The countermeasures prevent these issues.\n\n- It prevents data corruption and allows safe hibernation. When Windows resumes from hibernation, it assumes that all mounted filesystems are in the same state as when the system entered hibernation. VeraCrypt ensures this by write-protecting any filesystem accessible both from within the decoy and hidden systems. Without such protection, the filesystem could become corrupted when mounted by one system while the other system is hibernated.</string>
- <string lang="nl" key="DECOY_TO_HIDDEN_OS_DATA_TRANSFER_HOWTO">Als u veilig bestanden wilt kopiëren van het lokvogel system naar het verborgen systeem, volg dan deze stappen. 1) Start het lokvogel systeem. 2) Sla de bestanden op in een ongecodeerd volume of een normaal/buiten VeraCrypt volume. 3) Start het verborgen systeem. 4) Als u de bestanden op een TryeCrypt volume opsloeg, koppel dit (het wordt automatisch gekoppeld als read-only). 5) Kopieer de bestanden naar de verborgen systeem partitie of een ander verborgen volume.</string>
+ <string lang="nl" key="DECOY_TO_HIDDEN_OS_DATA_TRANSFER_HOWTO">Als u veilig bestanden wilt kopiëren van het lokvogel system naar het verborgen systeem, volg dan deze stappen. 1) Start het lokvogel systeem. 2) Sla de bestanden op in een ongecodeerd volume of een normaal/buiten VeraCrypt volume. 3) Start het verborgen systeem. 4) Als u de bestanden op een TryeCrypt volume opsloeg, koppel dit (het wordt automatisch gekoppeld als read-only). 5) Kopieer de bestanden naar de verborgen systeempartitie of een ander verborgen volume.</string>
<string lang="nl" key="CONFIRM_RESTART">Uw computer moet opnieuw gestart worden.\n\nWilt u nu herstarten?</string>
<string lang="nl" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Er trad een fout op tijdens een poging de systeem codeer status op te halen.</string>
<string lang="nl" key="ERR_PASSWORD_MISSING">Het wachtwoord ontbreekt in de opdrachtregel. Het volume kan niet worden aangemaakt.</string>
@@ -573,12 +574,12 @@
<string lang="nl" key="MOUNT_BUTTON">&amp;Koppel</string>
<string lang="nl" key="NEW_VERSION_REQUIRED">Een nieuwere versie van VeraCrypt is vereist om dit volume te kunnen koppelen.</string>
<string lang="nl" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume aanmaak wizard niet gevonden.\n\nOvertuig u ervan dat het bestand 'VeraCrypt Format.exe' zich in de map bevindt waaruit ook 'VeraCrypt.exe' werd gestart. Als dit niet het geval is, herinstalleer dan VeraCrypt, of zoek 'VeraCrypt Format.exe' op uw schijf en start het.</string>
- <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
+ <string lang="nl" key="VOL_EXPANDER_NOT_FOUND">Fout: Volume Expander niet gevonden.\n\nControleer dat het programma 'VeraCryptExpander.exe' in dezelfde map staat als waar u 'VeraCrypt.exe' start. Als die er niet is, herinstalleer dan VeraCrypt, of zoek 'VeraCryptExpander.exe' zelf op schijf op en start het.</string>
<string lang="nl" key="NEXT">Vol&amp;gende &gt;</string>
<string lang="nl" key="FINALIZE">&amp;Beëindig</string>
<string lang="nl" key="INSTALL">I&amp;nstalleer</string>
<string lang="nl" key="EXTRACT">U&amp;itpakken</string>
- <string lang="nl" key="NODRIVER">Kan geen verbinding maken met het VeraCrypt apparaat stuurprogramma. VeraCrypt kan niet werken als dit stuurprogramma niet gestart is.\n\nDoor de eigenschappen van Windows kan het nodig zijn uit te loggen of het systeem te herstarten voordat het apparaatstuurprogramma kan worden geladen.</string>
+ <string lang="nl" key="NODRIVER">Kan geen verbinding maken met het VeraCrypt apparaatstuurprogramma. VeraCrypt kan niet werken als dit stuurprogramma niet gestart is.\n\nDoor de eigenschappen van Windows kan het nodig zijn uit te loggen of het systeem te herstarten voordat het apparaatstuurprogramma kan worden geladen.</string>
<string lang="nl" key="NOFONT">Error ontstaan tijdens laden/voorbereiden lettertypes.</string>
<string lang="nl" key="NOT_FOUND">De stationsletter is niet gevonden of er is geen stationsletter opgegeven.</string>
<string lang="nl" key="ERR_CANNOT_ASSIGN_DRIVE_LETTER_NONSYS_DEC">FOUT: Kan geen stationsletter toewijzen.\n\nZolang als er géén stationsletter is toegewezen kunt u de opgeslagen data niet benaderen.\n\nOpnieuw proberen?</string>
@@ -589,10 +590,10 @@
<string lang="nl" key="NO_OS_VER">Het was niet mogelijk de versie van uw besturingssysteem te herkennen. Het kan mogelijk zijn dat u een niet-ondersteund besturingssysteem gebruikt.</string>
<string lang="nl" key="NO_PATH_SELECTED">Geen pad geselecteerd!</string>
<string lang="nl" key="NO_SPACE_FOR_HIDDEN_VOL">Niet genoeg ruimte om volume aan te maken! Aanmaken van volume kan niet worden voortgezet.</string>
- <string lang="nl" key="HIDDEN_VOLUME_TOO_SMALL_FOR_OS_CLONE">Fout: De bestanden die u naar buiten volume kopieerde nemen te veel plaats in. Daarom is hier te weinig ruimte overgebleven voor het verborgen volume.\n\nHet verborgen volume dient even groot dient te zijn als de systeem partitie (de partitie waar het nu actieve besturingssysteem (OS) staat). De reden is dat het verborgen OS wordt aangemaakt door de inhoud van de system partitie naar het verborgen volume te kopiëren).\n\n\nAanmaak van verborgen OS gestopt.</string>
+ <string lang="nl" key="HIDDEN_VOLUME_TOO_SMALL_FOR_OS_CLONE">Fout: De bestanden die u naar buiten volume kopieerde nemen te veel plaats in. Daarom is hier te weinig ruimte overgebleven voor het verborgen volume.\n\nHet verborgen volume dient even groot dient te zijn als de systeempartitie (de partitie waar het nu actieve besturingssysteem (OS) staat). De reden is dat het verborgen OS wordt aangemaakt door de inhoud van de systeempartitie naar het verborgen volume te kopiëren).\n\n\nAanmaak van verborgen OS gestopt.</string>
<string lang="nl" key="OPENFILES_DRIVER">Het volume kan niet ontkoppeld worden. Sommige bestanden in het volume zijn waarschijnlijk nog geopend.</string>
<string lang="nl" key="OPENFILES_LOCK">Het was niet mogelijk het volume te locken (exclusief te gebruiken). Er zijn nog bestanden in gebruik op het volume. Daarom kan het volume niet ontkoppeld worden.</string>
- <string lang="nl" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt kan volume niet sluiten omdat het in gebruik is door het systeem of programma’s (er kunnen geopende bestanden op het volume aanwezig zijn).\n\nWilt u ontkoppeling van het volume forceren?</string>
+ <string lang="nl" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt kan volume niet sluiten omdat het in gebruik is door het systeem of programma's (er kunnen geopende bestanden op het volume aanwezig zijn).\n\nWilt u ontkoppeling van het volume forceren?</string>
<string lang="nl" key="OPEN_VOL_TITLE">Selecteer een VeraCrypt volume</string>
<string lang="nl" key="OPEN_TITLE">Geef een Pad en Bestandsnaam op</string>
<string lang="nl" key="SELECT_PKCS11_MODULE">Selecteer PKCS #11 Library</string>
@@ -603,7 +604,7 @@
<string lang="nl" key="NONSYS_INPLACE_ENC_CONFIRM">LET OP: U kunt het volume niet koppelen en hebt dus geen toegang tot de bestanden totdat het coderen klaar is.\n\nWilt u starten met coderen van het geslecteerde %s '%s'%s?</string>
<string lang="nl" key="NONSYS_INPLACE_DEC_CONFIRM">Waarschuwing: U kunt het volume niet koppelen en geen bestanden die zijn opgeslagen benaderen totdat het systeem is gedecodeerd.\n\nWeet u zeker dat u wilt starten met het decoderen van de geselecteerde %s '%s'%s?</string>
<string lang="nl" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">LET OP: Indien de spanning onderbroken wordt, of het besturingssysteem loopt onverhoopt vast door een soft/hardware fout tijdens de Op-De-Plaats Codering, dan kan hierdoor data verminkt raken of verloren gaan! Wij raden u daarom aan alvorens het coderen te starten, een deugdelijke back-up van de te coderen data te maken.\n\nHeeft u een back-up gemaakt?</string>
- <string lang="nl" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">VOORZICHTIG: ALLE BESTANDEN OP DE PARTITIE '%s'%s (DE EERSTE PARTITIE ACHTER DE SYSTEEM PARTITIE) WORDEN GEWIST (ZE WORDEN NIET GECODEERD)!\n\nBent u er zeker van dat u wilt formatteren?</string>
+ <string lang="nl" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">VOORZICHTIG: ALLE BESTANDEN OP DE PARTITIE '%s'%s (DE EERSTE PARTITIE ACHTER DE SYSTEEMPARTITIE) WORDEN GEWIST (ZE WORDEN NIET GECODEERD)!\n\nBent u er zeker van dat u wilt formatteren?</string>
<string lang="nl" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">WAARSCHUWING! DE GESELECTEERDE PARTITIE BEVAT VEEL DATA! Alle bestanden op deze partitie zullen worden gewist (ze worden NIET gecodeerd)!</string>
<string lang="nl" key="ERASE_FILES_BY_CREATING_VOLUME">Wis alle bestanden op de partitie door er een VeraCrypt volume aan te maken</string>
<string lang="nl" key="PASSWORD">Wachtwoord</string>
@@ -611,24 +612,24 @@
<string lang="nl" key="IDD_PCDM_CHANGE_PKCS5_PRF">Creëer Header Key Afwijkingsalgoritme</string>
<string lang="nl" key="IDD_PCDM_ADD_REMOVE_VOL_KEYFILES">Toevoegen/Verwijderen sleutelbestanden aan/van volume</string>
<string lang="nl" key="IDD_PCDM_REMOVE_ALL_KEYFILES_FROM_VOL">Verwijder alle sleutelbestanden van volume</string>
- <string lang="en" key="PASSWORD_CHANGED">Password, PIM and/or keyfile(s) successfully changed.\n\nIMPORTANT: Please make sure you have read the section 'Changing Passwords and Keyfiles' in the chapter 'Security Requirements and Precautions' in the VeraCrypt User Guide.</string>
+ <string lang="nl" key="PASSWORD_CHANGED">Wachtwoord, PIM en/of sleutelbestand(en)zijn succesvol gewijzigd.\n\nBELANGRIJK: Lees in de VeraCrypt gebruikersgids de aantekeningen in het gedeelte over 'Changing Passwords and Keyfiles' in het hoofdstuk 'Security Requirements and Precautions'.</string>
<string lang="en" key="FAVORITE_PIM_CHANGED">This volume is registered as a System Favorite and its PIM was changed.\nDo you want VeraCrypt to automatically update the System Favorite configuration (administrator privileges required)?\n\nPlease note that if you answer no, you'll have to update the System Favorite manually.</string>
- <string lang="nl" key="SYS_PASSWORD_CHANGED_ASK_RESCUE_DISK">BELANGRIJK: Als u uw VeraCrypt Reddingsschijf nog heeft, kan uw systeempartitie/schijf nog gedecodeerd worden met het oude wachtwoord (door op te starten met deze Reddingsschijf en het oude wachtwoord in te geven.) U dient een nieuwe Reddingsschijf aan te maken en dan de oude te vernietigen.\n\nWilt u een nieuwe Reddingsschijf maken?</string>
- <string lang="nl" key="SYS_HKD_ALGO_CHANGED_ASK_RESCUE_DISK">Merk op dat uw VeraCrypt Reddingsschijf nog steeds het vorige algoritme gebruikt. Als u het vorige algoritme als onveilig beschouwt, maak dan een nieuwe VeraCrypt Reddingsschijf aan en vernietig daarna de oude.\n\nWilt u een nieuwe VeraCrypt Reddingsschijf aanmaken?</string>
+ <string lang="nl" key="SYS_PASSWORD_CHANGED_ASK_RESCUE_DISK">BELANGRIJK: Als u uw VeraCrypt herstelschijf nog heeft, kan uw systeempartitie/schijf nog gedecodeerd worden met het oude wachtwoord (door op te starten met deze herstelschijf en het oude wachtwoord in te geven.) U dient een nieuwe herstelschijf aan te maken en dan de oude te vernietigen.\n\nWilt u een nieuwe herstelschijf maken?</string>
+ <string lang="nl" key="SYS_HKD_ALGO_CHANGED_ASK_RESCUE_DISK">Merk op dat uw VeraCrypt herstelschijf nog steeds het vorige algoritme gebruikt. Als u het vorige algoritme als onveilig beschouwt, maak dan een nieuwe VeraCrypt herstelschijf aan en vernietig daarna de oude.\n\nWilt u een nieuwe VeraCrypt herstelschijf aanmaken?</string>
<string lang="en" key="KEYFILES_NOTE">Any kind of file (for example, .mp3, .jpg, .zip, .avi) may be used as a VeraCrypt keyfile. Note that VeraCrypt never modifies the keyfile contents. You can select more than one keyfile (the order does not matter). If you add a folder, all non-hidden files found in it will be used as keyfiles. Click 'Add Token Files' to select keyfiles stored on security tokens or smart cards (or to import keyfiles to security tokens or smart cards).</string>
<string lang="nl" key="KEYFILE_CHANGED">Sleutelbestand(en) succesvol toegevoegd/verwijderd.</string>
<string lang="nl" key="KEYFILE_EXPORTED">Sleutelbestand geëxporteerd.</string>
<string lang="nl" key="PKCS5_PRF_CHANGED">Header Key afleidingsalgoritme succesvol gecreëerd.</string>
- <string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Geef a.u.b. wachtwoord en/of sleutelbestand(en) voor het niet-systeem volume waarvan u de Op-De-Plaats coderings wilt hervatten.\n\nNadat u op Volgende heeft gedrukt, zal VeraCrypt proberen alle niet-systeemvolumes te vinden waarvan de codering is onderbroken en waarop het verstrekte wachtwoord en/of de sleutelbestand(en) van toepassing zijn. Indien meer dan één zo’n volume wordt gevonden, dient u het juiste in de volgende stap te selecteren.</string>
+ <string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Geef a.u.b. wachtwoord en/of sleutelbestand(en) voor het niet-systeem volume waarvan u de Op-De-Plaats coderings wilt hervatten.\n\nNadat u op Volgende heeft gedrukt, zal VeraCrypt proberen alle niet-systeemvolumes te vinden waarvan de codering is onderbroken en waarop het verstrekte wachtwoord en/of de sleutelbestand(en) van toepassing zijn. Indien meer dan één zo'n volume wordt gevonden, dient u het juiste in de volgende stap te selecteren.</string>
<string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Selecteer a.u.b. een van de getoonde volumes. De lijst bevat ieder toegankelijk niet-syteem volume waarvan de codering is onderbroken en waarop het verstrekte wachtwoord en/of sleutelbestand(en) van toepassing zijn.</string>
<string lang="nl" key="NONSYS_INPLACE_DEC_PASSWORD_PAGE_HELP">Voer het wachtwoord en/of sleutelbestand(en) in voor het VerCrypt niet-systeem volume die u wilt decoderen.</string>
<string lang="nl" key="PASSWORD_HELP">Het is erg belangrijk dat u een goed wachtwoord kiest. U dient een wachtwoord te vermijden dat bestaat uit een of meerdere woorden die kunnen worden teruggevonden in een woordenboek. Ook moeten eigennamen en geboortedata vermeden worden, evenmin mag het makkelijk te raden zijn. We raden u dringend een willekeurige combinatie van hoofd- en kleine letters, nummers en speciale karakters (zoals @ ^ = $ * +) aan. Het is heel belangrijk dat het meer dan 20 karakters telt (hoe langer hoe beter). The maximaal mogelijke lengte is 64 karakters.</string>
<string lang="nl" key="PASSWORD_HIDDENVOL_HELP">Kies een wachtwoord voor het verborgen volume. </string>
<string lang="nl" key="PASSWORD_HIDDEN_OS_HELP">Kies een wachtwoord voor het verborgen besturingssysteem (d.w.z. verborgen volume). </string>
- <string lang="nl" key="PASSWORD_HIDDEN_OS_NOTE">BELANGRIJK: Het wachtwoord dat u in deze stap koos voor het verborgen besturingssysteem dient flink verschillend te zijn van de andere twee wachtwoorden (de wachtwoorden voor het buitenvolume en voor het lokvogel besturingssysteem).</string>
- <string lang="nl" key="PASSWORD_HIDDENVOL_HOST_DIRECT_HELP">Kies hier een wachtwoord voor het buitenvolume waarin u een verborgen volume wilt aanmaken.\n\nNadat u op Volgende hebt gedrukt, zal VeraCrypt proberen het volume te koppelen. Zodra dit is gebeurd zal de cluster bitmap van het volume worden gescand om de grootte van het aaneengesloten stuk vrije ruimte te bepalen (indien aanwezig) waarvan het einde samenvalt met het buiten volume. Deze ruimte zal het verborgen volume huisvesten en daarmee meteen de maximale grootte ervan beperken. De Cluster map scan is nodig om ervan te verzekeren dat geen data op het buiten volume zullen worden overschreven door het verborgen volume.</string>
+ <string lang="nl" key="PASSWORD_HIDDEN_OS_NOTE">BELANGRIJK: Het wachtwoord dat u in deze stap koos voor het verborgen besturingssysteem dient flink verschillend te zijn van de andere twee wachtwoorden (de wachtwoorden voor het buiten volume en voor het lokvogel besturingssysteem).</string>
+ <string lang="nl" key="PASSWORD_HIDDENVOL_HOST_DIRECT_HELP">Kies hier een wachtwoord voor het buiten volume waarin u een verborgen volume wilt aanmaken.\n\nNadat u op Volgende hebt gedrukt, zal VeraCrypt proberen het volume te koppelen. Zodra dit is gebeurd zal de cluster bitmap van het volume worden gescand om de grootte van het aaneengesloten stuk vrije ruimte te bepalen (indien aanwezig) waarvan het einde samenvalt met het buiten volume. Deze ruimte zal het verborgen volume huisvesten en daarmee meteen de maximale grootte ervan beperken. De Cluster map scan is nodig om ervan te verzekeren dat geen data op het buiten volume zullen worden overschreven door het verborgen volume.</string>
<string lang="nl" key="PASSWORD_HIDDENVOL_HOST_HELP">\nKiest u a.u.b. een wachtwoord voor het buiten volume. Dit wachtwoord kunt u onthullen aan een evt. vijand indien deze u geen andere keuze laat.\n\nBELANGRIJK: Dit wachtwoord dient verschillend te zijn van het wachtwoord dat u later zult gaan kiezen voor het verborgen binnen volume.\n\nNoot: De maximaal mogelijke lengte voor een wachtwoord is 64 karakters.</string>
- <string lang="nl" key="PASSWORD_SYSENC_OUTERVOL_HELP">Kies a.u.b. een wachtwoord voor het buiten volume. Dit wachtwoord zult u kunnen onthullen aan eenieder die u dwingt de toegang kenbaar te maken tot de eerste partitie achter de systeem partitie, waar zowel een buitenvolume en een verborgen volume (met het verborgen besturingssysteem (OS)) in aanwezig zijn. Het verborgen volume en dus het verborgen OS zullen dan geheim blijven. Merk op dat dit wachtwoord niet dient voor het lokvogel OS.\n\nBELANGRIJK: Het wachtwoord dient flink te verschillen van hetgeen u kiest voor het verborgen volume (d.w.z. het verborgen OS).</string>
+ <string lang="nl" key="PASSWORD_SYSENC_OUTERVOL_HELP">Kies a.u.b. een wachtwoord voor het buiten volume. Dit wachtwoord zult u kunnen onthullen aan eenieder die u dwingt de toegang kenbaar te maken tot de eerste partitie achter de systeempartitie, waar zowel een buiten volume en een verborgen volume (met het verborgen besturingssysteem (OS)) in aanwezig zijn. Het verborgen volume en dus het verborgen OS zullen dan geheim blijven. Merk op dat dit wachtwoord niet dient voor het lokvogel OS.\n\nBELANGRIJK: Het wachtwoord dient flink te verschillen van hetgeen u kiest voor het verborgen volume (d.w.z. het verborgen OS).</string>
<string lang="nl" key="PASSWORD_HIDVOL_HOST_TITLE">Buiten volumewachtwoord</string>
<string lang="nl" key="PASSWORD_HIDVOL_TITLE">Verborgen volumewachtwoord</string>
<string lang="nl" key="PASSWORD_HIDDEN_OS_TITLE">Wachtwoord voor verborgen besturingssysteem</string>
@@ -654,17 +655,17 @@
<string lang="nl" key="PIM_TITLE">PIM volume</string>
<string lang="en" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nWARNING: Hidden file(s) have been found in a keyfile search path. Such hidden files cannot be used as keyfiles. If you need to use them as keyfiles, remove their 'Hidden' attribute (right-click each of them, select 'Properties', uncheck 'Hidden' and click OK). Note: Hidden files are visible only if the corresponding option is enabled (Computer > Organize > 'Folder and search options' > View).</string>
<string lang="nl" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">Indien u de bescherming instelt voor een verborgen volume met daarin een verborgen system, gebruik dan de standaard US toetsenbord layout bij het typen van het wachtwoord voor het verborgen volume. Dit is noodzakelijk omdat het wachtwoord in de pre boot omgeving (voordat Windows start) moet worden ingegeven waar niet-US toetsenbord layouts NIET beschikbaar zijn.</string>
- <string lang="nl" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">VeraCrypt vond geen volume waarop niet-systeemcodering werd onderbroken en waarop het verstrekte wachtwoord en/of sleutelbestanden(en) van toepassing zijn.\n\nControleer of het ingegeven wachtwoord en/of sleutelbestand(en) juist zijn en of de partitie/volume niet gebruikt wordt door het systeem of programma’s (bijv. een antivirus programma).</string>
+ <string lang="nl" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">VeraCrypt vond geen volume waarop niet-systeemcodering werd onderbroken en waarop het verstrekte wachtwoord en/of sleutelbestanden(en) van toepassing zijn.\n\nControleer of het ingegeven wachtwoord en/of sleutelbestand(en) juist zijn en of de partitie/volume niet gebruikt wordt door het systeem of programma's (bijv. een antivirus programma).</string>
<string lang="nl" key="SELECTED_PARTITION_ALREADY_INPLACE_ENC">De geselecteerde partitie/apparaat is al volledig gecodeerd.\nHeader vlag = 0x%.8X</string>
<string lang="en" key="SELECTED_PARTITION_NOT_INPLACE_ENC">The selected partition/device is not using in-place encryption.\nHeader Flags = 0x%.8X</string>
- <string lang="nl" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nNoot: Als u probeert een partitie te koppelen die is gelegen op een systeem schijf zonder pre-boot authenticatie of probeert de gecodeerde system partitie te koppelen van een besturingssysteem dat niet draait, dan doet u dit door te selecteren 'Systeem' &gt; 'Koppel Zonder Pre-Boot Authenticatie'.</string>
+ <string lang="nl" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nNoot: Als u probeert een partitie te koppelen die is gelegen op een systeemschijf zonder pre-boot authenticatie of probeert de gecodeerde systeempartitie te koppelen van een besturingssysteem dat niet draait, dan doet u dit door te selecteren 'Systeem' &gt; 'Koppel Zonder Pre-Boot Authenticatie'.</string>
<string lang="nl" key="MOUNT_WITHOUT_PBA_VOL_ON_ACTIVE_SYSENC_DRIVE">In deze modus kunt u geen partitie koppelen die aanwezig is op een schijf die momenteel actief gecodeerd wordt.\n\nVoordat u deze partitie kunt koppelen in deze modus, dient u op te starten met een besturingssysteem vanaf een andere schijf (gecodeerd of ongecodeerd) òf op te starten met een ongecodeerd besturingssysteem.</string>
<string lang="en" key="CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE">VeraCrypt cannot decrypt an individual partition on an entirely encrypted system drive (you can decrypt only the entire system drive).</string>
<string lang="en" key="CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE_UNSURE">Warning: As the drive contains the VeraCrypt Boot Loader, it may be an entirely encrypted system drive. If it is, please note that VeraCrypt cannot decrypt an individual partition on an entirely encrypted system drive (you can decrypt only the entire system drive). If that is the case, you will be able to continue now but you will receive the 'Incorrect password' error message later.</string>
<string lang="nl" key="PREV">&lt; &amp;Terug</string>
<string lang="nl" key="RAWDEVICES">Niet in staat om een lijst te maken van de ongebruikte stukken harddisk (raw devices) op uw systeem!</string>
<string lang="nl" key="READONLYPROMPT">Het volume '%s' bestaat, en is geregistreerd voor alleen-lezen. Bent u er zeker van dat u het wilt vervangen?</string>
- <string lang="nl" key="SELECT_DEST_DIR">Selecteer bestemmingsdirectory</string>
+ <string lang="nl" key="SELECT_DEST_DIR">Selecteer bestemmingsmap</string>
<string lang="nl" key="SELECT_KEYFILE">Selecteer sleutelbestand</string>
<string lang="nl" key="SELECT_KEYFILE_PATH">Selecteer een sleutelbestand zoekpad. WAARSCHUWING: Alleen het pad wordt onthouden, niet de bestandsnamen!</string>
<string lang="nl" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Selecteer een map om de sleutelbestanden op te slaan.</string>
@@ -676,7 +677,7 @@
<string lang="nl" key="SIZE_HIDVOL_HOST_TITLE">Buiten volumegrootte</string>
<string lang="nl" key="SIZE_HIDVOL_TITLE">Verborgen volumegrootte</string>
<string lang="nl" key="SIZE_PARTITION_HELP">Controleer a.u.b. of de grootte van het door u opgegeven apparaat/partitie die hierboven staat correct is en klik dan op Volgende.</string>
- <string lang="nl" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Het buiten én verborgen volume (met het verborgen besturingssysteem) zullen te vinden zijn in bovenvermelde partitie. Dit zou de eerste partitie moeten zijn ná de systeem partitie.\n\nControleer of de grootte van de partitie en het nummer ervan correct zijn en als dit zo is, klik op Volgende.</string>
+ <string lang="nl" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Het buiten én verborgen volume (met het verborgen besturingssysteem) zullen te vinden zijn in bovenvermelde partitie. Dit zou de eerste partitie moeten zijn ná de systeempartitie.\n\nControleer of de grootte van de partitie en het nummer ervan correct zijn en als dit zo is, klik op Volgende.</string>
<string lang="nl" key="SIZE_PARTITION_HIDDEN_VOL_HELP">\n\nLet op dat de minimale grootte van een volume waarin een verborgen volume moet worden aangemaakt 340 Kb is.</string>
<string lang="nl" key="SIZE_TITLE">Volumegrootte</string>
<string lang="nl" key="SPARSE_FILE">Dynamisch</string>
@@ -749,14 +750,14 @@
<string lang="en" key="HIDDEN_VOL_HOST_SPARSE">Hidden volumes must not be created within dynamic (sparse file) containers. To achieve plausible deniability, the hidden volume needs to be created within a non-dynamic container.</string>
<string lang="nl" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">De VeraCrypt volume aanmaak wizard kan een verborgen volume alleen aanmaken binnen een FAT of NTFS volume.</string>
<string lang="nl" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS_WIN2000">Onder Windows 2000 kan de VeraCrypt volume aanmaak wizard alleen maar een verborgen volume aanmaken binnen een FAT volume.</string>
- <string lang="nl" key="HIDDEN_VOL_HOST_NTFS">Noot: Het FAT bestandssysteem is meer geschikt voor buitenvolumes dan het NTFS bestandssysteem. (De maximum grootte van het verborgen volume zal bijv. veel groter zijn als het buitenvolume geformatteerd is onder FAT).</string>
- <string lang="nl" key="HIDDEN_VOL_HOST_NTFS_ASK">Merk op dat het FAT bestandssysteem geschikter is voor buitenvolumes dan het NTFS systeem. De maximum grootte van het verborgen volume zal waarschijnlijk veel groter zijn als het buitenvolume geformatteerd is onder FAT. De reden hiervoor is dat het NTFS systeem zijn meta-data altijd opslaat in het midden van het volume en dat daarom het verborgen volume alleen hierachter kan worden aan gemaakt.\n\nBent u er zeker van dat u het buitenvolume wilt formatteren als NTFS?</string>
+ <string lang="nl" key="HIDDEN_VOL_HOST_NTFS">Noot: Het FAT bestandssysteem is meer geschikt voor buiten volumes dan het NTFS bestandssysteem. (De maximum grootte van het verborgen volume zal bijv. veel groter zijn als het buiten volume geformatteerd is onder FAT).</string>
+ <string lang="nl" key="HIDDEN_VOL_HOST_NTFS_ASK">Merk op dat het FAT bestandssysteem geschikter is voor buiten volumes dan het NTFS systeem. De maximum grootte van het verborgen volume zal waarschijnlijk veel groter zijn als het buiten volume geformatteerd is onder FAT. De reden hiervoor is dat het NTFS systeem zijn meta-data altijd opslaat in het midden van het volume en dat daarom het verborgen volume alleen hierachter kan worden aan gemaakt.\n\nBent u er zeker van dat u het buiten volume wilt formatteren als NTFS?</string>
<string lang="nl" key="OFFER_FAT_FORMAT_ALTERNATIVE">Wilt u het volume formatteren als FAT?</string>
<string lang="nl" key="FAT_NOT_AVAILABLE_FOR_SO_LARGE_VOLUME">Let op: Dit volume kunt u niet formatteren als FAT, want het is groter dan de maximum volumegrootte welke het FAT32 bestandssysteem ondersteunt. Toegestane sectorgrootten (2 TB voor 512-byte sectoren en 16 TB voor 4096-byte sectoren).</string>
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS">Fout: De partitie voor het verborgen besturingssysteem (OS) (dit is de eerste partitie achter de systeempartitie) moet minstens 5% groter zijn dan de systeempartitie (dit is de partitie waarop het nu actieve OS staat).</string>
- <string lang="nl" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: De partitie voor het verborgen besturingssysteem (dit is de eerste partitie achter de system partitie) moet minstens 110% (2.1 maal) groter zijn dan de systeem partitie (dit is de partitie waarop het besturingssysteem staat dat nu draait). De reden is dat het NTFS bestandssysteem haar meta-data altijd precies in het midden van het volume opslaat en dat daardoor het verborgen volume, dat een kloon is van de systeempartitie, alleen maar een plekje kan vinden in de tweede helft van de partitie).</string>
- <string lang="nl" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: als het buiten volume is geformatteerd als NTFS, moet het minstens 110% (2.1 maal) groter zijn dan de systeem partitie. De reden is dat het NTFS systeem haar meta- data precies in het midden van het volume opslaat en dat daardoor het verborgen volume (waarin een kloon van de systeem partitie moet passen) slechts op de tweede helft van het buitenvolume kan staan.\n\nNoot: Het buitenvolume dient op dezelfde partitie te staan als het verborgen besturingssysteem (de eerste partitie na de systeem partitie).</string>
- <string lang="nl" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Fout: Er bevindt zich geen partitie na de systeem partitie.\n\nMerk op dat u, voor de aanmaak van het verborgen besturingssysteem, eerst een partitie op de systeemschijf dient aan te maken. Deze partitie moet de éérste partitie zijn na de systeem partitie en moet minstens 5% groter zijn dan de systeem partitie (dit is de partitie waar het besturingssysteem staat dat nu draait). Echter, als het buitenvolume (niet te verwarren met de systeem partitie) als NTFS wordt geformatteerd, moet de partitie voor het verborgen besturingssysteem minstens (let op!) 110% (2.1 maal) groter zijn dan de systeem partitie (de reden hiervoor is dat het NTFS bestands systeem haar meta-data altijd opslaat precies in het midden van het volume, hierdoor kan het verborgen volume, waarin een kloon van de systeem partitie moet passen, slechts op de tweede helft van de partitie staan).</string>
+ <string lang="nl" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: De partitie voor het verborgen besturingssysteem (dit is de eerste partitie achter de systeempartitie) moet minstens 110% (2.1 maal) groter zijn dan de systeempartitie (dit is de partitie waarop het besturingssysteem staat dat nu draait). De reden is dat het NTFS bestandssysteem haar meta-data altijd precies in het midden van het volume opslaat en dat daardoor het verborgen volume, dat een kloon is van de systeempartitie, alleen maar een plekje kan vinden in de tweede helft van de partitie).</string>
+ <string lang="nl" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: als het buiten volume is geformatteerd als NTFS, moet het minstens 110% (2.1 maal) groter zijn dan de systeempartitie. De reden is dat het NTFS systeem haar meta- data precies in het midden van het volume opslaat en dat daardoor het verborgen volume (waarin een kloon van de systeempartitie moet passen) slechts op de tweede helft van het buiten volume kan staan.\n\nNoot: Het buiten volume dient op dezelfde partitie te staan als het verborgen besturingssysteem (de eerste partitie na de systeempartitie).</string>
+ <string lang="nl" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Fout: Er bevindt zich geen partitie na de systeempartitie.\n\nMerk op dat u, voor de aanmaak van het verborgen besturingssysteem, eerst een partitie op de systeemschijf dient aan te maken. Deze partitie moet de éérste partitie zijn na de systeempartitie en moet minstens 5% groter zijn dan de systeempartitie (dit is de partitie waar het besturingssysteem staat dat nu draait). Echter, als het buiten volume (niet te verwarren met de systeempartitie) als NTFS wordt geformatteerd, moet de partitie voor het verborgen besturingssysteem minstens (let op!) 110% (2.1 maal) groter zijn dan de systeempartitie (de reden hiervoor is dat het NTFS bestands systeem haar meta-data altijd opslaat precies in het midden van het volume, hierdoor kan het verborgen volume, waarin een kloon van de systeempartitie moet passen, slechts op de tweede helft van de partitie staan).</string>
<string lang="nl" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Opmerking: Het is niet praktisch (wordt niet ondersteunt) besturingssystemen te installeren in twee TryeCrypt volumes binnen één partitie, omdat het gebruik van het buitenste systeem vaak data schrijven tot gevolg heeft in het gebied van het verborgen besturingssysteem. Als zulke schrijfacties worden gestopt door het gebruik van verborgen volume bescherming, zou dit zeker een crash tot gevolg hebben (een Blauw Scherm).</string>
<string lang="nl" key="FOR_MORE_INFO_ON_PARTITIONS">Voor informatie over het maken en beheren van een partitie kunt u zich wenden tot de documentatie bij uw besturingssysteem of neem contact op met de technische helpdesk van uw computerverkoper.</string>
<string lang="nl" key="SYSTEM_PARTITION_NOT_ACTIVE">Fout: Het nu actieve besturingssysteem staat niet op de boot partitie (eerste Actieve partitie). Dit wordt niet ondersteunt.</string>
@@ -768,8 +769,8 @@
<string lang="nl" key="VOL_CONTAINS_A_HIDDEN_VOL">Deze volume bevat een verborgen volume. Afbreken.</string>
<string lang="nl" key="CANT_ACCESS_VOL">Fout: Toegang tot volume niet mogelijk!\n\nControleer of het geselecteerde volume bestaat, dat het niet is gekoppeld of wordt gebruikt door het systeem of een ander programma, dat er lees en schrijfbevoegdheid aanwezig is voor het volume, en dat het niet beschermd is tegen schrijven.</string>
<string lang="nl" key="CANT_GET_VOL_INFO">Fout: Kan geen volume eigenschappen verkrijgen.</string>
- <string lang="nl" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL">Fout: Het is onmogelijk toegang tot het volume te krijgen of er informatie over te verkrijgen.\n\nOvertuig u ervan dat dit volume bestaat, dat het niet wordt gebruikt door het systeem of programma’s, dat u lees/schrijf toegang ertoe hebt en dat het niet schrijf beveiligd is.</string>
- <string lang="nl" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Fout: Het is onmogelijk toegang tot het volume te krijgen of er informatie over te verkrijgen.\n\nOvertuig u ervan dat dit volume bestaat, dat het niet wordt gebruikt door het systeem of programma’s, dat u lees/schrijf toegang ertoe hebt en dat het niet schrijf beveiligd is.\n\nIndien dit probleem blijft bestaan, volg evt. de volgende stappen.</string>
+ <string lang="nl" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL">Fout: Het is onmogelijk toegang tot het volume te krijgen of er informatie over te verkrijgen.\n\nOvertuig u ervan dat dit volume bestaat, dat het niet wordt gebruikt door het systeem of programma's, dat u lees/schrijf toegang ertoe hebt en dat het niet schrijf beveiligd is.</string>
+ <string lang="nl" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Fout: Het is onmogelijk toegang tot het volume te krijgen of er informatie over te verkrijgen.\n\nOvertuig u ervan dat dit volume bestaat, dat het niet wordt gebruikt door het systeem of programma's, dat u lees/schrijf toegang ertoe hebt en dat het niet schrijf beveiligd is.\n\nIndien dit probleem blijft bestaan, volg evt. de volgende stappen.</string>
<string lang="nl" key="INPLACE_ENC_GENERIC_ERR_ALT_STEPS">Een fout verhinderde VeraCrypt de partitie te coderen. Los evt. eerder gerapporteerde fouten op en probeer het dan opnieuw. Als het probleem blijft bestaan probeer dan de volgende stappen.</string>
<string lang="nl" key="INPLACE_ENC_GENERIC_ERR_RESUME">Een fout verhinderde VeraCrypt het codering proces van de partitie te hervatten.\n\nLos evt. eerder gerapporteerde fouten op en probeer het proces dan te hervatten. Noot: het volume kan niet gekoppeld worden tenzij het volledig gecodeerd is.</string>
<string lang="nl" key="INPLACE_DEC_GENERIC_ERR">Een fout verhinderde VeraCrypt om het volume te decoderen. Probeer eerder gemelde problemen te verhelpen en (indien mogelijk) probeer het dan opnieuw.</string>
@@ -799,7 +800,7 @@
<string lang="nl" key="SYSTEM_VOLUME_TYPE_ADJECTIVE">Systeem</string>
<string lang="nl" key="TYPE_HIDDEN_SYSTEM_ADJECTIVE">Verborgen (systeem)</string>
<string lang="nl" key="READ_ONLY">Alleen-Lezen</string>
- <string lang="nl" key="SYSTEM_DRIVE">Systeem schijf</string>
+ <string lang="nl" key="SYSTEM_DRIVE">Systeemschijf</string>
<string lang="nl" key="SYSTEM_DRIVE_ENCRYPTING">Systeemschijf (coderen - %.2f%% gereed)</string>
<string lang="nl" key="SYSTEM_DRIVE_DECRYPTING">Systeemschijf (decoderen - %.2f%% gereed)</string>
<string lang="nl" key="SYSTEM_DRIVE_PARTIALLY_ENCRYPTED">Systeemschijf (%.2f%% gecodeerd)</string>
@@ -822,7 +823,7 @@
<string lang="nl" key="VOLUME_HEADER_DAYS"> (%I64d dagen geleden)</string>
<string lang="nl" key="VOLUME_FORMAT_VERSION">Volume formaatversie</string>
<string lang="nl" key="BACKUP_HEADER">Embedded back-up header</string>
- <string lang="nl" key="VC_BOOT_LOADER_VERSION">VeraCrypt bootlader versie</string>
+ <string lang="nl" key="VC_BOOT_LOADER_VERSION">VeraCrypt bootloader versie</string>
<string lang="nl" key="FIRST_AVAILABLE">eerst beschikbare</string>
<string lang="nl" key="REMOVABLE_DISK">Verwisselbare schijf</string>
<string lang="nl" key="HARDDISK">Harde schijf</string>
@@ -832,7 +833,7 @@
<string lang="nl" key="SETUP_MODE_INFO">Selecteer een van de modi. Als u niet zeker bent welke te kiezen, neem de standaard modus.</string>
<string lang="nl" key="SETUP_MODE_HELP_INSTALL">Selecteer deze optie als u VeraCrypt op dit systeem wilt installeren.</string>
<string lang="en" key="SETUP_MODE_HELP_UPGRADE">Note: You can upgrade without decrypting even if the system partition/drive is encrypted or you use a hidden operating system.</string>
- <string lang="en" key="SETUP_MODE_HELP_EXTRACT">If you select this option, all files will be extracted from this package but nothing will be installed on the system. Do not select it if you intend to encrypt the system partition or system drive. Selecting this option can be useful, for example, if you want to run VeraCrypt in so-called portable mode. VeraCrypt does not have to be installed on the operating system under which it is run. After all files are extracted, you can directly run the extracted file 'VeraCrypt.exe' (then VeraCrypt will run in portable mode).</string>
+ <string lang="nl" key="SETUP_MODE_HELP_EXTRACT">Als u deze optie kiest worden alle bestanden uitgepakt, maar word er niets op het systeem geïnstalleerd. Kies dit niet als u een systeempartitie of systeemstation wilt coderen. Keuze van deze optie kan handig zijn als u bijvoorbeeld VeraCrypt in de zogenaamde portable modus wilt starten. VeraCrypt hoeft niet te worden geïnstalleerd op het besturingssysteem waarop het wordt uitgevoerd. Nadat alle bestanden zijn uitgepakt kunt u direct het bestand 'VeraCrypt.exe' starten (VeraCrypt start dan in portable modus).</string>
<string lang="nl" key="SETUP_OPTIONS_TITLE">Setup Opties</string>
<string lang="nl" key="SETUP_OPTIONS_INFO">Hier kunt u verschillende opties instellen om het installatieproces te controleren.</string>
<string lang="nl" key="SETUP_PROGRESS_TITLE">Installeren</string>
@@ -846,18 +847,18 @@
<string lang="nl" key="EXTRACTION_FINISHED_TITLE_DON">De bestanden zijn succesvol uitgepakt</string>
<string lang="nl" key="EXTRACTION_FINISHED_INFO">Alle bestanden zijn succesvol uitgepakt naar de bestemmingslocatie.</string>
<string lang="nl" key="AUTO_FOLDER_CREATION">Als de opgegeven map niet bestaat, wordt deze automatisch aangemaakt.</string>
- <string lang="en" key="SETUP_UPGRADE_DESTINATION">The VeraCrypt program files will be upgraded in the location where VeraCrypt is installed. If you need to select a different location, please uninstall VeraCrypt first.</string>
+ <string lang="nl" key="SETUP_UPGRADE_DESTINATION">De VeraCrypt programmabestanden worden geüpgradet in de map waar VeraCrypt is geïnstalleerd. Als u een andere locatie/map wilt gebruiken moet u VeraCrypt eerst deïnstalleren.</string>
<string lang="nl" key="AFTER_UPGRADE_RELEASE_NOTES">Wilt u release notes zien voor de huidige (laatste stabiele) versie van VeraCrypt?</string>
<string lang="nl" key="AFTER_INSTALL_TUTORIAL">Als u nog nooit eerder VeraCrypt heeft gebruikt, raden we u aan het hoofdstuk Beginner's Tutorial in de VeraCrypt Gebruikershandleiding te lezen. Wilt u deze tutorial zien?</string>
<string lang="nl" key="SELECT_AN_ACTION">Wilt u a.u.b. een van de volgende te verrichten acties selecteren:</string>
<string lang="nl" key="REPAIR_REINSTALL">Repareer/Herinstalleer</string>
<string lang="nl" key="UPGRADE">Upgrade</string>
- <string lang="nl" key="UNINSTALL">Deïnstalleer</string>
- <string lang="nl" key="SETUP_ADMIN">Om VeraCrypt succesvol te kunnen de/installeren dient u administrator rechten te hebben. Wilt u doorgaan?</string>
+ <string lang="nl" key="UNINSTALL">De-installeren</string>
+ <string lang="nl" key="SETUP_ADMIN">Om VeraCrypt succesvol te kunnen de/installeren dient u administratorrechten te hebben. Wilt u doorgaan?</string>
<string lang="nl" key="TC_INSTALLER_IS_RUNNING">De VeraCrypt Installer verzorgt op dit systeem op dit moment een installatie of update van VeraCrypt. Alvorens verder te gaan, wacht totdat deze is beëindigd of afgesloten. Indien afsluiten niet lukt, herstart dan de computer alvorens verder te gaan.</string>
<string lang="nl" key="INSTALL_FAILED">Installatie mislukt.</string>
- <string lang="nl" key="UNINSTALL_FAILED">Deïnstallatie mislukt.</string>
- <string lang="nl" key="DIST_PACKAGE_CORRUPTED">Dit installatiebestand is beschadigd. Wilt u het a.u.b. opnieuw downloaden (bij voorkeur van de officiële VeraCrypt website op https://veracrypt.codeplex.com).</string>
+ <string lang="nl" key="UNINSTALL_FAILED">De-installatie mislukt.</string>
+ <string lang="nl" key="DIST_PACKAGE_CORRUPTED">Dit installatiebestand is beschadigd. Wilt u het a.u.b. opnieuw downloaden (bij voorkeur van de officiële VeraCrypt website op https://www.veracrypt.fr).</string>
<string lang="nl" key="CANNOT_WRITE_FILE_X">Kan niet schrijven bestand %s</string>
<string lang="nl" key="EXTRACTING_VERB">Uitpakken</string>
<string lang="nl" key="CANNOT_READ_FROM_PACKAGE">Kan geen data lezen in het installatiebestand.</string>
@@ -868,7 +869,7 @@
<string lang="nl" key="SETUP_UPDATE_OK">Update van VeraCrypt was succesvol.</string>
<string lang="nl" key="UPGRADE_OK_REBOOT_REQUIRED">VeraCrypt is succesvol geüpgradet. Echter, voor u het kunt gebruiken, moet u de computer herstarten.\n\nWilt u de computer nu herstarten?</string>
<string lang="en" key="SYS_ENC_UPGRADE_FAILED">Failed to upgrade VeraCrypt!\n\nIMPORTANT: Before you shut down or restart the system, we strongly recommend that you use System Restore (Windows Start menu > All programs > Accessories > System Tools > System Restore) to restore your system to the restore point named 'VeraCrypt installation'. If System Restore is not available, you should try installing the original or the new version of VeraCrypt again before you shut down or restart the system.</string>
- <string lang="nl" key="UNINSTALL_OK">VeraCrypt is succesvol gedeinstalleerd.\n\nKlik 'Sluiten' om de VeraCrypt installer en de map te verwijderen %s. Merk op dat de map niet wordt verwijderd indien er zich bestanden in bevinden die niet door de VeraCrypt installer zijn aangebracht, of die niet zijn aangemaakt door VeraCrypt.</string>
+ <string lang="nl" key="UNINSTALL_OK">VeraCrypt is succesvol gede-installeerd.\n\nKlik 'Sluiten' om de VeraCrypt installer en de map te verwijderen %s. Merk op dat de map niet wordt verwijderd indien er zich bestanden in bevinden die niet door de VeraCrypt installer zijn aangebracht, of die niet zijn aangemaakt door VeraCrypt.</string>
<string lang="nl" key="REMOVING_REG">Verwijderen VeraCrypt register gegevens</string>
<string lang="nl" key="ADDING_REG">Toevoegen register gegeven</string>
<string lang="nl" key="REMOVING_APPDATA">Verwijderen applicatie-specifieke data</string>
@@ -878,26 +879,26 @@
<string lang="nl" key="ADDING_ICON">Icoon aan het toevoegen</string>
<string lang="nl" key="CREATING_SYS_RESTORE">Systeem herstel punt aan het maken</string>
<string lang="nl" key="FAILED_SYS_RESTORE">Maken van systeem herstelpunt niet gelukt!</string>
- <string lang="nl" key="INSTALLER_UPDATING_BOOT_LOADER">Updaten boot lader</string>
+ <string lang="nl" key="INSTALLER_UPDATING_BOOT_LOADER">Updaten bootloader</string>
<string lang="nl" key="INSTALL_OF_FAILED">Installeren mislukt van '%s'. %s Wilt u doorgaan met installeren?</string>
- <string lang="nl" key="UNINSTALL_OF_FAILED">Deïnstalleren mislukt van '%s'. %s Wilt u doorgaan met deïnstalleren?</string>
+ <string lang="nl" key="UNINSTALL_OF_FAILED">De-installeren mislukt van '%s'. %s Wilt u doorgaan met de-installeren?</string>
<string lang="nl" key="INSTALL_COMPLETED">Installatie voltooid.</string>
- <string lang="nl" key="CANT_CREATE_FOLDER">De directory '%s' kon niet gemaakt worden</string>
- <string lang="nl" key="CLOSE_TC_FIRST">Het VeraCrypt apparaat stuurprogramma kan niet worden beëindigd.\n\nSluit alstublieft alle geopende VeraCrypt schermen eerst. Als dit niet helpt, herstart dan Windows en probeer het opnieuw.</string>
- <string lang="nl" key="DISMOUNT_ALL_FIRST">Alle VeraCrypt volumes moeten worden ontkoppeld voordat u VeraCrypt kunt installeren of deinstalleren.</string>
+ <string lang="nl" key="CANT_CREATE_FOLDER">De map '%s' kon niet gemaakt worden</string>
+ <string lang="nl" key="CLOSE_TC_FIRST">Het VeraCrypt apparaatstuurprogramma kan niet worden beëindigd.\n\nSluit alstublieft alle geopende VeraCrypt schermen eerst. Als dit niet helpt, herstart dan Windows en probeer het opnieuw.</string>
+ <string lang="nl" key="DISMOUNT_ALL_FIRST">Alle VeraCrypt volumes moeten worden ontkoppeld voordat u VeraCrypt kunt installeren of de-installeren.</string>
<string lang="en" key="UNINSTALL_OLD_VERSION_FIRST">An obsolete version of VeraCrypt is currently installed on this system. It needs to be uninstalled before you can install this new version of VeraCrypt.\n\nAs soon as you close this message box, the uninstaller of the old version will be launched. Note that no volume will be decrypted when you uninstall VeraCrypt. After you uninstall the old version of VeraCrypt, run the installer of the new version of VeraCrypt again.</string>
<string lang="nl" key="REG_INSTALL_FAILED">Het toevoegen van gegevens aan het register is mislukt.</string>
<string lang="nl" key="DRIVER_INSTALL_FAILED">Het installeren van het apparaatstuurprogramma is mislukt. Herstart Windows alstublieft en probeer daarna VeraCrypt opnieuw te installeren.</string>
- <string lang="nl" key="STARTING_DRIVER">Starten VeraCrypt apparaat stuurprogramma</string>
- <string lang="nl" key="DRIVER_UINSTALL_FAILED">Deïnstallatie van het apparaat stuurprogramma is mislukt. Merk op dat, door de eigenschappen van Windows, het nodig kan zijn uit te loggen of de computer opnieuw op te starten voordat het apparaat stuurprogramma kan worden gedeïnstalleerd of herinstalleerd.</string>
- <string lang="nl" key="INSTALLING_DRIVER">Installeren van het VeraCrypt apparaat stuurprogramma.</string>
- <string lang="nl" key="STOPPING_DRIVER">Stoppen van het VeraCrypt apparaat stuurprogramma.</string>
- <string lang="nl" key="REMOVING_DRIVER">Deinstalleren van het VeraCrypt apparaat stuurprogramma.</string>
+ <string lang="nl" key="STARTING_DRIVER">Starten VeraCrypt apparaatstuurprogramma</string>
+ <string lang="nl" key="DRIVER_UINSTALL_FAILED">De-installatie van het apparaatstuurprogramma is mislukt. Merk op dat, door de eigenschappen van Windows, het nodig kan zijn uit te loggen of de computer opnieuw op te starten voordat het apparaatstuurprogramma kan worden gede-installeerd of herinstalleerd.</string>
+ <string lang="nl" key="INSTALLING_DRIVER">Installeren van het VeraCrypt apparaatstuurprogramma.</string>
+ <string lang="nl" key="STOPPING_DRIVER">Stoppen van het VeraCrypt apparaatstuurprogramma.</string>
+ <string lang="nl" key="REMOVING_DRIVER">De-installeren van het VeraCrypt apparaatstuurprogramma.</string>
<string lang="nl" key="COM_REG_FAILED">Registratie van de User Account Control Support Library is mislukt.</string>
<string lang="nl" key="COM_DEREG_FAILED">Registratie ongedaan maken van de User Account Control Support Library is mislukt.</string>
- <string lang="en" key="TRAVELER_LIMITATIONS_NOTE">Note about portable mode:\n\nPlease note that the operating system requires drivers to be registered with it before they can be started. Hence, the VeraCrypt driver is not (and cannot be) fully portable (whereas the VeraCrypt applications are fully portable, i.e. they do not have to be installed or registered with the operating system). Also note that VeraCrypt needs a driver to provide transparent on-the-fly encryption/decryption.</string>
- <string lang="en" key="TRAVELER_UAC_NOTE">Note that if you decide to run VeraCrypt in portable mode (as opposed to running an installed copy of VeraCrypt), the system will ask you for permission to run VeraCrypt (UAC prompt) every time you attempt to run it.\n\nThe reason is that when you run VeraCrypt in portable mode, VeraCrypt needs to load and start the VeraCrypt device driver. VeraCrypt needs a device driver to provide transparent on-the-fly encryption/decryption, and users without administrator privileges cannot start device drivers in Windows. Therefore, the system will ask you for permission to run VeraCrypt with administrator privileges (UAC prompt).\n\nNote that if you install VeraCrypt on the system (as opposed to running VeraCrypt in portable mode), the system will NOT ask you for permission to run VeraCrypt (UAC prompt) every time you attempt to run it.\n\nAre you sure you want to extract the files?</string>
- <string lang="nl" key="CONTAINER_ADMIN_WARNING">Waarschuwing: Dit exemplaar van de volume aanmaak wizard heeft administrator rechten.\n\nUw nieuwe volume zou aangemaakt kunnen worden met rechten die u niet toe zullen staan naar het volume te schrijven na koppeling. Als u dit wilt vermijden, sluit dan deze volume aanmaak wizard en start een nieuw exemplaar zonder administrator rechten.\n\nWilt u dit exemplaar van de volume aanmaak wizard sluiten?</string>
+ <string lang="nl" key="TRAVELER_LIMITATIONS_NOTE">Opmerking over de portable modus:\n\nNeem er notie van dat het besturingssysteem eist dat stuurprogramma's worden geregistreerd voordat ze kunnen worden gestart. Zodoende is het VeraCrypt stuurprogramma niet (en dat kan ook niet) volledig portable. Het VeraCrypt programma zelf is daarentegen wel volledig portable, d.w.z. u hoeft het niet op iedere computer te installeren). VeraCrypt heeft een stuurprogramma nodig voor transparante Op-De-Plaats codering/decodering.</string>
+ <string lang="nl" key="TRAVELER_UAC_NOTE">Opmerking: Wanneer u kiest voor VeraCrypt in portable modus (in tegenstelling tot het installeren van VeraCrypt) zal het besturingssysteem iedere keer dat u VeraCrypt start om toestemming (UAC prompt) vragen.\n\nDe reden hiervoor is dat VeraCrypt in portable modus bij het opstarten stuurprogramma's moet laden en starten. VeraCrypt heeft een stuurprogramma nodig om voor transparante Op-De-Plaats codering/decodering en gebruikers zonder administratorrechten kunnen in Windows geen stuurprogramma's starten. Daarom zal het besturingssysteem u om toestemming (UAC prompt) vragen om VeraCrypt met administratorrechten uit te voeren..\n\nLet op dat wanneer u VeraCrypt op het systeem installeert (in tegenstelling tot de portable modus) het besturingssysteem u NIET iedere keer om toestemming voor uitvoering van VeraCrypt zal vragen.\n\nWeet u zeker dat u de bestanden wilt uitpakken?</string>
+ <string lang="nl" key="CONTAINER_ADMIN_WARNING">Waarschuwing: Dit exemplaar van de volume aanmaak wizard heeft administratorrechten.\n\nUw nieuwe volume zou aangemaakt kunnen worden met rechten die u niet toe zullen staan naar het volume te schrijven na koppeling. Als u dit wilt vermijden, sluit dan deze volume aanmaak wizard en start een nieuw exemplaar zonder administratorrechten.\n\nWilt u dit exemplaar van de volume aanmaak wizard sluiten?</string>
<string lang="nl" key="CANNOT_DISPLAY_LICENSE">Fout: Kan licentie niet op scherm vertonen.</string>
<string lang="nl" key="OUTER_VOL_WRITE_PREVENTED">Buiten(!)</string>
<string lang="nl" key="DAYS">dagen</string>
@@ -946,8 +947,8 @@
<string lang="nl" key="KEYFILE_EMPTY_BASE_NAME">Voer een naam in voor het/de aan te maken sleutelbestand(en)</string>
<string lang="nl" key="KEYFILE_INVALID_BASE_NAME">De basisnaam voor het/de sleutelbestand(en) is ongeldig</string>
<string lang="nl" key="KEYFILE_ALREADY_EXISTS">Het sleutelbestand '%s' bestaat al.\nWilt u dit overschrijven? Het genereren van het sleutelbestand stopt als u NEE antwoord.</string>
- <string lang="nl" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">WAARSCHUWING: De header van dit volume is beschadigd! VeraCrypt heeft automatisch de back-up ervan gebruikt die was opgeslagen in het volume.\n\nU dient de volumeheader te repareren d.m.v. het tool ‘Herstel volumeheader’.</string>
- <string lang="nl" key="VOL_HEADER_BACKED_UP">Volumeheader back-up is succesvol aangemaakt.\n\nBelangrijk: Het herstellen van de volumeheader door deze back-up te gebruiken zal ook het huidige wachtwoord herstellen. Verder, als nu sleutelbestanden nodig zijn om het volume te koppelen, zullen dezelfde sleutelbestanden weer nodig zijn om te koppelen als de volumeheader is hersteld via het terugzetten van deze back-up.\n\nWAARSCHUWING: Deze volumeheader back-up kan uitsluitend worden gebruikt om de header van DIT volume te herstellen. Indien u deze header back-up gebruikt om een ander volume te herstellen, zult u daarna het volume kunnen koppelen, maar zult u niet in staat zijn enige data die op dit volume zijn opgeslagen te lezen (omdat u de master key dan heeft veranderd).</string>
+ <string lang="nl" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">WAARSCHUWING: De header van dit volume is beschadigd! VeraCrypt heeft automatisch de back-up ervan gebruikt die was opgeslagen in het volume.\n\nU dient de volumeheader te repareren d.m.v. het tool 'Herstel volumeheader'.</string>
+ <string lang="nl" key="VOL_HEADER_BACKED_UP">Volumeheader back-up is succesvol aangemaakt.\n\nBelangrijk: Het herstellen van de volumeheader door deze back-up te gebruiken zal ook het huidige wachtwoord herstellen. Verder, als nu sleutelbestanden nodig zijn om het volume te koppelen, zullen dezelfde sleutelbestanden weer nodig zijn om te koppelen als de volumeheader is hersteld via het terugzetten van deze back-up.\n\nWAARSCHUWING: Deze volumeheader back-up kan uitsluitend worden gebruikt om de header van DIT volume te herstellen. Indien u deze header back-up gebruikt om een ander volume te herstellen, zult u daarna het volume kunnen koppelen, maar zult u niet in staat zijn enige data die op dit volume zijn opgeslagen te lezen (omdat u de hoofdsleutel dan heeft veranderd).</string>
<string lang="nl" key="VOL_HEADER_RESTORED">De volumeheader is succesvol hersteld.\n\nBELANGRIJK: Neemt u er nota van dat een oud wachtwoord ook hersteld kan zijn. Verder, de sleutelbestanden die nodig waren om het volume te koppelen toen de back-up werd gemaakt, zijn nu, na het terugzetten van deze back-up, weer nodig om het volume te koppelen.</string>
<string lang="nl" key="EXTERNAL_VOL_HEADER_BAK_FIRST_INFO">Om veiligheidsredenen dient u het juiste wachtwoord en/of sleutelbestanden te geven voor het volume.\n\nNoot: Als het volume een verborgen volume bevat, dient u eerst het juiste wachtwoord en/of sleutelbestanden te geven voor het buiten volume. Daarna, als u een back-up wilt maken van de header van het verborgen volume zult u het juiste wachtwoord en/of sleutelbestanden dienen te geven voor het verborgen volume.</string>
<string lang="nl" key="CONFIRM_VOL_HEADER_BAK">Bent u zeker dat u een back-up wilt maken van de volumeheader voor %s?\n\nNadat u op Ja hebt geklikt zal u om een bestandsnaam gevraagd worden voor deze back-up.\n\nNoot: zowel de standaard als de verborgen volumeheaders zullen worden gehercodeerd met een nieuwe salt en opgeslagen in het back-up bestand. Indien er in het volume geen verborgen volume is, zal de ruimte die gereserveerd is voor de verborgen volumeheader in het back-up bestand worden gevuld met random data (om de aannemelijke ontkenbaarheid te bewaren). Als u een volumeheader gaat terugzetten uit een back-up bestand zult u het wachtwoord en/of sleutelbestanden dienen te verstrekken zoals die waren toen de back-up werd gemaakt. Dit wachtwoord en/of sleutelbestanden zullen dan ook automatisch het type header dat teruggezet moet worden vaststellen (standaard of verborgen, merk op dat VeraCrypt dit vaststelt d.m.v. trail and error).</string>
@@ -960,23 +961,23 @@
<string lang="nl" key="HEADER_RESTORE_EXTERNAL">Herstel de volumeheader vanaf een extern back-up bestand</string>
<string lang="nl" key="HEADER_BACKUP_SIZE_INCORRECT">De grootte van het volumeheader back-up bestand is incorrect.</string>
<string lang="nl" key="VOLUME_HAS_NO_BACKUP_HEADER">Er is geen back-up van de header aanwezig in dit volume (alleen volumes aangemaakt door VeraCrypt 6.0 of later bevatten back-up headers).</string>
- <string lang="nl" key="BACKUP_HEADER_NOT_FOR_SYS_DEVICE">U probeert een back-up te maken van de header van de systeem partitie/schijf. Dit is niet toegestaan. Back-up/restore operaties van de systeem partitie/schijf kunnen alleen worden uitgevoerd m.b.v. de VeraCrypt Reddingsschijf.\n\nWilt u een VeraCrypt Reddingsschijf aanmaken?</string>
- <string lang="nl" key="RESTORE_HEADER_NOT_FOR_SYS_DEVICE">U probeert de header terug te zetten van een virtueel VeraCrypt volume maar u selecteerde de systeem partitie/schijf. Dit is niet toegestaan. Back-up/restore operaties van de systeem partitie/schijf kunnen alleen worden uitgevoerd m.b.v. de VeraCrypt Reddingsschijf.\n\nWilt u een VeraCrypt Reddingsschijf aanmaken?</string>
- <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CREATION_SELECT_PATH">Nadat u op OK heeft geklikt, kunt u een bestandsnaam en opslaglocatie uitkiezen voor het zgn. ISO bestand van de nieuwe VeraCrypt Reddingsschijf.</string>
+ <string lang="nl" key="BACKUP_HEADER_NOT_FOR_SYS_DEVICE">U probeert een back-up te maken van de header van de systeempartitie/schijf. Dit is niet toegestaan. Back-up/restore operaties van de systeempartitie/schijf kunnen alleen worden uitgevoerd m.b.v. de VeraCrypt herstelschijf.\n\nWilt u een VeraCrypt herstelschijf aanmaken?</string>
+ <string lang="nl" key="RESTORE_HEADER_NOT_FOR_SYS_DEVICE">U probeert de header terug te zetten van een virtueel VeraCrypt volume maar u selecteerde de systeempartitie/schijf. Dit is niet toegestaan. Back-up/restore operaties van de systeempartitie/schijf kunnen alleen worden uitgevoerd m.b.v. de VeraCrypt herstelschijf.\n\nWilt u een VeraCrypt herstelschijf aanmaken?</string>
+ <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CREATION_SELECT_PATH">Nadat u op OK heeft geklikt, kunt u een bestandsnaam en opslaglocatie uitkiezen voor het zgn. ISO bestand van de nieuwe VeraCrypt herstelschijf.</string>
<string lang="en" key="RESCUE_DISK_NON_WIZARD_CREATION_BURN">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to burn the Rescue Disk image to a CD or DVD.\n\nIMPORTANT: Note that the file must be written to the CD/DVD as an ISO disk image (not as an individual file). For information on how to do so, please refer to the documentation of your CD/DVD recording software.\n\nAfter you burn the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly burned.</string>
<string lang="en" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to burn the Rescue Disk image to a CD or DVD.\n\nDo you want to launch the Microsoft Windows Disc Image Burner now?\n\nNote: After you burn the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly burned.</string>
- <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Breng uw VeraCrypt Reddingsschijf aan in het CD/DVD station en klik op OK om deze te controleren.</string>
- <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">De VeraCrypt Reddingsschijf is succesvol gecontroleerd.</string>
- <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Kan niet controleren of de Reddingsschijf foutloos is gebrand.\n\nIndien u de Reddingsschijf heeft gebrand, haal de CD/DVD uit het station en breng hem opnieuw aan; daarna opnieuw controleren. Indien dit niet helpt, probeert u a.u.b. een ander brandprogramma en/of andere CD/DVD.\n\nIndien u probeerde een VeraCrypt Reddingsschijf te controleren die is aangemaakt voor een andere Hoofdsleutel, wachtwoord, salt, etc., merk dan op dat een dergelijke Reddingsschijf altijd zal falen in deze controle. Om een nieuwe reddingsschijf aan te maken die volledig compatibel is met uw huidige configuratie, selecteer 'Systeem' &gt; 'Maak Reddingsschijf Aan'.</string>
- <string lang="nl" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">Het VeraCrypt reddingsschijf bestand is succesvol gecontroleerd.</string>
+ <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Breng uw VeraCrypt herstelschijf aan in het CD/DVD station en klik op OK om deze te controleren.</string>
+ <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">De VeraCrypt herstelschijf is succesvol gecontroleerd.</string>
+ <string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Kan niet controleren of de herstelschijf foutloos is gebrand.\n\nIndien u de herstelschijf heeft gebrand, haal de CD/DVD uit het station en breng hem opnieuw aan; daarna opnieuw controleren. Indien dit niet helpt, probeert u a.u.b. een ander brandprogramma en/of andere CD/DVD.\n\nIndien u probeerde een VeraCrypt herstelschijf te controleren die is aangemaakt voor een andere Hoofdsleutel, wachtwoord, salt, etc., merk dan op dat een dergelijke herstelschijf altijd zal falen in deze controle. Om een nieuwe herstelschijf aan te maken die volledig compatibel is met uw huidige configuratie, selecteer 'Systeem' &gt; 'Maak herstelschijf Aan'.</string>
+ <string lang="nl" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">Het VeraCrypt herstelschijf bestand is succesvol gecontroleerd.</string>
<string lang="en" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">The Rescue Disk image verification failed.\n\nIf you attempted to verify a VeraCrypt Rescue Disk image created for a different master key, password, salt, etc., please note that such Rescue Disk image will always fail this verification. To create a new Rescue Disk image fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
- <string lang="nl" key="ERROR_CREATING_RESCUE_DISK">Fout bij het aanmaken van de VeraCrypt Reddingsschijf.</string>
- <string lang="nl" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">VeraCrypt Reddingsschijf kan niet gemaakt worden als een verborgen besturingssysteem draait.\n\nOm een Reddingsschijf te maken, start op van het lokvogel operating syteem en selecteer 'System' &gt; 'Create Rescue Disk'.</string>
+ <string lang="nl" key="ERROR_CREATING_RESCUE_DISK">Fout bij het aanmaken van de VeraCrypt herstelschijf.</string>
+ <string lang="nl" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">VeraCrypt herstelschijf kan niet gemaakt worden als een verborgen besturingssysteem draait.\n\nOm een herstelschijf te maken, start op van het lokvogel operating syteem en selecteer 'System' &gt; 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly burned.\n\nIf you have burned the Rescue Disk, please eject and reinsert the CD/DVD; then click Next to try again. If this does not help, please try another medium%s.\n\nIf you have not burned the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to burn the newly generated Rescue Disk.</string>
<string lang="nl" key="RESCUE_DISK_CHECK_FAILED_SENTENCE_APPENDIX"> en/of ander CD/DVD brandsoftware</string>
<string lang="nl" key="SYSTEM_FAVORITES_DLG_TITLE">VeraCrypt - Systeemfavoriete volumes</string>
<string lang="nl" key="SYS_FAVORITES_HELP_LINK">Wat zijn systeemfavoriete volumes?</string>
- <string lang="en" key="SYS_FAVORITES_REQUIRE_PBA">De systeempartitie/-schijf is niet gecodeerd.\n\nSystem favorite volumes can be mounted using only a pre-boot authentication password. Therefore, to enable use of system favorite volumes, you need to encrypt the system partition/drive first.</string>
+ <string lang="nl" key="SYS_FAVORITES_REQUIRE_PBA">De systeempartitie/-schijf is niet gecodeerd.\n\nSysteem favoriete volumes kunnen alleen worden gekoppeld met een pre-boot authenticatie wachtwoord. Daarom moet u om systeem favoriete volumes te gebruiken eerst de systeempartitie/-schijf coderen.</string>
<string lang="nl" key="DISMOUNT_FIRST">Ontkoppel het volume voordat u verder gaat.</string>
<string lang="nl" key="CANNOT_SET_TIMER">Fout: Kan de timer niet instellen.</string>
<string lang="nl" key="IDPM_CHECK_FILESYS">Controleer bestandssysteem</string>
@@ -1008,7 +1009,7 @@
<string lang="en" key="VOLUME_TOO_LARGE_FOR_WINXP">Warning: Windows XP does not support files larger than 2048 GB (it will report that "Not enough storage is available"). Therefore, you cannot create a file-hosted VeraCrypt volume (container) larger than 2048 GB under Windows XP.\n\nNote that it is still possible to encrypt the entire drive or create a partition-hosted VeraCrypt volume larger than 2048 GB under Windows XP.</string>
<string lang="nl" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">Waarschuwing: Als u in de toekomst meer bestanden wilt toevoegen aan het buiten volume, zou u misschien beter een kleinere grootte kunnen kiezen voor het verborgen volume.\n\nBent u er zeker van dat u wilt doorgaan met de grootte die u hebt ingegeven?</string>
<string lang="nl" key="NO_VOLUME_SELECTED">Geen volume geselecteerd.\n\nKlik op 'Selecteer apparaat' of 'Selecteer bestand' om een VeraCrypt volume te selecteren.</string>
- <string lang="nl" key="NO_SYSENC_PARTITION_SELECTED">Geen partitie geselecteerd.\n\nKlik 'Selecteer apparaat' om een ontkoppelde partitie te selecteren die normaal gesproken pre-boot authenticatie vereist (bijvoorbeeld een partitie gesitueerd op de gecodeerde systeem schijf van een ander besturingssysteem, dat niet draait, of de gecodeerde systeem partitie van een ander besturingssysteem).\n\nNoot: De geselecteerde partitie word als een gewoon VeraCrypt volume zonder pre-boot authenticatie gekoppeld. Dit is nuttig bijv. voor back-up of reparatie acties.</string>
+ <string lang="nl" key="NO_SYSENC_PARTITION_SELECTED">Geen partitie geselecteerd.\n\nKlik 'Selecteer apparaat' om een ontkoppelde partitie te selecteren die normaal gesproken pre-boot authenticatie vereist (bijvoorbeeld een partitie gesitueerd op de gecodeerde systeemschijf van een ander besturingssysteem, dat niet draait, of de gecodeerde systeempartitie van een ander besturingssysteem).\n\nNoot: De geselecteerde partitie word als een gewoon VeraCrypt volume zonder pre-boot authenticatie gekoppeld. Dit is nuttig bijv. voor back-up of reparatie acties.</string>
<string lang="nl" key="CONFIRM_SAVE_DEFAULT_KEYFILES">WAARSCHUWING: Als Standaard sleutelbestanden zijn geselecteerd en opgeslagen, kunnen volumes die deze sleutelbestanden niet gebruiken onmogelijk meer worden gekoppeld. Daarom dient u, na aanzetten van de optie Standaard sleutelbestanden, niet te vergeten dit vinkje weer weg te halen bij het vakje "gebruik sleutelbestanden" onder het vakje "laat wachtwoord zien" wanneer u dergelijke volumes wilt gebruiken.\n\nBent u er zeker van de Standaard sleutelbestanden plus pad op te slaan?</string>
<string lang="nl" key="HK_AUTOMOUNT_DEVICES">Auto-koppel apparaten</string>
<string lang="nl" key="HK_DISMOUNT_ALL">Ontkoppel alles</string>
@@ -1025,34 +1026,34 @@
<string lang="nl" key="SHORTCUT_ALREADY_IN_USE">Error: Snelkoppeling is al in gebruik.</string>
<string lang="nl" key="HOTKEY_REGISTRATION_ERROR">WAARSCHUWING: Een of meer van de VeraCrypt system-brede hot keys zal niet werken!\n\nOvertuigt u zich er van dat het besturingssysteem en/of andere programma's niet dezelfde hot keys gebruiken als True Crypt.</string>
<string lang="en" key="PAGING_FILE_CREATION_PREVENTED">Paging file creation has been prevented.\n\nPlease note that, due to Windows issues, paging files cannot be located on non-system VeraCrypt volumes (including system favorite volumes). VeraCrypt supports creation of paging files only on an encrypted system partition/drive.</string>
- <string lang="nl" key="SYS_ENC_HIBERNATION_PREVENTED">Door een fout of incompatibiliteit kon VeraCrypt het slaapstand bestand niet coderen. Daarom werd de slaapstand niet toegestaan.\n\nNoot: Als een computer in slaapstand gaat wordt de inhoud van het systeem geheugen geschreven naar het slaapstand bestand op de systeem schijf. VeraCrypt zou dan niet kunnen voorkomen dat codeer sleutels en andere gevoelige informatie die in het systeem geheugen aanwezig is ongecodeerd naar dit bestand worden geschreven.</string>
+ <string lang="nl" key="SYS_ENC_HIBERNATION_PREVENTED">Door een fout of incompatibiliteit kon VeraCrypt het slaapstand bestand niet coderen. Daarom werd de slaapstand niet toegestaan.\n\nNoot: Als een computer in slaapstand gaat wordt de inhoud van het systeem geheugen geschreven naar het slaapstand bestand op de systeemschijf. VeraCrypt zou dan niet kunnen voorkomen dat codeer sleutels en andere gevoelige informatie die in het systeem geheugen aanwezig is ongecodeerd naar dit bestand worden geschreven.</string>
<string lang="en" key="HIDDEN_OS_HIBERNATION_PREVENTED">Hibernation has been prevented.\n\nVeraCrypt does not support hibernation on hidden operating systems that use an extra boot partition. Please note that the boot partition is shared by both the decoy and the hidden system. Therefore, in order to prevent data leaks and problems while resuming from hibernation, VeraCrypt has to prevent the hidden system from writing to the shared boot partition and from hibernating.</string>
- <string lang="en" key="VOLUME_MOUNTED_AS_DRIVE_LETTER_X_DISMOUNTED">VeraCrypt volume mounted as %c: has been dismounted.</string>
- <string lang="en" key="MOUNTED_VOLUMES_DISMOUNTED">VeraCrypt volumes have been dismounted.</string>
- <string lang="en" key="VOLUMES_DISMOUNTED_CACHE_WIPED">VeraCrypt volumes have been dismounted and password cache has been wiped.</string>
- <string lang="en" key="SUCCESSFULLY_DISMOUNTED">Successfully dismounted</string>
+ <string lang="nl" key="VOLUME_MOUNTED_AS_DRIVE_LETTER_X_DISMOUNTED">VeraCrypt volume gekoppeld als %c: is ontkoppeld.</string>
+ <string lang="nl" key="MOUNTED_VOLUMES_DISMOUNTED">VeraCrypt volumes zijn ontkoppeld.</string>
+ <string lang="nl" key="VOLUMES_DISMOUNTED_CACHE_WIPED">VeraCrypt volumes zijn ontkoppeld en het wachtwoordcache is gewist.</string>
+ <string lang="nl" key="SUCCESSFULLY_DISMOUNTED">Succesvol ontkoppeld</string>
<string lang="en" key="CONFIRM_BACKGROUND_TASK_DISABLED">WARNING: If the VeraCrypt Background Task is disabled, the following functions will be disabled:\n\n1) Hot keys\n2) Auto-dismount (e.g., upon logoff, inadvertent host device removal, time-out, etc.)\n3) Auto-mount of favorite volumes\n4) Notifications (e.g., when damage to hidden volume is prevented)\n5) Tray icon\n\nNote: You can shut down the Background Task anytime by right-clicking the VeraCrypt tray icon and selecting 'Exit'.\n\nAre you sure you want to permanently disable the VeraCrypt Background Task?</string>
<string lang="nl" key="CONFIRM_NO_FORCED_AUTODISMOUNT">WAARSCHUWING: Als deze optie wordt uitgeschakeld, kunnen volumes die geopende bestanden/mappen bevatten niet meer automatisch ontkoppeld worden.\n\nBent u er zeker van dat u deze optie wilt uitschakelen?</string>
- <string lang="nl" key="WARN_PREF_AUTO_DISMOUNT">WAARSCHUWING: Volume bevat geopende bestanden/directories en zal NIET automatisch ontkoppeld worden.\n\nOm dit te voorkomen, vink de volgende optie aan in dit dialoog scherm: 'Forceer auto-ontkoppeling, zelfs als het volume geopende bestanden of directories bevat'</string>
- <string lang="nl" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">WAARSCHUWING: als de batterij van de notebook bijna leeg is, kan Windows verzuimen de juiste boodschappen te sturen aan draaiende programma’s wanneer de notebook in power-save modus gaat. In zulke gevallen kan VeraCrypt er evt. niet in slagen volumes te auto-ontkoppelen.</string>
+ <string lang="nl" key="WARN_PREF_AUTO_DISMOUNT">WAARSCHUWING: Volume bevat geopende bestanden/mappen en zal NIET automatisch ontkoppeld worden.\n\nOm dit te voorkomen, vink de volgende optie aan in dit dialoog scherm: 'Forceer auto-ontkoppeling, zelfs als het volume geopende bestanden of mappen bevat'</string>
+ <string lang="nl" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">WAARSCHUWING: als de batterij van de notebook bijna leeg is, kan Windows verzuimen de juiste boodschappen te sturen aan draaiende programma's wanneer de notebook in power-save modus gaat. In zulke gevallen kan VeraCrypt er evt. niet in slagen volumes te auto-ontkoppelen.</string>
<string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_PROMPT">U heeft de codering van een partitie/volume gepland in de tijd. Het proces is nog niet voltooid.\n\nWilt u het proces nu hervatten?</string>
- <string lang="nl" key="SYSTEM_ENCRYPTION_RESUME_PROMPT">U heeft het (de)coderen van de systeem partitie/schijf als proces gepland. Het proces is nog niet voltooid.\n\nWilt u dit proces nu starten (hervatten)?</string>
- <string lang="nl" key="ASK_NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL">Wilt u eraan herinnerd worden de geplande codering van niet-systeem partities/volumes te hervatten?</string>
+ <string lang="nl" key="SYSTEM_ENCRYPTION_RESUME_PROMPT">U heeft het (de)coderen van de systeempartitie/schijf als proces gepland. Het proces is nog niet voltooid.\n\nWilt u dit proces nu starten (hervatten)?</string>
+ <string lang="nl" key="ASK_NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL">Wilt u eraan herinnerd worden de geplande codering van niet-systeempartities/volumes te hervatten?</string>
<string lang="nl" key="KEEP_PROMPTING_ME">Ja, herinner me</string>
<string lang="nl" key="DO_NOT_PROMPT_ME">Nee, herinner me niet</string>
- <string lang="nl" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">BELANGRIJK: Onthoud dat u de codering van elke niet system partitie/volume kunt hervatten door 'Volumes' &gt; 'Hervat Onderbroken Proces' uit het menu van het hoofdscherm van VeraCrypt te kiezen.</string>
- <string lang="nl" key="SYSTEM_ENCRYPTION_SCHEDULED_BUT_PBA_FAILED">U heeft de codering of decodering gepland van de systeem partitie/schijf. Echter, pre-boot authenticatie is mislukt (of werd overgeslagen).\n\nNoot: Als u de systeem partitie/schijf in de pre-boot omgeving decodeerde ,zou u het proces evt. moeten afmaken door te selecteren 'Systeem' &gt; 'Permanent Decoderen Systeem Partitie/Schijf' uit het menu van het hoofdscherm van VeraCrypt.</string>
+ <string lang="nl" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">BELANGRIJK: Onthoud dat u de codering van elke niet systeempartitie/volume kunt hervatten door 'Volumes' &gt; 'Hervat Onderbroken Proces' uit het menu van het hoofdscherm van VeraCrypt te kiezen.</string>
+ <string lang="nl" key="SYSTEM_ENCRYPTION_SCHEDULED_BUT_PBA_FAILED">U heeft de codering of decodering gepland van de systeempartitie/schijf. Echter, pre-boot authenticatie is mislukt (of werd overgeslagen).\n\nNoot: Als u de systeempartitie/schijf in de pre-boot omgeving decodeerde ,zou u het proces evt. moeten afmaken door te selecteren 'Systeem' &gt; 'Permanent Decoderen Systeempartitie/Schijf' uit het menu van het hoofdscherm van VeraCrypt.</string>
<string lang="en" key="CONFIRM_EXIT">WARNING: If VeraCrypt exits now, the following functions will be disabled:\n\n1) Hot keys\n2) Auto-dismount (e.g., upon logoff, inadvertent host device removal, time-out, etc.)\n3) Auto-mount of favorite volumes\n4) Notifications (e.g., when damage to hidden volume is prevented)\n\nNote: If you do not wish VeraCrypt to run in the background, disable the VeraCrypt Background Task in the Preferences (and, if necessary, disable the automatic start of VeraCrypt in the Preferences).\n\nAre you sure you want VeraCrypt to exit?</string>
<string lang="nl" key="CONFIRM_EXIT_UNIVERSAL">Sluiten?</string>
<string lang="nl" key="CHOOSE_ENCRYPT_OR_DECRYPT">VeraCrypt heeft niet voldoende informatie om te kunnen bepalen of het moet coderen of decoderen.</string>
- <string lang="nl" key="CHOOSE_ENCRYPT_OR_DECRYPT_FINALIZE_DECRYPT_NOTE">VeraCrypt heeft onvoldoende informatie om te bepalen of het moet coderen of decoderen.\n\nNoot: Als u de systeem partitie/schijf in de pre-boot omgeving decodeerde, zou het nodig kunnen zijn het proces af te maken door te klikken op Decodeer.</string>
+ <string lang="nl" key="CHOOSE_ENCRYPT_OR_DECRYPT_FINALIZE_DECRYPT_NOTE">VeraCrypt heeft onvoldoende informatie om te bepalen of het moet coderen of decoderen.\n\nNoot: Als u de systeempartitie/schijf in de pre-boot omgeving decodeerde, zou het nodig kunnen zijn het proces af te maken door te klikken op Decodeer.</string>
<string lang="en" key="NONSYS_INPLACE_ENC_REVERSE_INFO">Note: When you are encrypting a non-system partition/volume in place and an error persistently prevents you from finishing the process, you will not be able to mount the volume (and access data stored on it) until you entirely DECRYPT the volume (i.e. reverse the process).\n\nIf you need to do so, follow these steps:\n1) Exit this wizard.\n2) In the main VeraCrypt window, select 'Volumes' &gt; 'Resume Interrupted Process'.\n3) Select 'Decrypt'.</string>
<string lang="nl" key="NONSYS_INPLACE_ENC_DEFER_CONFIRM">Wilt u de codering van de partitie/volume onderbreken en tot een latere tijd uitstellen?\n\nNoot:Onthoud dat het volume niet kan worden gekoppeld totdat het geheel is gecodeerd. U kunt het proces hervatten, dit zal dan starten op de plaats waar u het stopte. U kunt dit zelf doen bijv. door 'Volumes' &gt; 'Hervat Onderbroken Proces' te kiezen uit het menu van het hoofdscherm van VeraCrypt.</string>
- <string lang="nl" key="SYSTEM_ENCRYPTION_DEFER_CONFIRM">Wilt u het coderen van de systeem partitie/schijf onderbreken en uitstellen?\n\nNoot: U zult het proces kunnen hervatten vanaf het punt waar het onderbroken was. U kunt dit bijv. doen door te kiezen voor 'Systeem' &gt; 'Hervat Onderbroken Proces' uit het systeemmenu van het hoofdscherm van VeraCrypt. Indien u het coderen helemaal wilt terugdraaien of beëindigen, selecteer 'Systeem' &gt; 'Permanent decoderen systeempartitie/Schijf'.</string>
- <string lang="nl" key="SYSTEM_DECRYPTION_DEFER_CONFIRM">Wilt u het decoderen van de systeem partitie/schijf onderbreken en uitstellen?\n\nNoot: U zult het proces kunnen hervatten vanaf het punt waar het onderbroken was. U kunt dit bijv. doen door te kiezen voor 'Systeem' &gt; 'Hervat Onderbroken Proces' uit het systeemmenu van het hoofdscherm van VeraCrypt. Indien u het decoderen helemaal wilt terugdraaien (en met coderen starten), selecteer 'Systeem' &gt; 'Codeer systeempartitie/Schijf'.</string>
- <string lang="nl" key="FAILED_TO_INTERRUPT_SYSTEM_ENCRYPTION">Fout: Stoppen coderen/decoderen van de systeem partitie/schijf mislukt.</string>
+ <string lang="nl" key="SYSTEM_ENCRYPTION_DEFER_CONFIRM">Wilt u het coderen van de systeempartitie/schijf onderbreken en uitstellen?\n\nNoot: U zult het proces kunnen hervatten vanaf het punt waar het onderbroken was. U kunt dit bijv. doen door te kiezen voor 'Systeem' &gt; 'Hervat Onderbroken Proces' uit het systeemmenu van het hoofdscherm van VeraCrypt. Indien u het coderen helemaal wilt terugdraaien of beëindigen, selecteer 'Systeem' &gt; 'Permanent decoderen systeempartitie/Schijf'.</string>
+ <string lang="nl" key="SYSTEM_DECRYPTION_DEFER_CONFIRM">Wilt u het decoderen van de systeempartitie/schijf onderbreken en uitstellen?\n\nNoot: U zult het proces kunnen hervatten vanaf het punt waar het onderbroken was. U kunt dit bijv. doen door te kiezen voor 'Systeem' &gt; 'Hervat Onderbroken Proces' uit het systeemmenu van het hoofdscherm van VeraCrypt. Indien u het decoderen helemaal wilt terugdraaien (en met coderen starten), selecteer 'Systeem' &gt; 'Codeer systeempartitie/Schijf'.</string>
+ <string lang="nl" key="FAILED_TO_INTERRUPT_SYSTEM_ENCRYPTION">Fout: Stoppen coderen/decoderen van de systeempartitie/schijf mislukt.</string>
<string lang="nl" key="FAILED_TO_INTERRUPT_WIPING">Fout: Onderbreken van het wissen is mislukt.</string>
- <string lang="nl" key="FAILED_TO_RESUME_SYSTEM_ENCRYPTION">Fout: Hervatten coderen/decoderen van de systeem partitie/schijf mislukt.</string>
+ <string lang="nl" key="FAILED_TO_RESUME_SYSTEM_ENCRYPTION">Fout: Hervatten coderen/decoderen van de systeempartitie/schijf mislukt.</string>
<string lang="nl" key="FAILED_TO_START_WIPING">Fout: Starten van het wissen is mislukt.</string>
<string lang="nl" key="INCONSISTENCY_RESOLVED">Inconsistentie opgelost.\n\n\n(Indien u een programmafout in relatie hiermee wilt rapporteren, wilt u dan de volgende technische informatie meesturen in het bug rapport: %s)</string>
<string lang="nl" key="UNEXPECTED_STATE">Fout: Niet verwachte toestand.\n\n\n(Indien u deze fout rapporteert hiermee, neem dan a.u.b. de volgende technische informatie mee in de fout rapportage: %s</string>
@@ -1066,47 +1067,47 @@
<string lang="nl" key="SYS_ASSIGN_DRIVE_LETTER">Wilt u a.u.b. een stationsletter toekennen aan de partitie/apparaat voordat u verder gaat ('Configuratiescherm' &gt; 'Prestaties en Onderhoud' &gt; 'Systeembeheer' - 'Computerbeheer' - 'Schijfbeheer').\n\nMerk op dat dit een vereiste van het besturingssysteem is.</string>
<string lang="nl" key="MOUNT_TC_VOLUME">Koppel VeraCrypt volume</string>
<string lang="nl" key="DISMOUNT_ALL_TC_VOLUMES">Ontkoppel alle VeraCrypt volumes</string>
- <string lang="nl" key="UAC_INIT_ERROR">VeraCrypt kon geen Administrator rechten verkrijgen.</string>
- <string lang="nl" key="ERR_ACCESS_DENIED">Toegang geweigerd door het besturingssysteem.\n\nMogelijke oorzaak: Het besturingssysteem vereist dat u recht om te lezen/schrijven heeft (of administrator privileges) voor bepaalde mappen, bestanden en apparaten, zodat u toegestaan wordt data te lezen en te schrijven naar/van deze bestanden/mappen. Normaal gesproken is het een gebruiker zonder administrator privileges toegestaan om bestanden aan te maken, te lezen en erin te schrijven binnen de eigen Mijn Documenten map.</string>
+ <string lang="nl" key="UAC_INIT_ERROR">VeraCrypt kon geen administratorrechten verkrijgen.</string>
+ <string lang="nl" key="ERR_ACCESS_DENIED">Toegang geweigerd door het besturingssysteem.\n\nMogelijke oorzaak: Het besturingssysteem vereist dat u recht om te lezen/schrijven heeft (of administratorrechten) voor bepaalde mappen, bestanden en apparaten, zodat u toegestaan wordt data te lezen en te schrijven naar/van deze bestanden/mappen. Normaal gesproken is het een gebruiker zonder administratorrechten toegestaan om bestanden aan te maken, te lezen en erin te schrijven binnen de eigen Mijn Documenten map.</string>
<string lang="en" key="SECTOR_SIZE_UNSUPPORTED">Error: The drive uses an unsupported sector size.\n\nIt is currently not possible to create partition/device-hosted volumes on drives that use sectors larger than 4096 bytes. However, note that you can create file-hosted volumes (containers) on such drives.</string>
<string lang="en" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">It is currently not possible to encrypt a system installed on a disk that uses a sector size other than 512 bytes.</string>
- <string lang="nl" key="NO_SPACE_FOR_BOOT_LOADER">De VeraCrypt Boot Lader vereist minstens 32 KBytes vrije ruimte aan het begin van de systeem schijf (de VeraCrypt Boot Lader moet daar opgeslagen worden). Helaas voldoet uw systeem schijf niet aan deze voorwaarde.\n\nWilt u dit a.u.b. NIET als een programmafout/probleem van VeraCrypt melden. Om dit probleem op te lossen, zult u uw schijf moeten herpartitioneren en de eerste 32 KBytes van de schijf vrijlaten (in de meeste gevallen voldoet het de eerste partitie te verwijderen en opnieuw aan te maken). We raden u aan hiervoor de Microsoft partitie manager te gebruiken die beschikbaar is bijv. bij installeren van Windows.</string>
+ <string lang="nl" key="NO_SPACE_FOR_BOOT_LOADER">De VeraCrypt Bootloader vereist minstens 32 KBytes vrije ruimte aan het begin van de systeemschijf (de VeraCrypt Bootloader moet daar opgeslagen worden). Helaas voldoet uw systeemschijf niet aan deze voorwaarde.\n\nWilt u dit a.u.b. NIET als een programmafout/probleem van VeraCrypt melden. Om dit probleem op te lossen, zult u uw schijf moeten herpartitioneren en de eerste 32 KBytes van de schijf vrijlaten (in de meeste gevallen voldoet het de eerste partitie te verwijderen en opnieuw aan te maken). We raden u aan hiervoor de Microsoft partitie manager te gebruiken die beschikbaar is bijv. bij installeren van Windows.</string>
<string lang="nl" key="FEATURE_UNSUPPORTED_ON_CURRENT_OS">Deze functie wordt niet ondersteunt door de versie van het besturingssysteem die u momenteel gebruikt.</string>
- <string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">VeraCrypt ondersteunt geen codering van de systeem partitie/schijf onder de versie van het besturingssysteem die u momenteel gebruikt.</string>
- <string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Voordat u de system partitie/schijf onder Windows Vista kunt coderen, dient u Service Pack 1 of hoger te installeren voor Windows Vista. Dit is op uw systeem niet aanwezig.\n\nNoot:Service Pack 1 voor Windows Vista loste een probleem op dat er te weinig geheugen aanwezig was tijdens het opstarten van het systeem.</string>
- <string lang="en" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt no longer supports encryption of the system partition/drive on Windows Vista with no Service Pack installed. Before upgrading VeraCrypt, please install Service Pack 1 or higher for Windows Vista.</string>
- <string lang="en" key="FEATURE_REQUIRES_INSTALLATION">Error: This feature requires VeraCrypt to be installed on the system (you are running VeraCrypt in portable mode).\n\nPlease install VeraCrypt and then try again.</string>
+ <string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">VeraCrypt ondersteunt geen codering van de systeempartitie/schijf onder de versie van het besturingssysteem die u momenteel gebruikt.</string>
+ <string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Voordat u de systeempartitie/schijf onder Windows Vista kunt coderen, dient u Service Pack 1 of hoger te installeren voor Windows Vista. Dit is op uw systeem niet aanwezig.\n\nNoot:Service Pack 1 voor Windows Vista loste een probleem op dat er te weinig geheugen aanwezig was tijdens het opstarten van het systeem.</string>
+ <string lang="nl" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt ondersteund geen codering meer van systeempartities/-schijven op Windows Vista waarop geen Service Pack is geïnstalleerd. Voor het upgraden van VeraCrypt, moet u eerst Service Pack 1 (of nieuwer) voor Windows Vista installeren.</string>
+ <string lang="nl" key="FEATURE_REQUIRES_INSTALLATION">Fout: Deze optie vereist dat VeraCrypt op het systeem is geïnstalleerd (u gebruikt echter VeraCrypt in portable modus).\n\nInstalleer eerst VeraCrypt en probeer het dan opnieuw.</string>
<string lang="en" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">WARNING: Windows does not appear to be installed on the drive from which it boots. This is not supported.\n\nYou should continue only if you are sure that Windows is installed on the drive from which it boots.\n\nDo you want to continue?</string>
<string lang="nl" key="GPT_BOOT_DRIVE_UNSUPPORTED">U gebruikt een 32-bit Windows systeem en uw systeem heeft een GUID partitie tabel (GPT). Momenteel is er alleen ondersteuning voor Windows 64-bit GPT systeemcodering.</string>
- <string lang="nl" key="TC_BOOT_LOADER_ALREADY_INSTALLED">VOORZICHTIG: De VeraCrypt Boot Lader is reeds geïnstalleerd op uw system schijf!\n\nHet is mogelijk dat een ander systeem op uw computer reeds gecodeerd is.\n\nWAARSCHUWING: DOORGAAN MET CODERING VAN HET NU ACTIEVE SYSTEEM KAN ERVOOR ZORGEN DAT EEN ANDER SYSTEEM/SYSTEMEN NIET MEER GESTART KUNNEN WORDEN EN DE AANWEZIGE DATA NIET MEER TOEGANKELIJK.\n\nBent u er zeker van dat u door wilt gaan?</string>
- <string lang="nl" key="SYS_LOADER_RESTORE_FAILED">Fout in herstellen van de originele systeemlader.\n\nGebruik a.u.b. uw VeraCrypt reddingsschijf ('Repair Options' &gt; 'Restore original system loader') of Windows installatie medium om de VeraCrypt Boot Lader te vervangen door de Windows systeem lader.</string>
- <string lang="nl" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">De originele systeem lader zal niet opgeslagen worden op de Reddingsschijf (waarschijnlijke oorzaak: ontbrekende back-up).</string>
+ <string lang="nl" key="TC_BOOT_LOADER_ALREADY_INSTALLED">VOORZICHTIG: De VeraCrypt Bootloader is reeds geïnstalleerd op uw systeemschijf!\n\nHet is mogelijk dat een ander systeem op uw computer reeds gecodeerd is.\n\nWAARSCHUWING: DOORGAAN MET CODERING VAN HET NU ACTIEVE SYSTEEM KAN ERVOOR ZORGEN DAT EEN ANDER SYSTEEM/SYSTEMEN NIET MEER GESTART KUNNEN WORDEN EN DE AANWEZIGE DATA NIET MEER TOEGANKELIJK.\n\nBent u er zeker van dat u door wilt gaan?</string>
+ <string lang="nl" key="SYS_LOADER_RESTORE_FAILED">Fout in herstellen van de originele systeemlader.\n\nGebruik a.u.b. uw VeraCrypt herstelschijf ('Repair Options' &gt; 'Restore original system loader') of Windows installatie medium om de VeraCrypt Bootloader te vervangen door de Windows systeem lader.</string>
+ <string lang="nl" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">De originele systeem lader zal niet opgeslagen worden op de herstelschijf (waarschijnlijke oorzaak: ontbrekende back-up).</string>
<string lang="nl" key="ERROR_MBR_PROTECTED">Kon de MBR sector niet schrijven.\n\nUw BIOS zou ingesteld kunnen zijn om de MBR sector te beschermen. Controleer uw BIOS (druk op F2, Delete, or Esc, tijdens het eerste opstartscherm van uw computer) voor MBR/antivirus protectie instellingen.</string>
<string lang="en" key="BOOT_LOADER_FINGERPRINT_CHECK_FAILED">WARNING: The verification of VeraCrypt bootloader fingerprint failed!\nYour disk may have been tampered with by an attacker ("Evil Maid" attack).\n\nThis warning can also be triggered if you restored VeraCrypt boot loader using an Rescue Disk generated using a different VeraCrypt version.\n\nYou are advised to change your password immediately which will also restore the correct VeraCrypt bootloader. It is recommended to reinstall VeraCrypt and to take measures to avoid access to this machine by untrusted entities.</string>
- <string lang="nl" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">De juiste versie van de VeraCrypt Boot Lader is niet geïnstalleerd. Hierdoor kunnen enkele instellingen evt. niet worden opgeslagen.</string>
- <string lang="nl" key="CUSTOM_BOOT_LOADER_MESSAGE_HELP">In sommige situaties zult u willen voorkomen dat iemand die u de computer ziet starten (een vijand) erachter komt dat VeraCrypt aanwezig is op de computer. De bovenstaande optie stelt u in staat het VeraCrypt Boot Lader scherm aan te passen. Als u de eerste optie kiest zal geen enkele tekst worden weergegeven door de boot lader (zelfs niet als u een verkeerd wachtwoord ingeeft). De computer zal “bevroren†lijken terwijl u uw wachtwoord intypt. Als extra kan er een zelfgemaakte boodschap worden weergegeven om de vijand te misleiden. Bijv. “Ontbrekend besturingssysteem†(wat normaal wordt weergegeven door de Windows Boot Lader als deze geen boot partitie vindt.) Het is echter belangrijk dat u zich realiseert dat, als de vijand in staat is de inhoud van de harde schijf te analyseren, hij erachter kan komen dat er een VeraCrypt Boot Lader aanwezig is.</string>
- <string lang="nl" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">WAARSCHUWING: Na selectie van deze optie zal de VeraCrypt Boot Lader geen enkele tekst laten zien (zelfs niet bij ingave van een verkeerd wachtwoord). De computer zal “bevroren†lijken terwijl u uw wachtwoord kunt ingeven (de cursor zal NIET bewegen en geen sterretjes worden zichtbaar bij intypen).\n\nBent u er zeker van dat u deze optie wilt selecteren?</string>
- <string lang="nl" key="SYS_PARTITION_OR_DRIVE_APPEARS_FULLY_ENCRYPTED">Uw systeem partitie/schijf blijkt helemaal gecodeerd te zijn.</string>
+ <string lang="nl" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">De juiste versie van de VeraCrypt Bootloader is niet geïnstalleerd. Hierdoor kunnen enkele instellingen evt. niet worden opgeslagen.</string>
+ <string lang="nl" key="CUSTOM_BOOT_LOADER_MESSAGE_HELP">In sommige situaties zult u willen voorkomen dat iemand die u de computer ziet starten (een vijand) erachter komt dat VeraCrypt aanwezig is op de computer. De bovenstaande optie stelt u in staat het VeraCrypt Bootloader scherm aan te passen. Als u de eerste optie kiest zal geen enkele tekst worden weergegeven door de bootloader (zelfs niet als u een verkeerd wachtwoord ingeeft). De computer zal “bevroren†lijken terwijl u uw wachtwoord intypt. Als extra kan er een zelfgemaakte boodschap worden weergegeven om de vijand te misleiden. Bijv. “Ontbrekend besturingssysteem†(wat normaal wordt weergegeven door de Windows Bootloader als deze geen boot partitie vindt.) Het is echter belangrijk dat u zich realiseert dat, als de vijand in staat is de inhoud van de harde schijf te analyseren, hij erachter kan komen dat er een VeraCrypt Bootloader aanwezig is.</string>
+ <string lang="nl" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">WAARSCHUWING: Na selectie van deze optie zal de VeraCrypt Bootloader geen enkele tekst laten zien (zelfs niet bij ingave van een verkeerd wachtwoord). De computer zal “bevroren†lijken terwijl u uw wachtwoord kunt ingeven (de cursor zal NIET bewegen en geen sterretjes worden zichtbaar bij intypen).\n\nBent u er zeker van dat u deze optie wilt selecteren?</string>
+ <string lang="nl" key="SYS_PARTITION_OR_DRIVE_APPEARS_FULLY_ENCRYPTED">Uw systeempartitie/schijf blijkt helemaal gecodeerd te zijn.</string>
<string lang="nl" key="SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK">VeraCrypt ondersteunt geen codering van een systeem station dat is geconverteerd tot een dynamische schijf.</string>
<string lang="en" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">The system drive contains extended (logical) partitions.\n\nYou can encrypt an entire system drive containing extended (logical) partitions only on Windows Vista and later versions of Windows. On Windows XP, you can encrypt an entire system drive provided that it contains only primary partitions.\n\nNote: You can still encrypt the system partition instead of the entire system drive (and, in addition to that, you can create partition-hosted VeraCrypt volumes within any non-system partitions on the drive).</string>
<string lang="en" key="WDE_EXTENDED_PARTITIONS_WARNING">WARNING: As you are running Windows XP/2003, after you start encrypting the drive, you must NOT create any extended (logical) partitions on it (you may create only primary partitions). Any extended (logical) partition on the drive would be inaccessible after you start encrypting (the drive currently does not contain any such partition).\n\nNote: If this limitation is not acceptable, you can go back and choose to encrypt only the system partition instead of the entire drive (and, in addition to that, you can create partition-hosted VeraCrypt volumes within any non-system partitions on the drive).\n\nAlternatively, if this limitation is not acceptable, you may want to consider upgrading to Windows Vista or a later version of Windows (you can encrypt an entire system drive containing extended/logical partitions only on Windows Vista or later).</string>
<string lang="en" key="SYSDRIVE_NON_STANDARD_PARTITIONS">Your system drive contains a non-standard partition.\n\nIf you are using a notebook, your system drive probably contains a special recovery partition. After the whole system drive is encrypted (including any recovery partition), your system might become unbootable if your computer is using an inappropriately designed BIOS. It would also be impossible to use any recovery partition until the system drive is decrypted. Therefore, we recommend that you encrypt only the system partition.</string>
- <string lang="nl" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Wilt u de systeem partitie coderen in plaats van de gehele schijf?\n\nMerk op dat u in partities gehuisveste VeraCrypt volumes kunt aanmaken op iedere niet-systeem partitie op de schijf (naast het coderen van de systeem partitie).</string>
- <string lang="nl" key="WHOLE_SYC_DEVICE_RECOM">Aangezien uw systeem schijf maar één partitie bevat die alle ruimte in beslag neemt, is het aan te raden (veiliger) om de gehele schijf te coderen, inclusief de vrije ruimte die vaak zo'n partitie omgeeft.\n\nWilt u de gehele systeem schijf coderen?</string>
- <string lang="nl" key="TEMP_NOT_ON_SYS_PARTITION">Uw system is ingesteld om tijdelijke bestanden op te slaan op een niet-systeem partitie.\n\nDeze opslag kan daar niet plaatsvinden.</string>
- <string lang="nl" key="USER_PROFILE_NOT_ON_SYS_PARTITION">Uw gebruikersprofiel bestanden zijn niet opgeslagen op de system partitie.\n\n Dit profiel kan daar niet plaatsvinden.</string>
- <string lang="nl" key="PAGING_FILE_NOT_ON_SYS_PARTITION">Er is/zijn wisselbestand(en) aanwezig op niet-systeem partitie(s).\n\nWisselbestand(en) kunnen daar niet opgeslagen zijn.</string>
+ <string lang="nl" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Wilt u de systeempartitie coderen in plaats van de gehele schijf?\n\nMerk op dat u in partities gehuisveste VeraCrypt volumes kunt aanmaken op iedere niet-systeempartitie op de schijf (naast het coderen van de systeempartitie).</string>
+ <string lang="nl" key="WHOLE_SYC_DEVICE_RECOM">Aangezien uw systeemschijf maar één partitie bevat die alle ruimte in beslag neemt, is het aan te raden (veiliger) om de gehele schijf te coderen, inclusief de vrije ruimte die vaak zo'n partitie omgeeft.\n\nWilt u de gehele systeemschijf coderen?</string>
+ <string lang="nl" key="TEMP_NOT_ON_SYS_PARTITION">Uw system is ingesteld om tijdelijke bestanden op te slaan op een niet-systeempartitie.\n\nDeze opslag kan daar niet plaatsvinden.</string>
+ <string lang="nl" key="USER_PROFILE_NOT_ON_SYS_PARTITION">Uw gebruikersprofiel bestanden zijn niet opgeslagen op de systeempartitie.\n\n Dit profiel kan daar niet plaatsvinden.</string>
+ <string lang="nl" key="PAGING_FILE_NOT_ON_SYS_PARTITION">Er is/zijn wisselbestand(en) aanwezig op niet-systeempartitie(s).\n\nWisselbestand(en) kunnen daar niet opgeslagen zijn.</string>
<string lang="nl" key="RESTRICT_PAGING_FILES_TO_SYS_PARTITION">Wilt u Windows instellen dat er alleen op de Windows partitie een wisselbestand wordt aangemaakt?\n\nAls u 'Ja' klikt wordt de computer opnieuw gestart. Start daarna VeraCrypt en de aanmaak van een verborgen OS opnieuw.</string>
- <string lang="nl" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> Anders zal de aannemelijke ontkenbaarheid van het verborgen besturingssysteem aangetast worden.\n\nNoot: indien een vijand de inhoud van deze bestanden (op een niet-systeem partitie) zal analyseren, zou hij kunnen ontdekken dat u deze wizard gebruikte in de verborgen-systeem modus (hetgeen de aanwezigheid van een verborgen besturingssysteem op uw computer kan aantonen). Merk ook op dat deze bestanden door VeraCrypt worden gewist gedurende de aanmaak van een verborgen besturingssysteem.</string>
+ <string lang="nl" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> Anders zal de aannemelijke ontkenbaarheid van het verborgen besturingssysteem aangetast worden.\n\nNoot: indien een vijand de inhoud van deze bestanden (op een niet-systeempartitie) zal analyseren, zou hij kunnen ontdekken dat u deze wizard gebruikte in de verborgen-systeem modus (hetgeen de aanwezigheid van een verborgen besturingssysteem op uw computer kan aantonen). Merk ook op dat deze bestanden door VeraCrypt worden gewist gedurende de aanmaak van een verborgen besturingssysteem.</string>
<string lang="en" key="DECOY_OS_REINSTALL_WARNING">WARNING: During the process of creation of the hidden operating system, you will be required to fully reinstall the currently running system (in order to create a decoy system securely).\n\nNote: The currently running operating system and the entire content of the system partition will be copied to the hidden volume (in order to create the hidden system).\n\n\nAre you sure you will be able to install Windows using a Windows Setup medium (or using a service partition)?</string>
<string lang="en" key="DECOY_OS_REQUIREMENTS">For security reasons, if the currently running operating system requires activation, it must be activated before proceeding. Note that the hidden operating system will be created by copying the content of the system partition to a hidden volume (so if this operating system is not activated, the hidden operating system will not be activated either). For more information, see the section "Security Requirements and Precautions Pertaining to Hidden Volumes" in the VeraCrypt User's Guide.\n\nImportant: Before proceeding, please make sure you have read the section "Security Requirements and Precautions Pertaining to Hidden Volumes" in the VeraCrypt User's Guide.\n\n\nDoes the currently running operating system meet the above condition?</string>
<string lang="en" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Your system uses an extra boot partition. VeraCrypt does not support hibernation on hidden operating systems that use an extra boot partition (decoy systems can be hibernated without any problems).\n\nPlease note that the boot partition would be shared by both the decoy and the hidden system. Therefore, in order to prevent data leaks and problems while resuming from hibernation, VeraCrypt has to prevent the hidden system from writing to the shared boot partition and from hibernating.\n\n\nDo you want to continue? If you select 'No', instructions for removing the extra boot partition will be displayed.</string>
<string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its size so that the operating system can be installed to it.\n\n6) Click 'Apply' and 'OK'.\n\n7) Install Windows on the 'System Reserved' partition.\n\n\nShould an attacker ask why you removed the extra boot partition, you can answer that you wanted to prevent any possible data leaks to the unencrypted boot partition.\n\nNote: You can print this text by clicking the 'Print' button below. If you save a copy of this text or print it (strongly recommended, unless your printer stores copies of documents it prints on its internal drive), you should destroy any copies of it after removing the extra boot partition (otherwise, if such a copy was found, it might indicate that there is a hidden operating system on this computer).</string>
- <string lang="nl" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">WAARSCHUWING: Er is niet-toegewezen ruimte aanwezig tussen de systeem partitie en de eerste partitie daar achter. Na aanmaken van het verborgen besturingssysteem (OS) mag u geen partitie meer maken in deze ruimte, anders zal het verborgen OS systeem niet meer te starten zijn (totdat u deze partitie weer verwijdert).</string>
+ <string lang="nl" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">WAARSCHUWING: Er is niet-toegewezen ruimte aanwezig tussen de systeempartitie en de eerste partitie daar achter. Na aanmaken van het verborgen besturingssysteem (OS) mag u geen partitie meer maken in deze ruimte, anders zal het verborgen OS systeem niet meer te starten zijn (totdat u deze partitie weer verwijdert).</string>
<string lang="nl" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Dit algoritme wordt momenteel niet ondersteunt voor systeemcodering.</string>
<string lang="nl" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Dit algoritme wordt niet ondersteunt in TrueCrypt modus.</string>
<string lang="nl" key="PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">PIM (Persoonlijke iteraties Multiplier) wordt niet ondersteunt in TrueCrypt modus.</string>
- <string lang="en" key="PIM_REQUIRE_LONG_PASSWORD">Password must contain 20 or more characters in order to use the specified PIM.\nShorter passwords can only be used if the PIM is 485 or greater.</string>
+ <string lang="nl" key="PIM_REQUIRE_LONG_PASSWORD">Het wachtwoord moet minimaal 20 tekens bevatten om de opgegeven PIM te gebruiken.\nKleinere wachtwoorden kunnen alleen worden gebruikt als de PIM 485 of groter is.</string>
<string lang="en" key="BOOT_PIM_REQUIRE_LONG_PASSWORD">Pre-boot authentication Password must contain 20 or more characters in order to use the specified PIM.\nShorter passwords can only be used if the PIM is 98 or greater.</string>
<string lang="nl" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">U kunt geen sleutelbestanden gebruiken bij systeemcodering.</string>
<string lang="nl" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Waarschuwing: VeraCrypt kon de originele toetsenbord lay-out niet terugzetten. Dit zou ertoe kunnen leiden dat u een wachtwoord verkeerd ingeeft.</string>
@@ -1116,11 +1117,11 @@
<string lang="nl" key="KEYB_LAYOUT_SYS_ENC_EXPLANATION">Noot: Het wachtwoord moet worden ingetypt in de pre-boot omgeving (voordat Windows start) waar niet-standaard (US) Windows toetsenbord indelingen niet beschikbaar zijn. Daarom moet het wachtwoord altijd worden ingetypt met gebruik van de standaard (US) toetsenbord indeling. Echter, het is belangrijk op te merken dat u geen ECHT standaard (US) toetsenbord nodig hebt. VeraCrypt zorgt er automatisch voor dat u het wachtwoord veilig kunt intypen (nu direct en in de pre-boot omgeving) zelfs als u geen echt standaard (US) toetsenbord hebt.</string>
<string lang="en" key="RESCUE_DISK_INFO">Before you can encrypt the partition/drive, you must create a VeraCrypt Rescue Disk (VRD), which serves the following purposes:\n\n- If the VeraCrypt Boot Loader, master key, or other critical data gets damaged, the VRD allows you to restore it (note, however, that you will still have to enter the correct password then).\n\n- If Windows gets damaged and cannot start, the VRD allows you to permanently decrypt the partition/drive before Windows starts.\n\n- The VRD will contain a backup of the present content of the first drive track (which typically contains a system loader or boot manager) and will allow you to restore it if necessary.\n\nThe VeraCrypt Rescue Disk ISO image will be created in the location specified below.</string>
<string lang="en" key="RESCUE_DISK_WIN_ISOBURN_PRELAUNCH_NOTE">After you click OK, Microsoft Windows Disc Image Burner will be launched. Please use it to burn the VeraCrypt Rescue Disk ISO image to a CD or DVD.\n\nAfter you do so, return to the VeraCrypt Volume Creation Wizard and follow its instructions.</string>
- <string lang="en" key="RESCUE_DISK_BURN_INFO">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to burn it to a CD or DVD.\n\n%lsAfter you burn the Rescue Disk, click Next to verify that it has been correctly burned.</string>
- <string lang="en" key="RESCUE_DISK_BURN_INFO_NO_CHECK">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you should either burn the image to a CD/DVD or move it to a safe location for later use.\n\n%lsClick Next to continue.</string>
+ <string lang="nl" key="RESCUE_DISK_BURN_INFO">Het herstelschijf bestand is aangemaakt en opgeslagen in:\n%s\n\nNu moet u deze branden op een CD of DVD.\n\n%lsNa het maken van de herstelschijf, klik op Volgende om te verifiëren dat deze correct is aangemaakt.</string>
+ <string lang="nl" key="RESCUE_DISK_BURN_INFO_NO_CHECK">Het herstelschijf bestand is aangemaakt en opgeslagen in:\n%s\n\nNu kunt u deze branden op een CD/DVD of het opslaan voor later gebruik op een veilige locatie.\n\n%lsKlik op Volgende om verder te gaan.</string>
<string lang="en" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">IMPORTANT: Note that the file must be written to the CD/DVD as an ISO disk image (not as an individual file). For information on how to do so, please refer to the documentation of your CD/DVD recording software. If you do not have any CD/DVD recording software that can write the ISO disk image to a CD/DVD, click the link below to download such free software.\n\n</string>
- <string lang="en" key="LAUNCH_WIN_ISOBURN">Launch Microsoft Windows Disc Image Burner</string>
- <string lang="nl" key="RESCUE_DISK_BURN_NO_CHECK_WARN">LET OP: Indien u een VeraCrypt Reddingsschijf heeft kan deze niet gebruikt worden voor deze systeem partitie/schijf omdat hij is gemaakt voor een andere master key! Na iedere codering van een systeem partitie/schijf moet een nieuwe reddingsschijf worden aangemaakt, zelfs als u hetzelfde wachtwoord gebruikt.</string>
+ <string lang="nl" key="LAUNCH_WIN_ISOBURN">Start een Microsoft Windows schijf brander</string>
+ <string lang="nl" key="RESCUE_DISK_BURN_NO_CHECK_WARN">LET OP: Indien u een VeraCrypt herstelschijf heeft kan deze niet gebruikt worden voor deze systeempartitie/schijf omdat hij is gemaakt voor een andere hoofdsleutel! Na iedere codering van een systeempartitie/schijf moet een nieuwe herstelschijf worden aangemaakt, zelfs als u hetzelfde wachtwoord gebruikt.</string>
<string lang="nl" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">Fout: Kan de systeemcodering settings niet opslaan.</string>
<string lang="nl" key="CANNOT_INITIATE_SYS_ENCRYPTION_PRETEST">Kan de systeemcodering pre-test niet initiëren.</string>
<string lang="nl" key="CANNOT_INITIATE_HIDDEN_OS_CREATION">Voorbereiding tot aanmaak van verborgen besturingssysteem mislukt.</string>
@@ -1132,7 +1133,7 @@
<string lang="nl" key="DEVICE_WIPE_PAGE_INFO">\n\nNoot: Als u het wisproces onderbreekt en het probeert te hervatten, zal het gehele wisproces van voren af beginnen.</string>
<string lang="nl" key="CONFIRM_WIPE_ABORT">Wilt u het wisproces afbreken?</string>
<string lang="nl" key="CONFIRM_WIPE_START">LET OP: De gehele inhoud van deze partitie/apparaat zal worden gewist.</string>
- <string lang="nl" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">De gehele inhoud van de partitie waar het originele system staat wordt gewist.\n\nNoot: De gehele inhoud van de te wissen partitie is reeds gekopieerd naar de verborgen systeem partitie.</string>
+ <string lang="nl" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">De gehele inhoud van de partitie waar het originele system staat wordt gewist.\n\nNoot: De gehele inhoud van de te wissen partitie is reeds gekopieerd naar de verborgen systeempartitie.</string>
<string lang="nl" key="WIPE_MODE_WARN">WAARSCHUWING: indien u bijv. de 3-cycli wismodus kiest, zal de tijd die nodig is om de partitie/schijf te coderen tot 4 maal langer duren. Zo ook zal, indien u de 35-cycli modus kiest, de benodigde tijd tot 36 maal langer duren. Dit kan zelfs oplopen tot enkele weken.\n\nEchter, merk op dat wissen niet zal geschieden na volledige codering van de partitie/schijf. Wanneer deze codering voltooid is zullen alle data die er naartoe geschreven worden eerst volledig in het interne geheugen gecodeerd worden alvorens geschreven te worden. Dan wordt de prestatie dus NIET aangetast.\n\nBent u er zeker van dat u de wismodus wilt kiezen?</string>
<string lang="nl" key="WIPE_MODE_NONE">Geen (snelst)</string>
<string lang="nl" key="WIPE_MODE_1_RAND">1-maal (random data)</string>
@@ -1143,47 +1144,47 @@
<string lang="nl" key="SYS_MULTI_BOOT_MODE_TITLE">Aantal besturingssystemen</string>
<string lang="nl" key="MULTI_BOOT_FOR_ADVANCED_ONLY">WAARSCHUWING: Onervaren gebruikers wordt het dringend afgeraden Windows te coderen in een multi-boot configuratie.\n\nDoorgaan?</string>
<string lang="en" key="HIDDEN_OS_MULTI_BOOT">When creating/using a hidden operating system, VeraCrypt supports multi-boot configurations only when the following conditions are met:\n\n- The currently running operating system must be installed on the boot drive, which must not contain any other operating systems.\n\n- Operating systems installed on other drives must not use any boot loader residing on the drive on which the currently running operating system is installed.\n\nAre the above conditions met?</string>
- <string lang="en" key="UNSUPPORTED_HIDDEN_OS_MULTI_BOOT_CFG">VeraCrypt does not support this multi-boot configuration when creating/using a hidden operating system.</string>
+ <string lang="nl" key="UNSUPPORTED_HIDDEN_OS_MULTI_BOOT_CFG">VeraCrypt werkt niet met deze multi-boot configuratie bij het aanmaken/gebruiken van een verborgen besturingssysteem.</string>
<string lang="nl" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_TITLE">Boot Schijf</string>
- <string lang="nl" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Is het nu actieve besturingssysteem geïnstalleerd op de boot-schijf?\n\nNoot: Soms is Windows niet geïnstalleerd op dezelfde schijf als de Windows Boot Lader (boot partitie). Indien dit het geval is, kies 'Nee'.</string>
+ <string lang="nl" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Is het nu actieve besturingssysteem geïnstalleerd op de boot-schijf?\n\nNoot: Soms is Windows niet geïnstalleerd op dezelfde schijf als de Windows Bootloader (boot partitie). Indien dit het geval is, kies 'Nee'.</string>
<string lang="nl" key="SYS_PARTITION_MUST_BE_ON_BOOT_DRIVE">VeraCrypt ondersteunt momenteel niet het coderen van een besturingssysteem dat niet opstart vanaf de schijf waarop het is geïnstalleerd.</string>
- <string lang="nl" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_TITLE">Aantal Systeem Schijven</string>
+ <string lang="nl" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_TITLE">Aantal systeemschijven</string>
<string lang="nl" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_HELP">Hoeveel schijven bevatten een besturingssysteem?\n\nNoot: Bijvoorbeeld, als u een besturingssysteem (bijv. Windows, Mac OS X, Linux, etc.) heeft geïnstalleerd op de primaire schijf en enig toegevoegd besturingssysteem geïnstalleerd op een secundair schijf, selecteer dan '2 of meer'.</string>
- <string lang="nl" key="WDE_UNSUPPORTED_FOR_MULTIPLE_SYSTEMS_ON_ONE_DRIVE">VeraCrypt ondersteunt momenteel geen codering van een gehele schijf die meerdere besturingssystemen bevat.\n\nMogelijke oplossingen:\n\n- U kunt nog steeds één van de systemen coderen als u terug gaat en kiest voor codering van een enkele systeem partitie (in tegenstelling tot het coderen van een gehele systeem schijf).\n\n- Als een alternatief kunt u de gehele schijf coderen als u enkele van de systemen verplaatst naar een andere schijf zodat er maar één systeem achterblijft op de schijf die u wilt coderen.</string>
+ <string lang="nl" key="WDE_UNSUPPORTED_FOR_MULTIPLE_SYSTEMS_ON_ONE_DRIVE">VeraCrypt ondersteunt momenteel geen codering van een gehele schijf die meerdere besturingssystemen bevat.\n\nMogelijke oplossingen:\n\n- U kunt nog steeds één van de systemen coderen als u terug gaat en kiest voor codering van een enkele systeempartitie (in tegenstelling tot het coderen van een gehele systeemschijf).\n\n- Als een alternatief kunt u de gehele schijf coderen als u enkele van de systemen verplaatst naar een andere schijf zodat er maar één systeem achterblijft op de schijf die u wilt coderen.</string>
<string lang="nl" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_TITLE">Meerdere Systemen op Enkele Schijf</string>
<string lang="nl" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_HELP">Zijn er andere besturingssystemen geïnstalleerd op de schijf waarop het huidige actieve besturingssysteem is geïnstalleerd?\n\nNoot: Bijvoorbeeld, als het huidige actieve besturingssysteem is geïnstalleerd op schijf #0, dat meerdere partities bevat, en indien één van deze partities Windows bevat en een andere partitie bevat een ander besturingssysteem (bijv. Windows, Mac OS X, Linux, etc.), selecteer dan 'Ja'.</string>
- <string lang="nl" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_TITLE">Niet-Windows Boot Lader</string>
- <string lang="nl" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_HELP">Is een niet-Windows boot lader (of boot manager) geïnstalleerd in het Master Boot Record (MBR)?\n\nNoot: Als de eerste track van de boot schijf bijv. GRUB, LILO, XOSL of een andere niet-Windows boot manager (of boot lader) bevat, klik dan op ‘Ja’.</string>
+ <string lang="nl" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_TITLE">Niet-Windows Bootloader</string>
+ <string lang="nl" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_HELP">Is een niet-Windows bootloader (of boot manager) geïnstalleerd in het Master Boot Record (MBR)?\n\nNoot: Als de eerste track van de boot schijf bijv. GRUB, LILO, XOSL of een andere niet-Windows boot manager (of bootloader) bevat, klik dan op 'Ja'.</string>
<string lang="nl" key="SYSENC_MULTI_BOOT_OUTCOME_TITLE">Multi-Boot</string>
- <string lang="nl" key="CUSTOM_BOOT_MANAGERS_IN_MBR_UNSUPPORTED">VeraCrypt ondersteunt momenteel geen multi-boot configuraties waar een niet-Windows boot lader is geïnstalleerd in het Master Boot Record.\n\nMogelijke oplossingen:\n\n- Als u een boot manager gebruikt om Windows en Linux te starten, verplaats de boot manager (meestal GRUB) van het Master Boot Record naar een partitie. Start dan deze wizard nogmaals en codeer de systeem partitie/schijf. Merk op dat de VeraCrypt Boot Lader uw primaire boot manager zal worden en u zal toestaan de originele boot manager (bijv. GRUB) te starten als een secundaire boot manager (door op ESC te drukken in het VeraCrypt Boot Lader scherm). Aldus zult u Linux kunnen starten.</string>
- <string lang="nl" key="WINDOWS_BOOT_LOADER_HINTS">Als het nu draaiende besturingssysteem (OS) is geïnstalleerd op de boot partitie zult u na codering ervan het wachtwoord dienen op te geven, zelfs als u een ander ongecodeerd Windows systeem wilt starten. Dit omdat ze dezelfde gecodeerde Windows boot lader/manager delen.\n\nIn contrast hiermee: als het nu draaiende OS NIET geïnstalleerd is op de boot partitie (of als de Windows boot lader/manager niet door een ander systeem wordt gebruikt) dan zal, na codering van dit systeem het ingeven van een wachtwoord voor andere ongecodeerde syste(e)m(en) niet nodig zijn. Dan zal alleen het indrukken van de ESC toets voldoende zijn om het ongecodeerde systeem te starten. (Indien er meerdere van deze ongecodeerde systemen zijn zult u in het VeraCrypt Boot Manager Menu moeten aangeven welk systeem te starten).\n\nNoot: Kenmerkend is dat het éérst geïnstalleerde Windows systeem op de boot partitie staat.</string>
+ <string lang="nl" key="CUSTOM_BOOT_MANAGERS_IN_MBR_UNSUPPORTED">VeraCrypt ondersteunt momenteel geen multi-boot configuraties waar een niet-Windows bootloader is geïnstalleerd in het Master Boot Record.\n\nMogelijke oplossingen:\n\n- Als u een boot manager gebruikt om Windows en Linux te starten, verplaats de boot manager (meestal GRUB) van het Master Boot Record naar een partitie. Start dan deze wizard nogmaals en codeer de systeempartitie/schijf. Merk op dat de VeraCrypt Bootloader uw primaire boot manager zal worden en u zal toestaan de originele boot manager (bijv. GRUB) te starten als een secundaire boot manager (door op ESC te drukken in het VeraCrypt Bootloader scherm). Aldus zult u Linux kunnen starten.</string>
+ <string lang="nl" key="WINDOWS_BOOT_LOADER_HINTS">Als het nu draaiende besturingssysteem (OS) is geïnstalleerd op de boot partitie zult u na codering ervan het wachtwoord dienen op te geven, zelfs als u een ander ongecodeerd Windows systeem wilt starten. Dit omdat ze dezelfde gecodeerde Windows bootloader/manager delen.\n\nIn contrast hiermee: als het nu draaiende OS NIET geïnstalleerd is op de boot partitie (of als de Windows bootloader/manager niet door een ander systeem wordt gebruikt) dan zal, na codering van dit systeem het ingeven van een wachtwoord voor andere ongecodeerde syste(e)m(en) niet nodig zijn. Dan zal alleen het indrukken van de ESC toets voldoende zijn om het ongecodeerde systeem te starten. (Indien er meerdere van deze ongecodeerde systemen zijn zult u in het VeraCrypt Boot Manager Menu moeten aangeven welk systeem te starten).\n\nNoot: Kenmerkend is dat het éérst geïnstalleerde Windows systeem op de boot partitie staat.</string>
<string lang="nl" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Codering van "Host Protected Area"</string>
- <string lang="nl" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">Aan het einde van veel harde schijven bestaat een gebied dat normaal gesproken verborgen is voor het besturingssysteem, het ‘Hort Protected Area’ (HPA). Sommige programma’s kunnen echter data lezen en schrijven naar dit gebied.\n\nWAARSCHUWING: Sommige computerfabrikanten gebruiken dit gebied voor de opslag van tools, data voor RAID, systeemherstel, systeem setup, diagnostiek enz. Indien deze data toegankelijk moeten zijn vóór het opstarten, mag de HPA NIET gecodeerd worden. (Kies boven ‘Nee’)\n\nWilt u dat VeraCrypt een HPA opzoekt en codeert?</string>
+ <string lang="nl" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">Aan het einde van veel harde schijven bestaat een gebied dat normaal gesproken verborgen is voor het besturingssysteem, het 'Hort Protected Area' (HPA). Sommige programma's kunnen echter data lezen en schrijven naar dit gebied.\n\nWAARSCHUWING: Sommige computerfabrikanten gebruiken dit gebied voor de opslag van tools, data voor RAID, systeemherstel, systeem setup, diagnostiek enz. Indien deze data toegankelijk moeten zijn vóór het opstarten, mag de HPA NIET gecodeerd worden. (Kies boven 'Nee')\n\nWilt u dat VeraCrypt een HPA opzoekt en codeert?</string>
<string lang="nl" key="SYSENC_TYPE_PAGE_TITLE">Type SysteemCodering</string>
<string lang="nl" key="SYSENC_NORMAL_TYPE_HELP">Selecteer deze optie als u de systeempartitie of de gehele systeemschijf wilt coderen zonder deze te verbergen.</string>
<string lang="en" key="SYSENC_HIDDEN_TYPE_HELP">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion). If you select this option, you will create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password to the hidden operating system. For a detailed explanation, please click the link below.</string>
<string lang="en" key="HIDDEN_OS_PREINFO">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion).\n\nUsing this wizard, you can create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password for the hidden operating system.</string>
<string lang="nl" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_TITLE">Verborgen besturingssysteem</string>
- <string lang="nl" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">In de stappen hierna worden twee volumes (Buiten en Verborgen) aangemaakt in de eerste partitie achter de systeem partitie. Het verborgen volume zal het verborgen besturingssysteem (OS) bevatten. VeraCrypt zal dit verborgen OS aanmaken door de inhoud van de systeem partitie (met daarop het nu draaiende OS) te kopiëren naar het verborgen volume. Naar het buiten volume zult u enige belangrijk uitziende bestanden kopiëren die u NIET wilt verbergen. Ze staan daar voor degene die u dwingt het wachtwoord te onthullen van de Verborgen OS partitie. Als u dan het wachtwoord van het buiten volume in de verborgen OS partitie geeft zal het verborgen volume met daarin het verborgen OS verborgen blijven.\n\nUiteindelijk zult u op de systeem partitie van het nu draaiende OS een nieuw OS installeren, het zgn. lokvogel OS en dit coderen. Dit mag geen gevoelige data bevatten en zal er staan t.b.v. degene die u dwingt het pre-boot authenticatie wachtwoord prijs te geven. Totaal zullen er drie wachtoorden zijn. Twee ervan kunt u onthullen (voor het buiten volume en het lokvogel OS). Na ingave van het derde wachtwoord zal het verborgen OS starten.</string>
+ <string lang="nl" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">In de stappen hierna worden twee volumes (Buiten en Verborgen) aangemaakt in de eerste partitie achter de systeempartitie. Het verborgen volume zal het verborgen besturingssysteem (OS) bevatten. VeraCrypt zal dit verborgen OS aanmaken door de inhoud van de systeempartitie (met daarop het nu draaiende OS) te kopiëren naar het verborgen volume. Naar het buiten volume zult u enige belangrijk uitziende bestanden kopiëren die u NIET wilt verbergen. Ze staan daar voor degene die u dwingt het wachtwoord te onthullen van de Verborgen OS partitie. Als u dan het wachtwoord van het buiten volume in de verborgen OS partitie geeft zal het verborgen volume met daarin het verborgen OS verborgen blijven.\n\nUiteindelijk zult u op de systeempartitie van het nu draaiende OS een nieuw OS installeren, het zgn. lokvogel OS en dit coderen. Dit mag geen gevoelige data bevatten en zal er staan t.b.v. degene die u dwingt het pre-boot authenticatie wachtwoord prijs te geven. Totaal zullen er drie wachtoorden zijn. Twee ervan kunt u onthullen (voor het buiten volume en het lokvogel OS). Na ingave van het derde wachtwoord zal het verborgen OS starten.</string>
<string lang="nl" key="SYSENC_DRIVE_ANALYSIS_TITLE">Opsporen Verborgen Sectoren</string>
- <string lang="nl" key="SYSENC_DRIVE_ANALYSIS_INFO">Wacht a.u.b. terwijl VeraCrypt mogelijke verborgen sectoren detecteert aan het einde van de systeem schijf. Dit kan lang duren.\n\nNoot: in zeldzame gevallen zal het systeem niet meer reageren tijdens dit detectie proces. Indien dit gebeurt, herstart dan de computer en start VeraCrypt opnieuw. Volg dan dezelfde stappen maar sla dit detectie proces over. Merk op dat dit probleem niet wordt veroorzaakt door een fout in VeraCrypt.</string>
+ <string lang="nl" key="SYSENC_DRIVE_ANALYSIS_INFO">Wacht a.u.b. terwijl VeraCrypt mogelijke verborgen sectoren detecteert aan het einde van de systeemschijf. Dit kan lang duren.\n\nNoot: in zeldzame gevallen zal het systeem niet meer reageren tijdens dit detectie proces. Indien dit gebeurt, herstart dan de computer en start VeraCrypt opnieuw. Volg dan dezelfde stappen maar sla dit detectie proces over. Merk op dat dit probleem niet wordt veroorzaakt door een fout in VeraCrypt.</string>
<string lang="nl" key="SYS_ENCRYPTION_SPAN_TITLE">Te Coderen Gebied</string>
<string lang="en" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Select this option if you want to encrypt the entire drive on which the currently running Windows system is installed. The whole drive, including all its partitions, will be encrypted except the first track where the VeraCrypt Boot Loader will reside. Anyone who wants to access a system installed on the drive, or files stored on the drive, will need to enter the correct password each time before the system starts. This option cannot be used to encrypt a secondary or external drive if Windows is not installed on it and does not boot from it.</string>
<string lang="nl" key="COLLECTING_RANDOM_DATA_TITLE">Verzamelen Random Data</string>
<string lang="nl" key="KEYS_GEN_TITLE">Sleutels aangemaakt</string>
- <string lang="en" key="CD_BURNER_NOT_PRESENT">VeraCrypt has found no CD/DVD burner connected to your computer. VeraCrypt needs a CD/DVD burner to burn a bootable VeraCrypt Rescue Disk containing a backup of the encryption keys, VeraCrypt boot loader, original system loader, etc.\n\nWe strongly recommend that you burn the VeraCrypt Rescue Disk.</string>
+ <string lang="nl" key="CD_BURNER_NOT_PRESENT">VeraCrypt kan geen CD/DVD-brander vinden die is aangesloten aan uw computer. VeraCrypt heeft een CD/DVD-brander nodig om een opstartbare VeraCrypt herstelschijf te maken met een back-up van codering sleutels, VeraCrypt bootloader, originele systeemloader, enz.\n\nWe adviseren u om een VeraCrypt herstelschijf te branden.</string>
<string lang="nl" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO">Ik heb geen CD/DVD brander, maar sla het herstelschijf ISO bestand op op een portable station (b.v. USB flash schijf).</string>
<string lang="nl" key="CD_BURNER_NOT_PRESENT_WILL_CONNECT_LATER">Ik zal later een CD/DVD brander aan de computer aansluiten. Het proces nu afbreken.</string>
<string lang="nl" key="CD_BURNER_NOT_PRESENT_CONNECTED_NOW">Een CD/DVD brander is nu aan de computer aangesloten. ga verder en maak een herstelschijf.</string>
<string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Please follow these steps:\n\n1) Connect a removable drive, such as a USB flash drive, to your computer now.\n\n2) Copy the VeraCrypt Rescue Disk image file (%s) to the removable drive.\n\nIn case you need to use the VeraCrypt Rescue Disk in the future, you will be able to connect your removable drive (containing the VeraCrypt Rescue Disk image) to a computer with a CD/DVD burner and create a bootable VeraCrypt Rescue Disk by burning the image to a CD or DVD. IMPORTANT: Note that the VeraCrypt Rescue Disk image file must be written to the CD/DVD as an ISO disk image (not as an individual file).</string>
- <string lang="nl" key="RESCUE_DISK_RECORDING_TITLE">Reddingsschijf Maken</string>
- <string lang="nl" key="RESCUE_DISK_CREATED_TITLE">Reddingsschijf Aangemaakt</string>
+ <string lang="nl" key="RESCUE_DISK_RECORDING_TITLE">Hersteschijf maken</string>
+ <string lang="nl" key="RESCUE_DISK_CREATED_TITLE">Herstelschijf aangemaakt</string>
<string lang="nl" key="SYS_ENCRYPTION_PRETEST_TITLE">System Codering Pre-test</string>
- <string lang="nl" key="RESCUE_DISK_DISK_VERIFIED_TITLE">Reddingsschijf Geverifieerd</string>
- <string lang="nl" key="RESCUE_DISK_VERIFIED_INFO">\nDe VeraCrypt Reddingsschijf is succesvol gecontroleerd. Verwijder het a.u.b. uit het station en bewaar het op een veilige plaats.\n\nKlik op Volgende om door te gaan.</string>
- <string lang="nl" key="REMOVE_RESCUE_DISK_FROM_DRIVE">WAARSCHUWING: Bij de volgende stappen mag de VeraCrypt Reddingsschijf NIET in het station zitten. Anders is het niet mogelijk het proces goed af te ronden.\n\nHaal het uit het station en berg hem op een veilige plaats op. Klik dan op OK.</string>
- <string lang="nl" key="PREBOOT_NOT_LOCALIZED">Waarschuwing: Door technische beperkingen van de pre-boot omgeving, kunnen alleen maar Engelse teksten door VeraCrypt worden weergegeven in de pre-boot omgeving (voordat Windows start). Het VeraCrypt Boot Lader gebruikersscherm is helemaal in het Engels.\n\nDoorgaan?</string>
- <string lang="nl" key="SYS_ENCRYPTION_PRETEST_INFO">Alvorens uw systeem partitie of schijf te coderen, moet VeraCrypt eerst verifieren dat alles goed werkt.\n\nNadat u op Test heeft geklikt, zullen alle benodigde componenten (bijv. de pre-boot authenticatie component, d.w.z. de VeraCrypt Boot Lader) worden geïnstalleerd en wordt uw computer opnieuw opgestart. Daarna moet u uw wachtwoord intypen in het VeraCrypt Boot Lader scherm dat zal verschijnen voordat Windows start. Na het starten van Windows, zult u automatisch worden geïnformeerd over de resultaten van de pre-test.\n\nHet volgende apparaat zal worden aangepast: Schijf #%d\n\n\nAls u op Annuleer drukt, zal niets worden geïnstalleerd en zal de pre-test niet worden uitgevoerd.</string>
+ <string lang="nl" key="RESCUE_DISK_DISK_VERIFIED_TITLE">Herstelschijf gecontroleerd</string>
+ <string lang="nl" key="RESCUE_DISK_VERIFIED_INFO">\nDe VeraCrypt herstelschijf is succesvol gecontroleerd. Verwijder het a.u.b. uit het station en bewaar het op een veilige plaats.\n\nKlik op Volgende om door te gaan.</string>
+ <string lang="nl" key="REMOVE_RESCUE_DISK_FROM_DRIVE">WAARSCHUWING: Bij de volgende stappen mag de VeraCrypt herstelschijf NIET in het station zitten. Anders is het niet mogelijk het proces goed af te ronden.\n\nHaal het uit het station en berg hem op een veilige plaats op. Klik dan op OK.</string>
+ <string lang="nl" key="PREBOOT_NOT_LOCALIZED">Waarschuwing: Door technische beperkingen van de pre-boot omgeving, kunnen alleen maar Engelse teksten door VeraCrypt worden weergegeven in de pre-boot omgeving (voordat Windows start). Het VeraCrypt Bootloader gebruikersscherm is helemaal in het Engels.\n\nDoorgaan?</string>
+ <string lang="nl" key="SYS_ENCRYPTION_PRETEST_INFO">Alvorens uw systeempartitie of schijf te coderen, moet VeraCrypt eerst verifieren dat alles goed werkt.\n\nNadat u op Test heeft geklikt, zullen alle benodigde componenten (bijv. de pre-boot authenticatie component, d.w.z. de VeraCrypt Bootloader) worden geïnstalleerd en wordt uw computer opnieuw opgestart. Daarna moet u uw wachtwoord intypen in het VeraCrypt Bootloader scherm dat zal verschijnen voordat Windows start. Na het starten van Windows, zult u automatisch worden geïnformeerd over de resultaten van de pre-test.\n\nHet volgende apparaat zal worden aangepast: Schijf #%d\n\n\nAls u op Annuleer drukt, zal niets worden geïnstalleerd en zal de pre-test niet worden uitgevoerd.</string>
<string lang="en" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_1">IMPORTANT NOTES -- PLEASE READ OR PRINT (click 'Print'):\n\nNote that none of your files will be encrypted before you successfully restart your computer and start Windows. Thus, if anything fails, your data will NOT be lost. However, if something does go wrong, you might encounter difficulties in starting Windows. Therefore, please read (and, if possible, print) the following guidelines on what to do if Windows cannot start after you restart the computer.\n\n</string>
<string lang="en" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_2">What to Do If Windows Cannot Start\n------------------------------------------------\n\nNote: These instructions are valid only if you have not started encrypting.\n\n- If Windows does not start after you enter the correct password (or if you repeatedly enter the correct password but VeraCrypt says that the password is incorrect), do not panic. Restart (power off and on) the computer, and in the VeraCrypt Boot Loader screen, press the Esc key on your keyboard (and if you have multiple systems, choose which to start). Then Windows should start (provided that it is not encrypted) and VeraCrypt will automatically ask whether you want to uninstall the pre-boot authentication component. Note that the previous steps do NOT work if the system partition/drive is encrypted (nobody can start Windows or access encrypted data on the drive without the correct password even if he or she follows the previous steps).\n\n</string>
<string lang="en" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_3">- If the previous steps do not help or if the VeraCrypt Boot Loader screen does not appear (before Windows starts), insert the VeraCrypt Rescue Disk into your CD/DVD drive and restart your computer. If the VeraCrypt Rescue Disk screen does not appear (or if you do not see the 'Repair Options' item in the 'Keyboard Controls' section of the VeraCrypt Rescue Disk screen), it is possible that your BIOS is configured to attempt to boot from hard drives before CD/DVD drives. If that is the case, restart your computer, press F2 or Delete (as soon as you see a BIOS start-up screen), and wait until a BIOS configuration screen appears. If no BIOS configuration screen appears, restart (reset) the computer again and start pressing F2 or Delete repeatedly as soon as you restart (reset) the computer. When a BIOS configuration screen appears, configure your BIOS to boot from the CD/DVD drive first (for information on how to do so, please refer to the documentation for your BIOS/motherboard or contact your computer vendor's technical support team for assistance). Then restart your computer. The VeraCrypt Rescue Disk screen should appear now. In the VeraCrypt Rescue Disk screen, select 'Repair Options' by pressing F8 on your keyboard. From the 'Repair Options' menu, select 'Restore original system loader'. Then remove the Rescue Disk from your CD/DVD drive and restart your computer. Windows should start normally (provided that it is not encrypted).\n\n</string>
@@ -1195,9 +1196,9 @@
<string lang="en" key="NONSYS_INPLACE_DEC_DECRYPTION_PAGE_INFO">\n\nYou can click Pause or Defer anytime to interrupt the process of decryption, exit this wizard, restart or shut down the computer, and then resume the process, which will continue from the point where it was stopped. Note that the volume cannot be mounted until it has been fully decrypted.</string>
<string lang="nl" key="SYSENC_HIDDEN_OS_INITIAL_INFO_TITLE">Hidden System Started</string>
<string lang="nl" key="SYSENC_HIDDEN_OS_WIPE_INFO_TITLE">Origineel Systeem</string>
- <string lang="nl" key="SYSENC_HIDDEN_OS_WIPE_INFO">Windows maakt (zonder uw medeweten) log-bestanden en tijdelijke bestanden aan op de syteempartitie. Ook de inhoud van RAM wordt opgeslagen in de slaap- en wisselbestanden op de systeem partitie. Indien een afperser bestanden op de partitie waar het originele besturingssysteem (OS) staat zou analyseren (waarvan het verborgen systeem een kloon is), zou hij bijv. kunnen achterhalen dat u de VeraCrypt wizard gebruikte om een verborgen OS aan te maken (hetgeen een sterke aanwijzing is voor het bestaan van een verborgen OS op uw computer).\n\nOm dit te voorkomen zal in de volgende stappen de gehele inhoud van de partitie waar het originele OS staat veilig worden gewist. Daarna, t.b.v. de aannemelijke ontkenbaarheid, moet u een nieuw OS installeren op deze partitie en dit coderen. Daarmee maakt u een lokvogel OS waarna het proces van aanmaak van een verborgen OS afgerond zal zijn.</string>
- <string lang="nl" key="OS_WIPING_NOT_FINISHED_ASK">Het verborgen besturingssysteem is succesvol aangemaakt. Voordat u het echter kunt gebruiken (en het aannemelijk ontkenbaar is), dient u de gehele inhoud van de partitie met daarop het nu draaiende besturingssysteem (OS) m.b.v. VeraCrypt veilig te wissen. U dient hiertoe nu eerst de computer te herstarten en dan bij de pre-boot authenticatie het wachtwoord in te geven van het verborgen OS. Dan zal, na het starten van dit verborgen OS, de VeraCrypt wizard automatisch starten.\n\nNoot: Als u ervoor kiest het proces tot aanmaak van een verborgen operating syteen NU te beëindigen, zult u het proces NIET kunnen hervatten en zal het verborgen besturingssysteem NIET toegankelijk zijn omdat de VeraCrypt boot lader dan wordt verwijderd.</string>
- <string lang="nl" key="HIDDEN_OS_CREATION_NOT_FINISHED_ASK">U heeft het aanmaken van een verborgen besturingssysteem gepland. Het proces is nog niet afgerond. Voor de afronding dient u de computer opnieuw op te starten en dan in het scherm van de VeraCrypt Boot Lader (dat vóór Windows verschijnt) uw wachtwoord voor het verborgen besturingssysteem in te geven.\n\nNoot: indien u ervoor kiest het proces nu af te breken zult u NIET in staat zijn het te hervatten.</string>
+ <string lang="nl" key="SYSENC_HIDDEN_OS_WIPE_INFO">Windows maakt (zonder uw medeweten) log-bestanden en tijdelijke bestanden aan op de syteempartitie. Ook de inhoud van RAM wordt opgeslagen in de slaap- en wisselbestanden op de systeempartitie. Indien een afperser bestanden op de partitie waar het originele besturingssysteem (OS) staat zou analyseren (waarvan het verborgen systeem een kloon is), zou hij bijv. kunnen achterhalen dat u de VeraCrypt wizard gebruikte om een verborgen OS aan te maken (hetgeen een sterke aanwijzing is voor het bestaan van een verborgen OS op uw computer).\n\nOm dit te voorkomen zal in de volgende stappen de gehele inhoud van de partitie waar het originele OS staat veilig worden gewist. Daarna, t.b.v. de aannemelijke ontkenbaarheid, moet u een nieuw OS installeren op deze partitie en dit coderen. Daarmee maakt u een lokvogel OS waarna het proces van aanmaak van een verborgen OS afgerond zal zijn.</string>
+ <string lang="nl" key="OS_WIPING_NOT_FINISHED_ASK">Het verborgen besturingssysteem is succesvol aangemaakt. Voordat u het echter kunt gebruiken (en het aannemelijk ontkenbaar is), dient u de gehele inhoud van de partitie met daarop het nu draaiende besturingssysteem (OS) m.b.v. VeraCrypt veilig te wissen. U dient hiertoe nu eerst de computer te herstarten en dan bij de pre-boot authenticatie het wachtwoord in te geven van het verborgen OS. Dan zal, na het starten van dit verborgen OS, de VeraCrypt wizard automatisch starten.\n\nNoot: Als u ervoor kiest het proces tot aanmaak van een verborgen operating syteen NU te beëindigen, zult u het proces NIET kunnen hervatten en zal het verborgen besturingssysteem NIET toegankelijk zijn omdat de VeraCrypt bootloader dan wordt verwijderd.</string>
+ <string lang="nl" key="HIDDEN_OS_CREATION_NOT_FINISHED_ASK">U heeft het aanmaken van een verborgen besturingssysteem gepland. Het proces is nog niet afgerond. Voor de afronding dient u de computer opnieuw op te starten en dan in het scherm van de VeraCrypt Bootloader (dat vóór Windows verschijnt) uw wachtwoord voor het verborgen besturingssysteem in te geven.\n\nNoot: indien u ervoor kiest het proces nu af te breken zult u NIET in staat zijn het te hervatten.</string>
<string lang="nl" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_RETRY">Herstart de computer en ga verder</string>
<string lang="nl" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_TERMINATE">Permanent afbreken proces tot aanmaak van verborgen besturingssysteem</string>
<string lang="nl" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_ASK_LATER">Doe nu niets, vraag later opnieuw</string>
@@ -1229,20 +1230,20 @@
<string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_17">If all the instructions are followed and if the precautions and requirements listed in the section "Security Requirements and Precautions Pertaining to Hidden Volumes" in the VeraCrypt User's Guide are followed, it should be impossible to prove that the hidden volume and hidden operating system exist, even when the outer volume is mounted or when the decoy operating system is decrypted or started.\n\nIf you save a copy of this text or print it (strongly recommended, unless your printer stores copies of documents it prints on its internal drive), you should destroy any copies of it after you have created the decoy system and after you have understood all the information contained in the text (otherwise, if such a copy was found, it might indicate that there is a hidden operating system on this computer).\n\n</string>
<string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_18">WARNING: IF YOU DO NOT PROTECT THE HIDDEN VOLUME (for information on how to do so, refer to the section "Protection of Hidden Volumes Against Damage" in the VeraCrypt User's Guide), DO NOT WRITE TO THE OUTER VOLUME (note that the decoy operating system is NOT installed in the outer volume). OTHERWISE, YOU MAY OVERWRITE AND DAMAGE THE HIDDEN VOLUME (AND THE HIDDEN OPERATING SYSTEM WITHIN IT)!</string>
<string lang="nl" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Klonen besturingssysteem</string>
- <string lang="nl" key="HIDDEN_OS_CREATION_PREINFO_HELP">In de volgende stappen zal VeraCrypt het verborgen besturingssysteem aanmaken door de inhoud van de system partitie naar het verborgen volume te kopiëren (de te kopiëren data worden on-the-fly gecodeerd met een andere codering sleutel dan die van het lokvogel besturingssysteem)\n\nMerk op dat dit proces wordt uitgevoerd in de pre-boot omgeving (dus voordat Windows start) en dat voltooiing lang kan duren: meerder uren of zelfs dagen (afhankelijk van de grootte van de systeem partitie en van de prestaties van uw computer).\n\nU kunt het proces onderbreken, de computer afsluiten, en weer hervatten na aanzetten van de computer. Echter, na onderbreking zal het proces van het kopiëren en coderen van de systeem partitie altijd weer van voren af aan beginnen omdat de inhoud van deze partitie tijdens het klonen niet gewijzigd mag worden.</string>
+ <string lang="nl" key="HIDDEN_OS_CREATION_PREINFO_HELP">In de volgende stappen zal VeraCrypt het verborgen besturingssysteem aanmaken door de inhoud van de systeempartitie naar het verborgen volume te kopiëren (de te kopiëren data worden Op-De-Plaats gecodeerd met een andere codering sleutel dan die van het lokvogel besturingssysteem)\n\nMerk op dat dit proces wordt uitgevoerd in de pre-boot omgeving (dus voordat Windows start) en dat voltooiing lang kan duren: meerder uren of zelfs dagen (afhankelijk van de grootte van de systeempartitie en van de prestaties van uw computer).\n\nU kunt het proces onderbreken, de computer afsluiten, en weer hervatten na aanzetten van de computer. Echter, na onderbreking zal het proces van het kopiëren en coderen van de systeempartitie altijd weer van voren af aan beginnen omdat de inhoud van deze partitie tijdens het klonen niet gewijzigd mag worden.</string>
<string lang="nl" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Wilt u het gehele proces tot aanmaak van een verborgen besturingssysteem stoppen?\n\nNoot: U zult het proces NIET kunnen hervatten als u nu stopt.</string>
<string lang="nl" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Wilt u de systeemcodering pre-test annuleren?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
- <string lang="nl" key="SYS_DRIVE_NOT_ENCRYPTED">De systeem partitie/schijf blijkt niet gecodeerd te zijn (ook niet gedeeltelijk).</string>
- <string lang="nl" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Uw systeem partitie/schijf is gecodeerd (volledig of geheel).\n\nDecodeer a.u.b. uw systeem partitie/schijf geheel alvorens verder te gaan. Om dit te doen, selecteer 'Systeem' &gt; 'Permanent Decoderen Systeem Partitie/Schijf' uit het menu van het hoofdscherm van VeraCrypt.</string>
- <string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
- <string lang="nl" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Uw systeem partitie/schijf wordt op dit moment gecodeerd, gedecodeerd, of op andere wijze aangepast. Onderbreek a.u.b. de codering/decodering/aanpassing, of wacht tot het proces is afgerond, alvorens verder te gaan.</string>
- <string lang="nl" key="SYSTEM_ENCRYPTION_IN_PROGRESS_ELSEWHERE">Een exemplaar van de VeraCrypt volume aanmaak wizard draait op dit moment op dit systeem en is bezig met voorbereiden tot of de codering/decodering zelf van de systeem partitie/schijf. Voordat u verder gaat, wacht a.u.b.totdat deze klaar is of sluit hem af. Als u deze niet af kunt sluiten, herstart a.u.b. uw computer alvorens verder te gaan.</string>
- <string lang="nl" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">Het coderen/decoderen van de systeem partitie/schijf is niet voltooid. Wacht a.u.b. tot het is voltooid alvorens verder te gaan.</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
+ <string lang="nl" key="SYS_DRIVE_NOT_ENCRYPTED">De systeempartitie/schijf blijkt niet gecodeerd te zijn (ook niet gedeeltelijk).</string>
+ <string lang="nl" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Uw systeempartitie/schijf is gecodeerd (volledig of geheel).\n\nDecodeer a.u.b. uw systeempartitie/schijf geheel alvorens verder te gaan. Om dit te doen, selecteer 'Systeem' &gt; 'Permanent Decoderen Systeempartitie/Schijf' uit het menu van het hoofdscherm van VeraCrypt.</string>
+ <string lang="nl" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Als de systeempartitie/-schijf is gecodeerd (deels of volledig), kunt u VeraCrypt niet downgraden (maar u kunt wel upgraden of een zelfde versie opnieuw installeren).</string>
+ <string lang="nl" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Uw systeempartitie/schijf wordt op dit moment gecodeerd, gedecodeerd, of op andere wijze aangepast. Onderbreek a.u.b. de codering/decodering/aanpassing, of wacht tot het proces is afgerond, alvorens verder te gaan.</string>
+ <string lang="nl" key="SYSTEM_ENCRYPTION_IN_PROGRESS_ELSEWHERE">Een exemplaar van de VeraCrypt volume aanmaak wizard draait op dit moment op dit systeem en is bezig met voorbereiden tot of de codering/decodering zelf van de systeempartitie/schijf. Voordat u verder gaat, wacht a.u.b.totdat deze klaar is of sluit hem af. Als u deze niet af kunt sluiten, herstart a.u.b. uw computer alvorens verder te gaan.</string>
+ <string lang="nl" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">Het coderen/decoderen van de systeempartitie/schijf is niet voltooid. Wacht a.u.b. tot het is voltooid alvorens verder te gaan.</string>
<string lang="nl" key="ERR_ENCRYPTION_NOT_COMPLETED">Fout: Het coderen/decoderen van de partitie/schijf is niet voltooid. Het moet eerst afgerond worden.</string>
<string lang="nl" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">Fout: Het coderingsproces van de partitie/volume is niet voltooid. Het moet eerst voltooid worden.\n\nOm het proces te hervatten, selecteer 'Volumes' &gt; 'Hervat Onderbroken Proces' uit het menu van het hoofdscherm van VeraCrypt.</string>
<string lang="nl" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Het wachtwoord is goed, VeraCrypt heeft de volumeheader gedecodeerd maar ontdekt dat dit een verborgen systeemvolume is. U kunt de volumeheader van een verborgen systeemvolume niet op deze manier wijzigen.\n\nOm het wachtwoord van een verborgen systeemvolume te wijzigen, start het verborgen besturingssysteem en kies dan 'Systeem' &gt; 'Verander wachtwoord' uit het menu van het hoofdscherm van VeraCrypt.\n\nOm het header key afleidingsalgoritme aan te maken, start het verborgen besturingssysteem en lies dan 'Systeem' &gt; 'Creëer Header Key Afleidingsalgoritme'.</string>
- <string lang="nl" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt ondersteunt geen Op-De-Plaats decodering van een verborgen systeem partitie.\n\nNoot:Als u de lokvogel systeem partitie wilt decoderen, start het lokvogel besturingssysteem en selecteer 'Systeem' &gt; 'Permanent Decoderen Systeem Partitie/Schijf' in het VeraCrypt hoofdscherm.</string>
+ <string lang="nl" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt ondersteunt geen Op-De-Plaats decodering van een verborgen systeempartitie.\n\nNoot:Als u de lokvogel systeempartitie wilt decoderen, start het lokvogel besturingssysteem en selecteer 'Systeem' &gt; 'Permanent Decoderen Systeempartitie/Schijf' in het VeraCrypt hoofdscherm.</string>
<string lang="nl" key="ERR_PARAMETER_INCORRECT">Fout: Incorrecte/ongeldige parameter.</string>
<string lang="nl" key="DEVICE_SELECTED_IN_NON_DEVICE_MODE">U heeft een partitie of apparaat geselecteerd maar de functie van de wizard die u koos is alleen maar geschikt voor bestandscontainers.\n\nWilt u een andere functie van de wizard kiezen?</string>
<string lang="nl" key="CONFIRM_CHANGE_WIZARD_MODE_TO_FILE_CONTAINER">Wilt u in plaats hiervan een VeraCrypt bestandscontainer aanmaken?</string>
@@ -1250,23 +1251,23 @@
<string lang="nl" key="CONFIRM_DECRYPT_SYS_DEVICE">Bent u er zeker van dat u de systeempartitie/-schijf permanent wilt decoderen?</string>
<string lang="nl" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">VOORZICHTIG: Als u de systeempartitie/-schijf permanent decodeert, worden er ongecodeerde data naar geschreven.\n\nBent u er zeker van dat u de systeempartitie/-schijf permanent wilt decoderen?</string>
<string lang="nl" key="CONFIRM_DECRYPT_NON_SYS_DEVICE">Weet u zeker dat u het navolgende station permanent wilt decoderen?</string>
- <string lang="en" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">CAUTION: If you permanently decrypt the VeraCrypt volume, unencrypted data will be written to the disk.\n\nAre you really sure you want to permanently decrypt the selected volume?</string>
- <string lang="nl" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Waarschuwing: als u codes in cascade gebruikt voor system codering, kunt u de volgende problemen tegenkomen:\n\n)1 De VeraCrypt Boot Lader is dan groter dan normaal waardoor er niet genoeg ruimte zou kunnen zijn op de eerste track van de schijf voor een back-up van deze Boot Lader. Als de Boot Lader beschadigd raakt, hetgeen nogal eens gebeurt (bijv. door slecht ontworpen anti-piraterij activatieprocedures van bepaalde programma’s), heeft u de VeraCrypt Reddingsschijf nodig om op te starten of om de Boot Lader te repareren.\n\n2) Op sommige computers neemt het herstarten uit de slaapstand meer tijd in beslag.\n\nDeze mogelijke problemen kunt u vermijden door een niet-cascade coderingsalgoritme (bijv. AES) te kiezen.\n\nBent u er zeker van dat u codes in cascade wilt gebruiken?</string>
+ <string lang="nl" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">OPGELET: Als u het VeraCrypt volume permanent decodeerd wordt ongecodeerde data op de schijf weggeschreven.\n\nWeet u zeker dat u de geselecteerde volume permanent wilt decoderen?</string>
+ <string lang="nl" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Waarschuwing: als u codes in cascade gebruikt voor system codering, kunt u de volgende problemen tegenkomen:\n\n)1 De VeraCrypt Bootloader is dan groter dan normaal waardoor er niet genoeg ruimte zou kunnen zijn op de eerste track van de schijf voor een back-up van deze Bootloader. Als de Bootloader beschadigd raakt, hetgeen nogal eens gebeurt (bijv. door slecht ontworpen anti-piraterij activatieprocedures van bepaalde programma's), heeft u de VeraCrypt herstelschijf nodig om op te starten of om de Bootloader te repareren.\n\n2) Op sommige computers neemt het herstarten uit de slaapstand meer tijd in beslag.\n\nDeze mogelijke problemen kunt u vermijden door een niet-cascade coderingsalgoritme (bijv. AES) te kiezen.\n\nBent u er zeker van dat u codes in cascade wilt gebruiken?</string>
<string lang="nl" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">Als u enige van de hiervoor beschreven problemen tegenkomt, decodeer de partitie/schijf (als het is gecodeerd) en codeer het daarna opnieuw met gebruik van een niet-cascade-code (bijv. AES).</string>
<string lang="en" key="UPDATE_TC_IN_DECOY_OS_FIRST">WARNING: For safety and security reasons, you should update VeraCrypt on the decoy operating system before you update it on the hidden operating system.\n\nTo do so, boot the decoy system and run the VeraCrypt installer from within it. Then boot the hidden system and run the installer from within it as well.\n\nNote: The decoy system and the hidden system share a single boot loader. If you upgraded VeraCrypt only on the hidden system (but not on the decoy system), the decoy system would contain a VeraCrypt driver and VeraCrypt applications whose version numbers are different from the version number of the VeraCrypt Boot Loader. Such a discrepancy might indicate that there is a hidden operating system on this computer.\n\n\nDo you want to continue?</string>
- <string lang="nl" key="UPDATE_TC_IN_HIDDEN_OS_TOO">Het versienummer van de VeraCrypt Boot Lader waarmee dit besturingssysteem (OS) opstartte verschilt van het versienummer van de VeraCrypt driver (en applicaties) geïnstalleerd op dit OS.\n\nU zou de VeraCrypt installer met eenzelfde versienummer als dat van de boot lader moeten starten om VeraCrypt op dit OS bij te werken.</string>
+ <string lang="nl" key="UPDATE_TC_IN_HIDDEN_OS_TOO">Het versienummer van de VeraCrypt Bootloader waarmee dit besturingssysteem (OS) opstartte verschilt van het versienummer van de VeraCrypt driver (en applicaties) geïnstalleerd op dit OS.\n\nU zou de VeraCrypt installer met eenzelfde versienummer als dat van de bootloader moeten starten om VeraCrypt op dit OS bij te werken.</string>
<string lang="en" key="BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION">The version number of the VeraCrypt Boot Loader that booted this operating system is different from the version number of the VeraCrypt driver (and of the VeraCrypt applications) installed on this system. Note that older versions may contain bugs fixed in later versions.\n\nIf you did not boot from the VeraCrypt Rescue Disk, you should reinstall VeraCrypt or upgrade it to the latest stable version (the boot loader will be updated too).\n\nIf you booted from the VeraCrypt Rescue Disk, you should update it ('System' > 'Create Rescue Disk').</string>
- <string lang="nl" key="BOOT_LOADER_UPGRADE_OK">De VeraCrypt Boot Lader heeft een upgrade gehad.\n\nHet wordt sterk aangeraden een nieuwe VeraCrypt Reddingsschijf aan te maken (die ook de nieuwe versie van de VeraCrypt Boot Lader zal bevatten) door te selecteren 'Systeem' &gt; 'Maak Reddingsschijf aan' nadat u uw computer opnieuw opgestart heeft.</string>
- <string lang="nl" key="BOOT_LOADER_UPGRADE_OK_HIDDEN_OS">De VeraCrypt Boot Lader is ge-upgrade.\n\nHet wordt sterk aangeraden het lokvogel besturingssysteem te starten en dan een nieuwe VeraCrypt Reddingsschijf te maken (die de nieuwe VeraCrypt Boot Lader zal bevatten) door 'Systeem' &gt; 'Maak Reddingsschijf Aan' te selecteren.</string>
- <string lang="nl" key="BOOT_LOADER_UPGRADE_FAILED">Fout: Kon geen update uitvoeren op de VeraCrypt Boot Lader.</string>
+ <string lang="nl" key="BOOT_LOADER_UPGRADE_OK">De VeraCrypt Bootloader heeft een upgrade gehad.\n\nHet wordt sterk aangeraden een nieuwe VeraCrypt herstelschijf aan te maken (die ook de nieuwe versie van de VeraCrypt Bootloader zal bevatten) door te selecteren 'Systeem' &gt; 'Maak herstelschijf aan' nadat u uw computer opnieuw opgestart heeft.</string>
+ <string lang="nl" key="BOOT_LOADER_UPGRADE_OK_HIDDEN_OS">De VeraCrypt Bootloader is ge-upgrade.\n\nHet wordt sterk aangeraden het lokvogel besturingssysteem te starten en dan een nieuwe VeraCrypt herstelschijf te maken (die de nieuwe VeraCrypt Bootloader zal bevatten) door 'Systeem' &gt; 'Een herstelschijf aanmaken' te selecteren.</string>
+ <string lang="nl" key="BOOT_LOADER_UPGRADE_FAILED">Fout: Kon geen update uitvoeren op de VeraCrypt Bootloader.</string>
<string lang="nl" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt kon de werkelijke grootte van de systeemschijf niet vaststellen, daarom zal de grootte zoals vastgesteld door het besturingssysteem (die kleiner kan zijn) worden gebruikt. Dit is geen fout in VeraCrypt.</string>
- <string lang="nl" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">WAARSCHUWING: Het blijkt dat VeraCrypt al eerder heeft geprobeerd verborgen sectoren te ontdekken op deze systeem schijf. Als u enig probleem tegenkwam gedurende het vorige detectie proces, kunt u deze problemen vermijden door het detectieproces over te slaan. Merk op dat VeraCrypt dan de grootte van de systeem schijf zal gebruiken die gerapporteerd wordt door het besturingssysteem (die kleiner kan zijn dan de werkelijke grootte).\n\nMerk op dat dit probleem niet veroorzaakt wordt door een fout in VeraCrypt.</string>
+ <string lang="nl" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">WAARSCHUWING: Het blijkt dat VeraCrypt al eerder heeft geprobeerd verborgen sectoren te ontdekken op deze systeemschijf. Als u enig probleem tegenkwam gedurende het vorige detectie proces, kunt u deze problemen vermijden door het detectieproces over te slaan. Merk op dat VeraCrypt dan de grootte van de systeemschijf zal gebruiken die gerapporteerd wordt door het besturingssysteem (die kleiner kan zijn dan de werkelijke grootte).\n\nMerk op dat dit probleem niet veroorzaakt wordt door een fout in VeraCrypt.</string>
<string lang="nl" key="SKIP_HIDDEN_SECTOR_DETECTION">Sla de detectie over van verborgen sectoren (gebruik de grootte gevonden door het besturingssysteem)</string>
<string lang="nl" key="RETRY_HIDDEN_SECTOR_DETECTION">Probeer verborgen sectors weer te detecteren</string>
<string lang="nl" key="ENABLE_BAD_SECTOR_ZEROING">Fout: De inhoud van een of meerdere sectoren van de schijf kon niet gelezen worden, waarschijnlijk ten gevolge van een fysieke fout.\n\nDe Op-De-Plaats codering kan alleen maar voortgang vinden als deze sectoren weer leesbaar gemaakt zijn. VeraCrypt kan proberen deze sectoren weer leesbaar te maken door er nullen in te schrijven, waarna al deze nullen gecodeerd zullen worden. Merk echter op dat ten gevolge van deze oplossing alle (onleesbare) data die in deze sectoren liggen opgeslagen verloren zullen zijn. Indien u dit wilt vermijden kunt u proberen stukken van de betreffende data te herstellen met toepasselijke software van derden.\n\nNoot: Indien de sectoren fysiek beschadigd zijn (dus tegengesteld aan data corruptie en checksum fouten) zullen de meeste typen opslag media deze sectoren intern doorverwijzen naar andere goed functionerende sectoren wanneer geprobeerd wordt data er naartoe te schrijven. In dit geval kunnen de bestaande data op de beschadigde sectoren ongecodeerd op de schijf achterblijven).\n\nWilt u dat VeraCrypt nullen schrijft naar de onleesbare sectoren?</string>
<string lang="nl" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">Fout: De inhoud van een of meer sectoren op de schijf kan niet worden gelezen (waarschijnlijk ten gevolgen van een fysieke fout).\n\nTeneinde door te kunnen gaan met de codering dient VeraCrypt de inhoud van de onleesbare sectoren te wissen (deze worden dan gevuld met pseudo-random data). Merk op dat u, alvorens verder te gaan, de inhoud van deze sectoren kunt proberen te herstellen middels software van derden.\n\nWilt u dat VeraCrypt de data in de onleesbare sectoren nu wist?</string>
<string lang="nl" key="ZEROED_BAD_SECTOR_COUNT">Noot: VeraCrypt heeft de inhoud van %I64d onleesbare sectoren (%s) vervangen door gecodeerde nullen in platte tekst blokken.</string>
- <string lang="en" key="SKIPPED_BAD_SECTOR_COUNT">Note: VeraCrypt has replaced the content of %I64d unreadable sectors (%s) with pseudorandom data.</string>
+ <string lang="nl" key="SKIPPED_BAD_SECTOR_COUNT">Opmerking: VeraCrypt heeft de inhoud van %I64d onleesbare sectoren (%s) vervangen door pseudorandom gegevens.</string>
<string lang="nl" key="ENTER_TOKEN_PASSWORD">Geef wachtwoord/PIN voor token '%s':</string>
<string lang="nl" key="PKCS11_LIB_LOCATION_HELP">Voordat VeraCrypt toegang kan krijgen tot een security token of smartcard, moet u eerst een PKCS #11 software library voor het token of smartcard installeren. Deze library kan meegeleverd zijn met het apparaat of kan op de website van de verkoper of van derden te vinden zijn.\n\nNa installatie van de library kunt u deze selecteren door te klikken op 'Selecteer Library' of u kunt VeraCrypt de bibliotheek automatisch laten vinden en selecteren door te klikken op 'Auto-Detect Library' (er wordt dan alleen in de Windows systeem mappen gezocht).</string>
<string lang="nl" key="SELECT_PKCS11_MODULE_HELP">Noot: Raadpleeg voor de bestandsnaam en plaats van de PKCS #11 library van uw security token of smartcard de documentaie van het token, smartcard of software van derden.\n\nKlik op 'OK' om het pad en bestandsnaam te selecteren.</string>
@@ -1280,7 +1281,7 @@
<string lang="nl" key="INVALID_TOKEN_KEYFILE_PATH">Security token sleutelbestand pad is ongeldig.</string>
<string lang="nl" key="SECURITY_TOKEN_ERROR">Security token fout</string>
<string lang="nl" key="CKR_PIN_INCORRECT">Wachtwoord voor security token is fout.</string>
- <string lang="en" key="CKR_DEVICE_MEMORY">The security token does not have enough memory/space to perform the requested operation.\n\nIf you are attempting to import a keyfile, you should select a smaller file or use a keyfile generated by VeraCrypt (select 'Tools' > 'Keyfile Generator').</string>
+ <string lang="nl" key="CKR_DEVICE_MEMORY">Er is niet genoeg geheugen of ruimte voor de Security Token om de bewerking uit te voeren.\n\nAls u probeerde een sleutelbestand te importeren, selecteer dan een kleiner bestand OF gebruik een sleutelbestand welke is aangemaakt door VeraCrypt (selecteer 'Tools' > 'Sleutelbestand generator').</string>
<string lang="nl" key="ALL_TOKEN_SESSIONS_CLOSED">Alle open security token sessies zijn gesloten.</string>
<string lang="nl" key="SELECT_TOKEN_KEYFILES">Selecteer Security Token Sleutelbestanden</string>
<string lang="nl" key="TOKEN_SLOT_ID">Slot</string>
@@ -1292,14 +1293,14 @@
<string lang="en" key="SYS_FAVORITES_ADMIN_ONLY_WARNING">IMPORTANT: Please keep in mind that if this option is enabled and VeraCrypt does not have administrator privileges, mounted system favorite volumes are NOT displayed in the VeraCrypt application window and they cannot be dismounted. Therefore, if you need e.g. to dismount a system favorite volume, please right-click the VeraCrypt icon (in the Start menu) and select 'Run as administrator' first. The same limitation applies to the 'Dismount All' function, 'Auto-Dismount' functions, 'Dismount All' hot keys, etc.</string>
<string lang="nl" key="SETTING_REQUIRES_REBOOT">Let op dat deze instelling alleen actief word na het herstarten van het besturingssysteem.</string>
<string lang="nl" key="COMMAND_LINE_ERROR">Fout bij parsen command line.</string>
- <string lang="nl" key="RESCUE_DISK">Reddingsschijf</string>
+ <string lang="nl" key="RESCUE_DISK">Herstelschijf</string>
<string lang="nl" key="SELECT_FILE_AND_MOUNT">Selecteer &amp;bestand en koppel</string>
<string lang="nl" key="SELECT_DEVICE_AND_MOUNT">Selecteer &amp;apparaat en koppel</string>
<string lang="nl" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Toestaan dat alleen administrators favoriete systeemvolumes in VeraCrypt kunnen bekijken en ontkoppelen</string>
<string lang="nl" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Koppel favoriete systeemvolumes wanneer Windows start (in de beginfase van de opstartprocedure)</string>
<string lang="nl" key="MOUNTED_VOLUME_DIRTY">Waarschuwing: Het volume gekoppeld als '%s' werd niet correct ontkoppeld en kan derhalve fouten bevatten. Het gebruik van een corrupt bestandssysteem kan dataverlies of verminking tot gevolg hebben.\n\nNoot: Voordat u een apparaat fysiek verwijdert of uitschakelt (bijv. een USB flash-drive of een externe harddisk) waarop een gekoppeld VeraCrypt volume staat, moet u altijd eerst dit volume ontkoppelen.\n\nWilt u dat windows probeert evt. fouten op dit volume op te sporen en te repareren?</string>
<string lang="nl" key="SYS_FAVORITE_VOLUME_DIRTY">Waarschuwing: Een of meer favoriete systeemvolumes werden niet goed afgekoppeld en kunnen zodoende bestandsfouten bevatten. Controleer het systeem gebeurtenissenlogboek voor meer details.\n\nHet gebruik van een beschadigt bestandssysteem kan verlies of verminking van data tot gevolg hebben. U wordt aangeraden om de vermelde favoriete systeemvolume(s) op fouten te controleren. In VeraCrypt rechts-klikken op deze volumes en kies voor 'Repareer bestandssysteem').</string>
- <string lang="nl" key="FILESYS_REPAIR_CONFIRM_BACKUP">Waarschuwing: Een beschadigd bestandssysteem repareren m.b.v. Microsoft ‘chkdsk’ kan verlies van bestanden in beschadigde gebieden tot gevolg hebben. Daarom wordt het aangeraden dat u eerst de bestanden uit het VeraCrypt volume kopieert naar een ander, intact, VeraCrypt volume.\n\nWilt u het bestandssysteem nu repareren?</string>
+ <string lang="nl" key="FILESYS_REPAIR_CONFIRM_BACKUP">Waarschuwing: Een beschadigd bestandssysteem repareren m.b.v. Microsoft 'chkdsk' kan verlies van bestanden in beschadigde gebieden tot gevolg hebben. Daarom wordt het aangeraden dat u eerst de bestanden uit het VeraCrypt volume kopieert naar een ander, intact, VeraCrypt volume.\n\nWilt u het bestandssysteem nu repareren?</string>
<string lang="en" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Volume '%s' has been mounted as read-only because write access was denied.\n\nPlease make sure the security permissions of the file container allow you to write to it (right-click the container and select Properties > Security).\n\nNote that, due to a Windows issue, you may see this warning even after setting the appropriate security permissions. This is not caused by a bug in VeraCrypt. A possible solution is to move your container to, e.g., your 'Documents' folder.\n\nIf you intend to keep your volume read-only, set the read-only attribute of the container (right-click the container and select Properties > Read-only), which will suppress this warning.</string>
<string lang="nl" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Volume '%s' moest als read-only gekoppeld worden omdat schrijftoegang verboden werd.\n\nZorg ervoor dat geen ander programma (zoals antivirus software) bezig is met toegang tot de partitie/apparaat waarop het volume staat.</string>
<string lang="nl" key="MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION">Volume '%s' is gekoppeld als alleen-lezen omdat het besturingssysteem heeft gemeld dat het huisvestende apparaat tegen schrijven beveiligd is.\n\nMerk a.u.b. op dat van sommige aangepaste chipset drivers is gerapporteerd dat ze onterecht bepaalde media als schrijf-beveiligd lieten zien. Dit probleem wordt niet veroorzaakt door VeraCrypt. Het kan evt. worden opgelost door de aangepaste (niet-Microsoft) chipset drivers te updaten of te de-installeren.</string>
@@ -1310,7 +1311,7 @@
<string lang="nl" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Wilt u dat VeraCrypt probeert de schrijfbeveiliging op de partitie/schijf uit te zetten?</string>
<string lang="nl" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">WAARSCHUWING: Deze instelling kan de performance verslechteren.\n\nWeet u zeker dat u deze instelling wilt gebruiken?</string>
<string lang="nl" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">Waarschuwing: VeraCrypt volume auto-ontkoppeld</string>
- <string lang="en" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Before you physically remove or turn off a device containing a mounted volume, you should always dismount the volume in VeraCrypt first.\n\nUnexpected spontaneous dismount is usually caused by an intermittently failing cable, drive (enclosure), etc.</string>
+ <string lang="nl" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Voordat u een apparaat dat een gekoppelde volume bevat fysiek verwijderd of uitschakelt moet u eerst het volume in VeraCrypt ontkoppelen.\n\nOnverwachte spontane ontkoppeling komt vaak door een niet goed functionerende kabel, schijf of behuizing, enz.</string>
<string lang="nl" key="UNSUPPORTED_TRUECRYPT_FORMAT">Dit volume is met TrueCrypt %x.%x aangemaakt. VeraCrypt ondersteunt alleen TrueCrypt volumes gemaakt met TrueCrypt 6.x/7.x series</string>
<string lang="nl" key="TEST">Test</string>
<string lang="nl" key="KEYFILE">Sleutel</string>
@@ -1406,13 +1407,22 @@
<string lang="nl" key="TIME">Tijd</string>
<string lang="nl" key="ITERATIONS">Iteraties</string>
<string lang="nl" key="PRE-BOOT">Pre-boot</string>
- <string lang="en" key="RESCUE_DISK_EFI_INFO">Before you can encrypt the partition, you must create a VeraCrypt Rescue Disk (VRD), which serves the following purposes:\n\n- If the VeraCrypt Boot Loader, master key, or other critical data gets damaged, the VRD allows you to restore it (note, however, that you will still have to enter the correct password then).\n\n- If Windows gets damaged and cannot start, the VRD allows you to permanently decrypt the partition before Windows starts.\n\n- The VRD will contain a backup of the present EFI boot loader and will allow you to restore it if necessary.\n\nThe VeraCrypt Rescue Disk ZIP image will be created in the location specified below.</string>
- <string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you need to extract it to a USB stick that is formatted as FAT/FAT32.\n\n%lsAfter you create the Rescue Disk, click Next to verify that it has been correctly created.</string>
- <string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you should either extract the image to a USB stick that is formatted as FAT/FAT32 or move it to a safe location for later use.\n\n%lsClick Next to continue.</string>
- <string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">IMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\n</string>
- <string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
- <string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
- <string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <string lang="nl" key="RESCUE_DISK_EFI_INFO">Voordat u een partitie kunt coderen, moet u een VeraCrypt Herstelschijf (VHD) maken, dit dient de volgende doelen:\n\n- Als de VeraCrypt Bootloader, hoofdsleutel, of andere kritische data beschadigd raakt, dan kunt u dit met de VHD herstellen (Let op, dat u dan wel nog steeds het juiste wachtwoord moet invoeren).\n\n- Als Windows verminkt raakt en niet kan starten, dan kunt u met de VHD de partitie permanent decoderen voordat Windows start.\n\n- De VHD bevat een back-up van de huidige EFI bootloader en deze kunt u indien nodig terugzetten.\n\nHet VeraCrypt herstelschijf ZIP-bestand wordt aangemaakt in de locatie die hieronder staat vermeld.</string>
+ <string lang="nl" key="RESCUE_DISK_EFI_EXTRACT_INFO">Het herstelschijf ZIP-bestand is aangemaakt en opgeslagen in bestand:\n%s\n\nNu moet u deze uitpakken op een usb-stick welke is geformatteerd als FAT/FAT32.\n\n%lsZodra u de herstelschijf hebt aangemaakt, klik dan op Volgende om te verifiëren dat deze correct is aangemaakt.</string>
+ <string lang="nl" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">Het herstelschijf ZIP-bestand is aangemaakt en opgeslagen in bestand:\n%s\n\nNu kunt u deze uitpakken op een usb-stick welke is geformatteerd als FAT/FAT32 OF het opslaan op een veilige locatie voor later gebruik.\n\n%lsKlik op Volgende om verder te gaan.</string>
+ <string lang="nl" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">Belangrijk: Let op dat het zip-bestand direct naar de basis van de usb-stick wordt uitgepakt. Bijvoorbeeld, als het schijfstation van de usb-stick E: is, dan moet bij het uitpakken van het zip-bestand een map E:\\EFI op de usb-stick ontstaan.\n\n</string>
+ <string lang="nl" key="RESCUE_DISK_EFI_CHECK_FAILED">Verifiëren of de herstelschijf juist is uitgepakt is niet mogelijk.\n\nAls u de herstelschijf hebt uitgepakt, werp de USB-stick dan uit en plaats deze opnieuw; klik daarna op Volgende om het opnieuw te proberen. Als dit niet helpt, probeer dan een andere USB-stick en/of andere ZIP software.\n\nAls u de herstelschijf nog niet hebt uitgepakt, doe het dan nu en klik daarna op Volgende.\n\nAls u probeerde de VeraCrypt herstelschijf te verifiëren voordat u deze wizard startte, dan moet worden opgemerkt dat de herstelschijf niet kan worden gebruikt, dit omdat deze is aangemaakt met een andere hoofdsleutel. U moet het nieuw aangemaakte herstelschijf ZIP-bestand eerst uitpakken.</string>
+ <string lang="nl" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Helaas is controleren of de herstelschijf juist is uitgepakt niet mogelijk.\n\nAls je de herstelschijf hebt uitgepakt naar een usb-stick, plaats deze dan en probeer het opnieuw. Als dit niet helpt, probeer het dan met andere software of een andere apparaat.\n\nAls je een VeraCrypt herstelschijf probeert te controleren die is aangemaakt met een andere sleutel, wachtwoord, salt enz., dan zal het controleren van de herstelschijf altijd mislukken. Om een bruikbare herstelschijf met de huidige configuratie te maken, selecteer dan 'Systeem' > 'Een herstelschijf aanmaken'.</string>
+ <string lang="nl" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Het bestand voor de herstelschijf is aangemaakt en opgeslagen als:\n%s\n\nNu moet u dit bestand uitpakken op een usb-stick welke is geformatteerd als FAT/FAT32.\n\nBELANGRIJK: Het zip-bestand moet u in de basismap van het USB-station uitpakken. Bijvoorbeeld, als uw USB-station E: is, dan moet het uitgepakte zip-bestand een map E:\\EFI op de USB-stick aanmaken.\n\nNdat u de herstelschijf hebt aangemaakt, selecteer 'Systeem' > 'Controleer herstelschijf' om te controleren dat de herstelschijf juist is aangemaakt.</string>
+ <control lang="nl" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Gebruik het Beveiligd Bureaublad voor wachtwoord invoer</control>
+ <string lang="nl" key="ERR_REFS_INVALID_VOLUME_SIZE">De in de opdrachtregel opgegeven bestandsgrootte van het volume is niet compatibel met het geselecteerde ReFS bestandssysteem.</string>
+ <control lang="nl" key="IDC_EDIT_DCSPROP">Bootloader configuratiebestand bewerken</control>
+ <control lang="nl" key="IDC_SHOW_PLATFORMINFO">Toon de EFI platform informatie</control>
+ <string lang="nl" key="BOOT_LOADER_CONFIGURATION_FILE">Bootloader configuratiebestand</string>
+ <string lang="nl" key="EFI_PLATFORM_INFORMATION">EFI platform informatie</string>
+ <string lang="nl" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">Waarschuwing: Onervaren gebruikers moeten niet proberen bootloader configuraties handmatig te bewerken.\n\nVerder gaan?</string>
+ <string lang="nl" key="DCSPROP_XML_VALIDATION_FAILED">Waarschuwing: Het valideren van de XML-opmaak van de bootloader configuratie is mislukt. Controleer uw wijzigingen.</string>
+ <control lang="nl" key="IDT_ADVANCED_OPTIONS">Geavanceerde opties</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.nn.xml b/Translations/Language.nn.xml
index c0c33cc..0348b62 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="nn" name="Norsk Nynorsk" en-name="Norwegian (Nynorsk)" version="0.1.0" translators="Kjell Rune Helland" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="nn" key="IDC_PREF_MOUNT_READONLY">Monter volum som skriveverna</control>
<control lang="nn" key="IDC_PREF_MOUNT_REMOVABLE">Monter volum som fjernbart medium</control>
<control lang="nn" key="IDC_PREF_OPEN_EXPLORER">Opne Utforskar vindauga for vellykka monterte volum</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="nn" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Slett snøgglagra passord ved automatisk avmontering</control>
<control lang="nn" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Slett snøgglagra passord ved avslutning</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.pl.xml b/Translations/Language.pl.xml
index fa215c8..3262fe8 100644
--- a/Translations/Language.pl.xml
+++ b/Translations/Language.pl.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version="1.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="pl" name="Polski" en-name="Polish" version="1.0.0" translators="Mirek Druchowicz, Janusz Zamecki, Sobiesław Antolak, Begina Felicysym" />
<!-- Fonts -->
@@ -394,7 +394,7 @@
<string lang="pl" key="ADMIN_PRIVILEGES_DRIVER">Do załadowania sterowników VeraCrypt wymagane jest użycie konta z uprawnieniami administratora.</string>
<string lang="pl" key="ADMIN_PRIVILEGES_WARN_DEVICES">Aby zaszyfrować/sformatować partycję lub urządzenie, należy użyć konta z uprawnieniami administratora.\n\nPowyższe ograniczenie nie dotyczy wolumenów tworzonych w plikach.</string>
<string lang="pl" key="ADMIN_PRIVILEGES_WARN_HIDVOL">W przypadku tworzenia wolumenu ukrytego należy użyć konta z uprawnieniami administratora.\n\nCzy kontynuować?</string>
- <string lang="pl" key="ADMIN_PRIVILEGES_WARN_NTFS">Do formatowania wolumenu w formacie NTFS należy użyć konta z uprawnieniami administratora.\n\nBez uprawnień administratora można formatować wolumen w formacie FAT.</string>
+ <string lang="pl" key="ADMIN_PRIVILEGES_WARN_NTFS">Do formatowania wolumenu w formacie NTFS/exFAT/ReFS należy użyć konta z uprawnieniami administratora.\n\nBez uprawnień administratora można formatować wolumen w formacie FAT.</string>
<string lang="pl" key="AES_HELP">Zaakceptowany przez FIPS szyfr (Rijndael, opublikowany w 1998) może być używany przez agencje rządowe USA Do ochrony informacji zaklasyfikowanych jako ściśle tajne. Klucz 256-bitowy, z blokiem 128-bitowym, 14 przebiegów (AES-256). Tryb szyfrowania: XTS.</string>
<string lang="pl" key="ALREADY_MOUNTED">Wolumen jest już podłączony.</string>
<string lang="pl" key="ERR_SELF_TESTS_FAILED">UWAGA: Co najmniej jeden algorytm szyfrowania lub mieszający nie przeszedł wbudowanej automatycznej procedury testowej!\n\nInstalacja VeraCrypt może być uszkodzona!</string>
@@ -422,7 +422,7 @@
<string lang="pl" key="DEVICE_FREE_MB">Wielkość %s wynosi %.2f MB</string>
<string lang="pl" key="DEVICE_FREE_GB">Wielkość %s wynosi %.2f GB</string>
<string lang="pl" key="DEVICE_FREE_TB">Wielkość %s wynosi %.2f TB</string>
- <string lang="pl" key="DEVICE_FREE_PB">Wilekość %s wynosi %.2f PB</string>
+ <string lang="pl" key="DEVICE_FREE_PB">Wielkość %s wynosi %.2f PB</string>
<string lang="pl" key="DEVICE_IN_USE_FORMAT">Ostrzeżenie: Urządzenie/partycja jest już w użyciu przez system operacyjny lub aplikację. Formatowanie urządzenia/partycji może spowodować uszkodzenie danych i niestabilność systemu.\n\nCzy kontynuować?</string>
<string lang="pl" key="DEVICE_IN_USE_INPLACE_ENC">Uwaga: Partycja jest w użyciu przez system operacyjny lub aplikacje. Zamknij wszystkie aplikacje, które mogą używać partycji (włączając w to system antywirusowy).\n\nKontynuować?</string>
<string lang="pl" key="FORMAT_CANT_DISMOUNT_FILESYS">Błąd: Urządzenie/partycja zawiera system plików, który nie może zostać odłączony. System plików może być używany przez system operacyjny. Formatowanie urządzenia/partycji z dużym prawdopodobieństwem spowoduje uszkodzenie danych i niestabilność systemu.\n\nAby rozwiązać ten problem, zaleca się wcześniejsze usunięcie partycji i ponowne jej utworzenie bez formatowania. W tym celu: 1) Kliknij prawym przyciskiem myszy ikonę 'Komputer' (lub 'Mój Komputer') w 'Menu Start' i wybierz opcję 'Zarządzaj'. Zostanie wyświetlone okno 'Zarządzanie komputerem'. 2) W oknie 'Zarządzanie komputerem' wybierz 'Magazyn' &gt; 'Zarządzanie dyskami'. 3) Kliknij prawym przyciskiem myszy partycję, którą chcesz zaszyfrować, następnie wybierz opcję 'Usuń partycję' lub 'Usuń dysk logiczny'. 4) Kliknij przycisk 'Tak'. Jeśli system poprosi o zrestartowanie komputera, zrób to. Następnie powtórz krok 1 i 2 i kontynuuj od kroku 5. 5) Kliknij nieprzydzielone/wolne miejsce i wybierz opcję 'Nowa partycja', 'Nowy prosty wolumen' lub 'Nowy dysk logiczny'. 6) Zostanie uruchomione okno 'Kreatora partycji' lub 'Kreatora prostych wolumenów'. Postępuj zgodnie z instrukcjami. Na stronie zatytułowanej 'Formatowanie partycji', wybierz 'Nie formatuj tej partycji' lub 'Nie formatuj tego wolumenu'. W tym samym kreatorze, kliknij 'Dalej' a następnie 'Zakończ'. 7) Ścieżka urządzenia wybranego w programie VeraCrypt może być teraz nieprawidłowa. Dlatego wyjdź z kreatora tworzenia wolumenów VeraCrypt (jeśli jest nadal uruchomiony) i uruchom go ponownie. 8) Ponownie spróbuj zaszyfrować urządzenie.\n\nJeśli program VeraCrypt ponownie nie będzie mógł zaszyfrować urządzenia/partycji, należy rozważyć utworzenie pliku kontenera.</string>
@@ -533,15 +533,15 @@
<string lang="pl" key="HIDVOL_HOST_PRE_CIPHER_HELP">\n\nW następnym kroku należy ustawić opcje dla wolumenu zewnętrznego (w którym później będzie utworzony wolumen ukryty).</string>
<string lang="pl" key="HIDVOL_HOST_PRE_CIPHER_HELP_SYSENC">\n\nW następnym kroku, stworzysz tak zwany zewnętrzny wolumen VeraCrypt będzie on pierwszą partycją za partycją systemową (jak zostało to wytłumaczone w poprzednich krokach).</string>
<string lang="pl" key="HIDVOL_HOST_PRE_CIPHER_TITLE">Wolumen zewnętrzny</string>
- <string lang="pl" key="HIDDEN_OS_PRE_CIPHER_HELP">W obecnym kroku, możesz ustawić opcję i hasło dla ukrytego wolumenu, który będzie zawierał ukryty system operacyjny.\n\nUwaga: Klaster zewnętrznego wolumenu został sprawdzony, aby wykryć wielkość nieprzerwanego wolnego obszaru. Ten obszar będzie mieścił ukryty wolumen, więc limitem jest maksymalna możliwa wielkość. Maksymalna możliwa wielkość ukrytego wolumenu została wykryta i zatwierdzona jako najlepsza wielkość partycji systemowej (jaka jest wymagana, ponieważ cała zawartość partycji systemowej zostanie skopiowana do ukrytego wolumenu). To zapewnia, że żadne dane obecnie zeskładowane na zewnętrznym wolumenie nie zostaną pokryte na obszarze ukrytego wolumenu.</string>
+ <string lang="pl" key="HIDDEN_OS_PRE_CIPHER_HELP">W obecnym kroku, możesz ustawić opcję i hasło dla ukrytego wolumenu, który będzie zawierał ukryty system operacyjny.\n\nUwaga: Klaster zewnętrznego wolumenu został sprawdzony, aby wykryć wielkość nieprzerwanego wolnego obszaru. Ten obszar będzie mieścił ukryty wolumen, więc limitem jest maksymalna możliwa wielkość. Maksymalna możliwa wielkość ukrytego wolumenu została wykryta i zatwierdzona jako najlepsza wielkość partycji systemowej (jaka jest wymagana, ponieważ cała zawartość partycji systemowej zostanie skopiowana do ukrytego wolumenu). To zapewnia, że żadne dane obecnie składowane na zewnętrznym wolumenie nie zostaną pokryte na obszarze ukrytego wolumenu.</string>
<string lang="pl" key="HIDDEN_OS_PRE_CIPHER_WARNING">WAŻNE: Proszę pamiętać wybrany algorytm w tym kroku. Będziesz musiał wybrać ten sam algorytm dla systemu zwodzącego. Inaczej ukryty system będzie niedostępny! (System zwodzący musi być zaszyfrowany tym samym algorytmem szyfrowania jak ukryty system.)\n\nUwaga: Powodem jest to, że system zwodzący i ukryty będą współdzielić program startowy, który obsługuje tylko jeden sposób (algorytm) szyfrowania, wybrany przez użytkownika (dla każdego algorytmu jest specjalna wersja programu startowego VeraCrypt).</string>
<string lang="pl" key="HIDVOL_PRE_CIPHER_HELP">\n\nMapa bitowa klastrów została przeskanowana i została ustalona maksymalna możliwa wielkość wolumenu ukrytego. W następnym kroku należy ustawić opcje, wielkość i hasło wolumenu ukrytego.</string>
<string lang="pl" key="HIDVOL_PRE_CIPHER_TITLE">Wolumen ukryty</string>
<string lang="pl" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Wolumen ukryty jest teraz zabezpieczony przed uszkodzeniem na czas podłączenia wolumenu zewnętrznego.\n\nOSTRZEŻENIE: W przypadku próby zapisania danych w wolumenie zewnętrznym program VeraCrypt włączy blokadę zapisu dla całego wolumenu (zarówno dla części zewnętrznej jak i wewnętrznej) aż do momentu odłączenia. To może spowodować uszkodzenie systemu plików wolumenu zewnętrznego, oraz (jeśli się powtarza) zagrożenie zapewnienia możliwości wiarygodnego zaprzeczenia istnienia wolumenu ukrytego. Dlatego nie należy zapisywać danych w obszarze zajmowanym przez wolumen ukryty. Wszystkie dane zapisywane w obszarze zajmowanym przez wolumen ukryty nie zostaną zapisane i będą utracone. System Windows może to zgłaszać jako błąd zapisu ("Opóźniony zapis nie powiódł się" lub "Parametr jest niepoprawny").</string>
<string lang="pl" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Każdy z wolumenów ukrytych wewnątrz nowo podłączanych wolumenów jest teraz zabezpieczony przed uszkodzeniem do momentu odłączenia.\n\nOSTRZEŻENIE: W przypadku próby zapisania danych w wolumenie zewnętrznym program VeraCrypt włączy blokadę zapisu dla całego wolumenu (zarówno dla części zewnętrznej jak i wewnętrznej) aż do momentu odłączenia. To może spowodować uszkodzenie systemu plików wolumenu zewnętrznego, oraz (jeśli się powtarza) zagrożenie zapewnienia możliwości wiarygodnego zaprzeczenia istnienia wolumenu ukrytego. Dlatego nie należy zapisywać danych w obszarze zajmowanym przez wolumen ukryty. Wszystkie dane zapisywane w obszarze zajmowanym przez wolumen ukryty nie zostaną zapisane i będą utracone. System Windows może to zgłaszać jako błąd zapisu ("Opóźniony zapis nie powiódł się" lub "Parametr jest niepoprawny").</string>
<string lang="pl" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">OSTRZEŻENIE: Próba zapisu danych w obszarze zarezerwowanym dla wolumenu ukrytego w wolumenie podłączonym jako %c:! Program VeraCrypt zapobiegł zapisowi tych danych z powodu ochrony wolumenu ukrytego. Mogło to spowodować uszkodzenie systemu plików wolumenu zewnętrznego. System Windows może to zgłaszać jako błąd zapisu ("Opóźniony zapis nie powiódł się" lub "Parametr jest niepoprawny"). Program VeraCrypt włączy blokadę zapisu dla całego wolumenu (zarówno dla części zewnętrznej jak i wewnętrznej) aż do momentu odłączenia. Jeśli to nie jest pierwszy przypadek uniemożliwienia przez program VeraCrypt zapisu w obszarze wolumenu ukrytego, wiarygodne zaprzeczenie istnienia wolumenu ukrytego może być zagrożone (przez możliwe wystąpienie nienormalnie skorelowanych niespójności w systemie plików wolumenu zewnętrznego). Dlatego należy rozważyć utworzenie nowego wolumenu VeraCrypt (z wyłączoną opcją szybkiego formatowania) i przenieść pliki z tego wolumenu do nowego. Po przeniesieniu danych nieużywany już wolumen powinien zostać wymazany w sposób bezpieczny (zarówno część zewnętrzna jak i ukryta). Należy teraz koniecznie ponownie uruchomić system.</string>
- <string lang="pl" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">Wskazujesz chęć przechowywania plików większych niż 4 GB w wolumenie. Wymaga to, by wolumen był sformatowany jako NTFS, co jednak nie będzie możliwe.</string>
- <string lang="pl" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Zauważ, że gdy uruchomiony jest ukryty system operacyjny, nieukryte wolumeny VeraCrypt nie moga byc sformatowane jako NTFS. Powodem jest, że wolumen wymagać będzie tymczasowego podłączenia bez zabezpieczenia przed zapisem, aby system operacyjny mógł sformatować go jako NTFS (formatowanie jako FAT natomiast jest wykonywane przez VeraCrypt, nie system operacyjny, i bez podłączania wolumenu). Patrz niżej, by poznać szczegóły techniczne. Możesz utworzyć nieukryty wolumen NTFS ze zwodzącego systemu operacyjnego.</string>
+ <string lang="pl" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">Wskazujesz chęć przechowywania plików większych niż 4 GB w wolumenie. Wymaga to, by wolumen był sformatowany jako NTFS/exFAT/ReFS, co jednak nie będzie możliwe.</string>
+ <string lang="pl" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Zauważ, że gdy uruchomiony jest ukryty system operacyjny, nieukryte wolumeny VeraCrypt nie moga byc sformatowane jako NTFS/exFAT/ReFS. Powodem jest, że wolumen wymagać będzie tymczasowego podłączenia bez zabezpieczenia przed zapisem, aby system operacyjny mógł sformatować go jako NTFS (formatowanie jako FAT natomiast jest wykonywane przez VeraCrypt, nie system operacyjny, i bez podłączania wolumenu). Patrz niżej, by poznać szczegóły techniczne. Możesz utworzyć nieukryty wolumen NTFS/exFAT/ReFS ze zwodzącego systemu operacyjnego.</string>
<string lang="pl" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">Z powodów bezpieczeństwa, kiedy jest uruchomiony ukryty system operacyjny, możesz tworzyć tylko wolumeny w trybie 'direct (bezpośrednio)' (ponieważ zewnętrzny wolumen musi być zawsze zamontowany w trybie tylko do odczytu zewnętrznego). Aby stworzyć bezpieczny ukryty wolumen, postępuj zgodnie z wskazówkami:\n\n1) Uruchom pierwszy system.\n\n2) Stwórz normalny wolumen VeraCrypt i do tego wolumenu skopuj jakieś pliki, które nie będą aktualnie chronione i ukryte (wolumen będzie zewnętrznym wolumenem).\n\n3) Uruchom ukryty system operacyjny i uruchom kreatora wolumenów VeraCrypt. Jeżeli wolumen jest w pliku, przesuń go do partycji systemowej lub do innego ukrytego wolumenu (inaczej nowo stworzony ukryty wolumen może być podłączony tylko do odczytu i nie może być sformatowany). Postępuj zgodnie z instrukcjami w kreatorze i wybierz tryb 'direct (bezpośredni)' tworzenia ukrytego wolumenu.\n\n4) W kreatorze, wybierz wolumen, który stworzyłeś w kroku 2 i postępuj zgodnie z instrukcjami tworzenia ukrytego wolumenu.</string>
<string lang="pl" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Z powodów bezpieczeństwa, kiedy jest uruchomiony ukryty system operacyjny, lokalne niezaszyfrowane systemy plików i nie ukryte wolumeny VeraCrypt są zamontowane tylko od odczytu (nie można na nich zapisać żadnych danych).\n\nDane są dostępne do zapisu na każdym systemie plików, który rezyduje w ukrytym wolumenie VeraCrypt (dostarczony ukryty wolumen nie jest umieszczony na niezaszyfrowanym systemie plików lub na żadnym systemie plików tylko do odczytu).</string>
<string lang="pl" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">Są trzy główne powody, dla których podjęte zostały środki zaradcze:\n\n- Umożliwia tworzenie bezpiecznej platformy dla bezpiecznego montowania ukrytych wolumenów VeraCrypt. Zauważ, że oficjalnie zalecamy, by ukrytw wolumeny były montowane tylko wtedy, gdy uruchomiony jest ukryty system operacyjny. (By uzyskać więcej informacji przeczytaj podrozdział dokumentacji 'Security Requirements and Precautions Pertaining to Hidden Volumes'.)\n\n- W pewnych przypadkach możliwe jest ustalenie tego, że dany system plików nie został zamontowany pod (lub że dany plik w systemie plików nie został zapisany lub udostępniony z poziomu) określonej instancji systemu operacyjnego (np przez analizę i porównanie dzienników systemu plików, stempli czasowych pliku, logów aplikacji, logów błędów itp.). To może wskazywać, że ukryty system operacyjny został zainstalowany na komputerze. Środki zaradcze zapobiegają takim przypadkom.\n\n- Zapobiegają uszkodzeniu danych i pozwalają na bezpieczne usypianie. Kiedy Windows wznawia pracę po uśpieniu, zakłada, że wszystkie zamontowane systemy plików są w tym samym stanie w jakim system został uśpiony. VeraCrypt zapewnia to przez zabezpieczenie przed zapisem dowolnego systemu plików dostępnego zarówno z systemu zwodzącego jak i ukrytego. Bez takiego zabezpieczenia system plików mógłby zostać uszkodzony podczas montowania przez jeden z systemów podczas, gdy drugi jest uśpiony.</string>
@@ -597,7 +597,7 @@
<string lang="pl" key="OPEN_TITLE">Podaj ścieżkę i nazwę pliku</string>
<string lang="pl" key="SELECT_PKCS11_MODULE">Wybierz PKCS #11 bibliotekÄ™</string>
<string lang="pl" key="OUTOFMEMORY">Brak pamięci</string>
- <string lang="pl" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">WAŻNE: Mocno rekomendujemy niedoświadczonym użytkownikom tworzenie kontenerów VeraCrypt w plikach na wybranych urządzeniach/partycjach, zamiast szyfrować całe urządzenie/partycję.\n\nKiedy tworzysz kontener VeraCrypt plik (jako alternatywę zaszyfrowania urządzenia lub partycji) nie ma ryzyka np. uszkodzenia dużej ilości plików. Pamiętaj, że kontener - plik VeraCrypt (każdy wirtualny zaszyfrowany dysk) jest tak jak każdy normalny plik. Po więcej informacji, zajrzyj do instrukcji Beginner's Tutorial w dokumentacji VeraCrypt.\n\nCzy jesteś pewien że chcesz zaszyfrować całe urządzenie/partycję?</string>
+ <string lang="pl" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">WAŻNE: Mocno zalecamy niedoświadczonym użytkownikom tworzenie kontenerów VeraCrypt w plikach na wybranych urządzeniach/partycjach, zamiast szyfrować całe urządzenie/partycję.\n\nKiedy tworzysz kontener VeraCrypt plik (jako alternatywę zaszyfrowania urządzenia lub partycji) nie ma ryzyka np. uszkodzenia dużej ilości plików. Pamiętaj, że kontener - plik VeraCrypt (każdy wirtualny zaszyfrowany dysk) jest tak jak każdy normalny plik. Po więcej informacji, zajrzyj do instrukcji Beginner's Tutorial w dokumentacji VeraCrypt.\n\nCzy jesteś pewien że chcesz zaszyfrować całe urządzenie/partycję?</string>
<string lang="pl" key="OVERWRITEPROMPT">OSTRZEŻENIE: Plik '%s' już istnieje!\n\nWAŻNE: PROGRAM VERACRYPT NIE ZASZYFRUJE TEGO PLIKU, ALE GO USUNIE! Czy na pewno usunąć ten plik i zastąpić go nowym kontenerem VeraCrypt?</string>
<string lang="pl" key="OVERWRITEPROMPT_DEVICE">UWAGA: WSZYSTKIE PLIKI OBECNIE ZAPISANE W %s '%s'%s BĘDĄ USUNIĘTE I ZOSTANĄ UTRACONE (NIE BĘDĄ ZASZYFROWANE)!\n\nCzy na pewno chcesz kontynuować formatowanie?</string>
<string lang="pl" key="NONSYS_INPLACE_ENC_CONFIRM">UWAGA: Nie zostaniesz dopuszczony do podłączenia wolumenu lub dostępu do zapisanych plików dopóki nie zostaną one w pełni zaszyfrowane.\n\nCzy jesteś pewien, że chcesz uruchomić szyfrowanie: %s '%s'%s?</string>
@@ -670,7 +670,7 @@
<string lang="pl" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Wybierz katalog do przechowywania plików-kluczy.</string>
<string lang="pl" key="SELECTED_KEYFILE_IS_CONTAINER_FILE">Bieżący plik kontenera został wybrany jako plik-klucz. Zostanie on pominięty.</string>
<string lang="pl" key="SERPENT_HELP">Zaprojektowany przez Rossa Andersona, Eli Bihama i Larsa Knudsena. Opublikowany w 1998. 256-bitowy klucz, 128-bitowy blok. Tryb szyfrowania: XTS. Algorytm Serpent był jednym z finalistów konkursu na algorytm AES.</string>
- <string lang="pl" key="SIZE_HELP">Wskaż rozmiar kontenera do utworzenia.\n\nJeśli tworzysz dynamiczny (sparse-file) kontener, ten parametr wskazuje maksymalny możliwy rozmiar.\n\nZauważ, że minimalny możliwy rozmiar woluminu FAT wynosi 292 KB. Minimalny możliwy rozmiar wolumenu NTFS to 3792 KB.</string>
+ <string lang="pl" key="SIZE_HELP">Wskaż rozmiar kontenera do utworzenia.\n\nJeśli tworzysz dynamiczny (sparse-file) kontener, ten parametr wskazuje maksymalny możliwy rozmiar.\n\nZauważ, że minimalny możliwy rozmiar woluminu FAT wynosi 292 KB. Minimalny możliwy rozmiar wolumenu exFAT to 424 KB. Minimalny możliwy rozmiar wolumenu NTFS to 3792 KB. Minimalny możliwy rozmiar wolumenu ReFS to 642 MB.</string>
<string lang="pl" key="SIZE_HELP_HIDDEN_HOST_VOL">Wskaż rozmiar zewnętrznego wolumenu do utworzenia (na początku zostanie utworzony wolumen zewnętrzny a następnie wolumen ukryty wewnątrz niego). Minimalny możliwy rozmiar wolumenu, wewnątrz którego tworzony jest wolumen ukryty wynosi 340 KB.</string>
<string lang="pl" key="SIZE_HELP_HIDDEN_VOL">Wskaż rozmiar ukrytego wolumenu do utworzenia. Minimalny dozwolony rozmiar ukrytego wolumenu jest 40 KB (lub 3664 KB jeśli jest formatowany jako NTFS). Maksymalny możliwy rozmiar możliwy do wskazania dla ukrytego wolumenu wyświetlono powyżej.</string>
<string lang="pl" key="SIZE_HIDVOL_HOST_TITLE">Wielkość wolumenu zewnętrznego</string>
@@ -729,11 +729,11 @@
<string lang="pl" key="ALL_FILES">Wszystkie pliki</string>
<string lang="pl" key="TC_VOLUMES">Wolumeny programu VeraCrypt</string>
<string lang="pl" key="DLL_FILES">Moduły bibliotek</string>
- <string lang="pl" key="FORMAT_NTFS_STOP">Kontynuowanie formatowania NTFS nie jest możliwe.</string>
+ <string lang="pl" key="FORMAT_NTFS_STOP">Kontynuowanie formatowania NTFS/exFAT/ReFS nie jest możliwe.</string>
<string lang="pl" key="CANT_MOUNT_VOLUME">Nie można podłączyć wolumenu.</string>
<string lang="pl" key="CANT_DISMOUNT_VOLUME">Nie można odłączyć wolumenu.</string>
- <string lang="pl" key="FORMAT_NTFS_FAILED">System Windows nie może sformatować tego wolumenu jako NTFS.\n\nWybierz inny typ systemu plików (jeśli to możliwe) i ponów próbę. Alternatywnie pozostaw ten wolumen jako niesformatowany (wybierz system plików 'Żaden'), wyjdź z kreatora, podłącz wolumen i sformatuj go innym programem narzędziowym (systemowym lub pochodzącym od innego dostawcy). Wolumen pozostanie zaszyfrowany.</string>
- <string lang="pl" key="FORMAT_NTFS_FAILED_ASK_FAT">System Windows nie mógł sformatować tego wolumenu jako NTFS.\n\nCzy sformatować go jako FAT?</string>
+ <string lang="pl" key="FORMAT_NTFS_FAILED">System Windows nie może sformatować tego wolumenu jako NTFS/exFAT/ReFS.\n\nWybierz inny typ systemu plików (jeśli to możliwe) i ponów próbę. Alternatywnie pozostaw ten wolumen jako niesformatowany (wybierz system plików 'Żaden'), wyjdź z kreatora, podłącz wolumen i sformatuj go innym programem narzędziowym (systemowym lub pochodzącym od innego dostawcy). Wolumen pozostanie zaszyfrowany.</string>
+ <string lang="pl" key="FORMAT_NTFS_FAILED_ASK_FAT">System Windows nie mógł sformatować tego wolumenu jako NTFS/exFAT/ReFS.\n\nCzy sformatować go jako FAT?</string>
<string lang="pl" key="DEFAULT">Domyślny</string>
<string lang="pl" key="PARTITION_LOWER_CASE">partycja</string>
<string lang="pl" key="PARTITION_UPPER_CASE">PARTYCJA</string>
@@ -760,7 +760,7 @@
<string lang="pl" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Zapamiętaj: Nie jest praktykowane (i dlatego nie jest wspierane) zainstalowanie dwóch systemów operacyjnych w dwóch wolumenach VeraCrypt zawartych wewnątrz jednej partycji, ponieważ używanie zewnętrznego systemu operacyjnego często wymaga zapisania danych na obszarze ukrytego systemu operacyjnego.</string>
<string lang="pl" key="FOR_MORE_INFO_ON_PARTITIONS">Aby uzyskać informacje jak stworzyć i zarządzać partycjami, proszę przeczytać dokumentację zawartą w systemie operacyjnym lub skontaktować się ze swoim serwisem sprzętu.</string>
<string lang="pl" key="SYSTEM_PARTITION_NOT_ACTIVE">BÅÄ„D: Obecnie uruchomiony system operacyjny nie jest zainstalowany na partycji bootujÄ…cej (pierwszej aktywnej partycji). To nie jest obsÅ‚ugiwane.</string>
- <string lang="pl" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Stwierdziłeś, że będziesz przechowywał na tym wolumenie pliki większe niż 4 GB. Jednodcześnie wybrałeś system plików FAT, na którym nie można umieścić plików większych niż 4 GB.\n\nCzy jesteś pewien że chcesz sformatować zewnętrzny wolumen jako FAT?</string>
+ <string lang="pl" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Stwierdziłeś, że będziesz przechowywał na tym wolumenie pliki większe niż 4 GB. Jednocześnie wybrałeś system plików FAT, na którym nie można umieścić plików większych niż 4 GB.\n\nCzy jesteś pewien że chcesz sformatować zewnętrzny wolumen jako FAT?</string>
<string lang="pl" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Błąd: VeraCrypt nie obsługuje deszyfrowania "w locie" starych bezsystemowych wolumenów stworzonych przez VeraCrypt 1.0b albo wcześniejsze.\n\nUwaga: Wciąż możesz odszyfrować pliki zgromadzone na wolumenie poprzez skopiowanie lub przeniesienie ich na niezaszyfrowany wolumen.</string>
<string lang="pl" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Błąd: Nie może odszyfrować "w locie" ukrytego wolumenu VeraCrypt.\n\nUwaga: Wciąż możesz odszyfrować pliki zgromadzone na wolumenie poprzez skopiowanie lub przeniesienie ich na niezaszyfrowany wolumen.</string>
<string lang="pl" key="CONFIRM_VOL_CONTAINS_NO_HIDDEN_VOL">Ostrzeżenie: Zauważ, że VeraCrypt nie może odszyfrować "w locie" wolumenu, który zawiera ukryty wolumen VeraCrypt (ukryty wolumen zostałby nadpisany danymi pseudolosowymi).\n\nProszę potwierdzić, że wolumen, który zamierzasz odszyfrować nie zawiera ukrytego wolumenu.\n\nUwaga: Jeżeli wolumen zawiera ukryty wolumen, ale nie obawiasz się jego utraty, możesz wybrać Kontynuuj (zewnętrzny wolumen zostanie bezpiecznie odszyfrowany).</string>
@@ -832,7 +832,7 @@
<string lang="pl" key="SETUP_MODE_INFO">Wybierz jedną z metod. Jeżeli nie jesteś pewny co wybrać, wybierz wartość domyślną.</string>
<string lang="pl" key="SETUP_MODE_HELP_INSTALL">Wybierz tą opcję jeżeli chcesz zainstalować VeraCrypt w tym systemie.</string>
<string lang="pl" key="SETUP_MODE_HELP_UPGRADE">Wskazówka: Możesz uaktualnić bez rozszyfrowywania nawet jeśli zaszyfrowana jest partycja/dysk systemowy lub używasz ukrytego systemu operacyjnego.</string>
- <string lang="pl" key="SETUP_MODE_HELP_EXTRACT">Jeżeli wybierzesz tą opcję, wszystkie pliki będą wypakowane z tego archiwumm, ale nic nie zostanie zainstalowane w systemie. Nie zaznaczaj, jeżeli rzeczywiście chcesz zaszyfrować systemową partycję lub systemowy dysk. Zaznaczenie tej opcji może być używane np. jeżeli chcesz uruchomić VeraCrypt np. w trybie przenośnym. VeraCrypt nie zostanie zainstalowany w systemie operacyjnym. Po wypakowaniu wszystkich plików, możesz bezpośrednio uruchomić rozpakowany 'VeraCrypt.exe' (VeraCrypt uruchomi się w trybie przenośnym).</string>
+ <string lang="pl" key="SETUP_MODE_HELP_EXTRACT">Jeżeli wybierzesz tą opcję, wszystkie pliki będą wypakowane z tego archiwum, ale nic nie zostanie zainstalowane w systemie. Nie zaznaczaj, jeżeli rzeczywiście chcesz zaszyfrować systemową partycję lub systemowy dysk. Zaznaczenie tej opcji może być używane np. jeżeli chcesz uruchomić VeraCrypt np. w trybie przenośnym. VeraCrypt nie zostanie zainstalowany w systemie operacyjnym. Po wypakowaniu wszystkich plików, możesz bezpośrednio uruchomić rozpakowany 'VeraCrypt.exe' (VeraCrypt uruchomi się w trybie przenośnym).</string>
<string lang="pl" key="SETUP_OPTIONS_TITLE">Opcje instalowania</string>
<string lang="pl" key="SETUP_OPTIONS_INFO">W tym oknie można ustawić opcje kontrolujące proces instalacji.</string>
<string lang="pl" key="SETUP_PROGRESS_TITLE">Instalowanie</string>
@@ -857,7 +857,7 @@
<string lang="pl" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer jest uruchomiony w twoim systemie i przygotowuje lub dokonuje instalacji lub uaktualnienia VeraCrypt. Przed dalszym kontynuowaniem instalacji, proszę poczekać na zakończenie aktualnego działania lub zamknij aplikacje. Jeżeli nie możesz zamknąć, proszę zrestartuj komputer przed uruchomieniem procesu instalacji.</string>
<string lang="pl" key="INSTALL_FAILED">Niepowodzenie instalacji.</string>
<string lang="pl" key="UNINSTALL_FAILED">Niepowodzenie dezinstalacji.</string>
- <string lang="pl" key="DIST_PACKAGE_CORRUPTED">Pakiet dystrybucyjny jest uszkodzony. Pobierz go ponownie (najlepiej z oficjalnej strony programu VeraCrypt po adresem www.veracrypt.org).</string>
+ <string lang="pl" key="DIST_PACKAGE_CORRUPTED">Pakiet dystrybucyjny jest uszkodzony. Pobierz go ponownie (najlepiej z oficjalnej strony programu VeraCrypt po adresem https://www.veracrypt.fr).</string>
<string lang="pl" key="CANNOT_WRITE_FILE_X">Nie można zapisać pliku %s</string>
<string lang="pl" key="EXTRACTING_VERB">Wyodrębnianie</string>
<string lang="pl" key="CANNOT_READ_FROM_PACKAGE">Nie można odczytać danych z tego pakietu.</string>
@@ -937,7 +937,7 @@
<string lang="pl" key="SYSTEM_FAVORITE_NETWORK_PATH_ERR">Ze względu na ograniczenia Windows, nośnik przechowywany w zdalnym systemie plików współdzielonym przez sieć nie może być montowany jako systemowy wolumen ulubiony (jednakże może być montowany jako bezsystemowy wolumen ulubiony podczas logowania użytkownika).</string>
<string lang="pl" key="ENTER_PASSWORD_FOR">Podaj hasło dla %s</string>
<string lang="pl" key="ENTER_PASSWORD_FOR_LABEL">Podaj hasło dla '%s'</string>
- <string lang="pl" key="ENTER_NORMAL_VOL_PASSWORD">Wprowadź hasło dla normalnego/innego wolumentu</string>
+ <string lang="pl" key="ENTER_NORMAL_VOL_PASSWORD">Wprowadź hasło dla normalnego/innego wolumenu</string>
<string lang="pl" key="ENTER_HIDDEN_VOL_PASSWORD">Wprowadź hasło dla ukrytego wolumenu</string>
<string lang="pl" key="ENTER_HEADER_BACKUP_PASSWORD">Wprowadź hasło do zapisania do pliku kopii bezpieczeństwa nagłówka</string>
<string lang="pl" key="KEYFILE_CREATED">Plik-klucz został pomyślnie utworzony.</string>
@@ -950,7 +950,7 @@
<string lang="pl" key="VOL_HEADER_BACKED_UP">Pomyślnie utworzono kopię zapasową nagłówka wolumenu.\n\nWAŻNE: Odtworzenie nagłówka wolumenu z użyciem tej kopii spowoduje odtworzenie aktualnego hasła wolumenu. Oprócz tego, jeśli pliki-klucze są potrzebne do podłączania, te same pliki klucze będą niezbędne do podłączenia wolumenu po odtworzeniu jego nagłówka.\n\nOSTRZEŻENIE: Obecna kopia zapasowa nagłówka może być użyta TYLKO dla tego wolumenu. Użycie tej kopii nagłówka dla innego wolumenu umożliwi jego podłączenie, ale NIE BĘDZIE MOŻLIWE odszyfrowanie danych zapisanych w wolumenie (ponieważ zmieni się jego klucz nadrzędny).</string>
<string lang="pl" key="VOL_HEADER_RESTORED">Nagłówek wolumenu został pomyślnie odtworzony.\n\nWAŻNE: Stare hasło również zostało odtworzone. Jeśli w chwili utworzenia tej kopii zapasowej do podłączenia wolumenu były konieczne pliki-klucze, te same pliki będą znów potrzebne do podłączenia wolumenu.</string>
<string lang="pl" key="EXTERNAL_VOL_HEADER_BAK_FIRST_INFO">Z powodów bezpieczeństwa, powinieneś wprowadzić poprawne hasło (i/lub podać pliki-klucze) do wolumenu.\n\nUwaga: Jeżeli wolumen zawiera ukryty wolumen, powinieneś wprowadzić poprawne hasło (i/lub podać poprawne pliki-klucze) najpierw do zewnętrznego wolumenu. Potem, jeżeli wybierzesz kopię nagłówka ukrytego wolumenu, będziesz musiał wprowadzić poprawne hasło (i/lub podać poprawne pliki-klucze) do ukrytego wolumenu.</string>
- <string lang="pl" key="CONFIRM_VOL_HEADER_BAK">Czy jesteś pewien, że chcesz zrobić kopię zapasową nagłówka wolumenu %s?\n\nPo naciśnięciu Tak, zostaniesz zapytany o nazwę pliku, do którego kopia zostanie zapisana.\n\nUwaga: Oba - standardowe i ukryte nagłówki wolumenów będą ponownie zaszyfrowane używając nowego klucza (new salt) i zostaną zapisane w pliku kopii. Jeżeli nie ma w tym wolumenie ukrytego wolumenu, miejsce zarezerwowane na nagłówek ukrytego wolumenu w kopii bezpieczeństwa zostanie wypełniona losowymi danymi. Kiedy będzięsz odtwarzał nagłówek wolumenu z kopii, będziesz potrzebował wprowadzenia poprawnego hasła (i/lub podania poprawnego pliku/ów-klucza/y), które zostało ustawione podczas tworzenia kopii nagłówka wolumenu. Na podstawie hasła (i/lub plików-kluczy) zostanie automatycznie wykryty typ nagłówka wolumenu do odtworzenia, np. standardowy lub ukryty (VeraCrypt wykrywa to w trakcie procesu testu i zwracanych błędów).</string>
+ <string lang="pl" key="CONFIRM_VOL_HEADER_BAK">Czy jesteś pewien, że chcesz zrobić kopię zapasową nagłówka wolumenu %s?\n\nPo naciśnięciu Tak, zostaniesz zapytany o nazwę pliku, do którego kopia zostanie zapisana.\n\nUwaga: Oba - standardowe i ukryte nagłówki wolumenów będą ponownie zaszyfrowane używając nowego klucza (new salt) i zostaną zapisane w pliku kopii. Jeżeli nie ma w tym wolumenie ukrytego wolumenu, miejsce zarezerwowane na nagłówek ukrytego wolumenu w kopii bezpieczeństwa zostanie wypełniona losowymi danymi. Kiedy będziesz odtwarzał nagłówek wolumenu z kopii, będziesz potrzebował wprowadzenia poprawnego hasła (i/lub podania poprawnego pliku/ów-klucza/y), które zostało ustawione podczas tworzenia kopii nagłówka wolumenu. Na podstawie hasła (i/lub plików-kluczy) zostanie automatycznie wykryty typ nagłówka wolumenu do odtworzenia, np. standardowy lub ukryty (VeraCrypt wykrywa to w trakcie procesu testu i zwracanych błędów).</string>
<string lang="pl" key="CONFIRM_VOL_HEADER_RESTORE">Czy na pewno odtworzyć nagłówek %s?\n\nOSTRZEŻENIE: Odtworzenie nagłówka wolumenu spowoduje również przywrócenie hasła, które było aktualne w momencie tworzenia kopii zapasowej. Oprócz tego jeśli pliki-klucze są potrzebne do podłączania, te same pliki-klucze będą niezbędne do podłączenia wolumenu po odtworzeniu jego nagłówka.\n\nPo potwierdzeniu konieczne będzie wybranie pliku kopii zapasowej nagłówka.</string>
<string lang="pl" key="DOES_VOLUME_CONTAIN_HIDDEN">Czy wolumen zawiera ukryte wolumeny?</string>
<string lang="pl" key="VOLUME_CONTAINS_HIDDEN">Wolumen zawiera ukryte wolumeny</string>
@@ -1031,7 +1031,7 @@
<string lang="pl" key="MOUNTED_VOLUMES_DISMOUNTED">Wolumeny VeraCrypt zostały odłączone.</string>
<string lang="pl" key="VOLUMES_DISMOUNTED_CACHE_WIPED">Wolumeny VeraCrypt zostały odłączone a bufor haseł wyczyszczony.</string>
<string lang="pl" key="SUCCESSFULLY_DISMOUNTED">Pomyślnie odłączone</string>
- <string lang="pl" key="CONFIRM_BACKGROUND_TASK_DISABLED">UWAGA: Jeśli Zadanie VeraCrypt w Tle jest zablokowane, odłączone są następujące funkcje:\n\n1) Klawisze skrótu\n2) Auto-dismount (tj., podczas wylogowywania, niezapowiedzianego odłączeniu nośnika, tajmautu itp.)\n3) Auto-mount ulubionych wolumenów\n4) Powiadomienia (np, przy zapobieganiu uszkodzenia ukrytego wolumenu)\n5) Ikony powiadomień\n\nZauważ: Można w każdej chwili zakończyć Zadanie w Tle prawym przyciskiem myszki na ikonie powiadomień i wybierając 'Zakończ'.\n\nCzy na pewno trwale zablokować Zadanie VeraCrypt w Tle?</string>
+ <string lang="pl" key="CONFIRM_BACKGROUND_TASK_DISABLED">UWAGA: Jeśli Zadanie VeraCrypt w Tle jest zablokowane, odłączone są następujące funkcje:\n\n1) Klawisze skrótu\n2) Auto-dismount (tj., podczas wylogowywania, niezapowiedzianego odłączeniu nośnika, timeoutu itp.)\n3) Auto-mount ulubionych wolumenów\n4) Powiadomienia (np, przy zapobieganiu uszkodzenia ukrytego wolumenu)\n5) Ikony powiadomień\n\nZauważ: Można w każdej chwili zakończyć Zadanie w Tle prawym przyciskiem myszki na ikonie powiadomień i wybierając 'Zakończ'.\n\nCzy na pewno trwale zablokować Zadanie VeraCrypt w Tle?</string>
<string lang="pl" key="CONFIRM_NO_FORCED_AUTODISMOUNT">OSTRZEŻENIE: Jeśli opcja ta zostanie wyłączona, wolumeny zawierające otwarte pliki/katalogi nie będą mogły być automatycznie odłączane.\n\nCzy na pewno wyłączyć tę opcję?</string>
<string lang="pl" key="WARN_PREF_AUTO_DISMOUNT">OSTRZEŻENIE: Wolumeny zawierające otwarte pliki/katalogi nie będą automatycznie odłączane.\n\nAby to zmienić, włącz następującą opcję w tym oknie dialogowym: 'Wymuś odłączanie, nawet gdy są otwarte pliki lub katalogi'.</string>
<string lang="pl" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">OSTRZEŻENIE: Kiedy w laptopie bateria jest słaba, Windows może wysłać informacje do uruchomionych aplikacji, że wchodzi w stan oszczędzania energii. Dlatego, VeraCrypt w tych przypadkach może błędnie automatycznie odłączać wolumeny.</string>
@@ -1090,7 +1090,7 @@
<string lang="pl" key="SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK">Program VeraCrypt nie obsługuje szyfrowania dysku systemowego, który został przekształcony w dysk dynamiczny.</string>
<string lang="pl" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">Dysk systemowy zawiera rozszerzone (logiczne) partycje.\n\nMożesz zaszyfrować cały dysk systemowy zawierający rozszerzone (logiczne) partycje tylko pod Windows Vista lub późniejsze wersje Windows. Na Windows XP możesz zaszyfrować cały dysk systemowy pod warunkiem że zawiera on tylko partycje podstawowe.\n\nUwaga: Możesz wciąż zaszyfrować partycję systemową zamiast całego dysku systemowego (a ponadto możesz utworzyć możesz utworzyć partycyjne wolumeny VeraCrypt na wszystkich partycjach bezsystemowych dysku).</string>
<string lang="pl" key="WDE_EXTENDED_PARTITIONS_WARNING">OSTRZEŻENIE: Ponieważ pracujesz na Windows XP/2003, po uruchomieniu szyfrowania dysku NIE wolno ci utworzyć rozszerzonych (logicznych) partycji na nim (możesz tworzyć tylko partycje podstawowe). Dowolna rozszerzona (logiczna) partycja na dysku stanie się niedostępna po rozpoczęciu szyfrowania (dysk nie zawiera teraz takich partycji).\n\nUwaga: Jeśli to ograniczenie jest nie do przyjęcia, możesz się wycofać i wybrać szyfrowanie tylko partycji systemowej zamiast całego dysku (ponadto możesz utworzyć partycyjne wolumeny VeraCrypt na wszystkich bezsystemowych partycjach dysku).\n\nZ drugiej strony, jeśli to ograniczenie jest nie do przyjęcia, możesz rozważyć aktualizację do Windows Vista lub najnowszej wersji Windows (Możesz szyfrować cały dysk zawierający rozszerzone/logiczne partycje tylko pod Windows Vista lub późniejszymi).</string>
- <string lang="pl" key="SYSDRIVE_NON_STANDARD_PARTITIONS">Twój dysk systemowy zawiera niestandardową partycję.\n\nJeśli używasz laptopa, napęd systemowy zawiera specjalną partycję przywracania. Gdy cały napęd systemowy zostanie zaszyfrowany (włączając partycję przywracania), system może stać się niebutowalny jeśli komputer używa niewłaściwie zaprojektowanego BIOSa. Będzie równiez niemożliwe użycie jakiejkolwiek partycji przywracania do czasu aż aystem zostanie odszyfrowany. Zaleczmy w takim przypadku zaszyfrować tylko partycję systemową.</string>
+ <string lang="pl" key="SYSDRIVE_NON_STANDARD_PARTITIONS">Twój dysk systemowy zawiera niestandardową partycję.\n\nJeśli używasz laptopa, napęd systemowy zawiera specjalną partycję przywracania. Gdy cały napęd systemowy zostanie zaszyfrowany (włączając partycję przywracania), system może stać się nierozruchowy, jeśli komputer używa niewłaściwie zaprojektowanego BIOS-u. Będzie równiez niemożliwe użycie jakiejkolwiek partycji przywracania do czasu aż aystem zostanie odszyfrowany. Zaleczmy w takim przypadku zaszyfrować tylko partycję systemową.</string>
<string lang="pl" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Czy chcesz zaszyfrować partycję systemową zamiast całego dysku?\n\nMożna utworzyć wolumen VeraCrypt w partycji w każdej nie systemowej partycji tego dysku (oprócz zaszyfrowania partycji systemowej).</string>
<string lang="pl" key="WHOLE_SYC_DEVICE_RECOM">Jeśli dysk systemowy zawiera tylko jedną partycję zajmującą cały dysk, bardziej bezpieczne jest zaszyfrowanie całego dysku, włączając w to wolne miejsce, które zwykle otacza taką partycję.\n\nCzy chcesz zaszyfrować cały dysk?</string>
<string lang="pl" key="TEMP_NOT_ON_SYS_PARTITION">Twój system jest ustawiony, tak aby przechowywać pliki tymczasowe na nie systemowej partycji.\n\nPliki tymczasowe mogą być przechowywane tylko na partycji systemowej.</string>
@@ -1157,7 +1157,7 @@
<string lang="pl" key="SYSENC_MULTI_BOOT_OUTCOME_TITLE">Wiele systemów</string>
<string lang="pl" key="CUSTOM_BOOT_MANAGERS_IN_MBR_UNSUPPORTED">Program VeraCrypt obecnie nie obsługuje konfiguracji wielosystemowej, w której w głównym rekordzie startowym (MBR) jest zainstalowany program startowy z systemu innego niż Windows.\n\nMożliwe rozwiązania:\n\n- Jeśli używasz menedżera uruchamiania do uruchamiania systemów Windows i Linux, przenieś menedżera uruchamiania (np. GRUB lub LILO) z MBR do partycji. Następnie uruchom ponownie kreator i zaszyfruj partycję lub dysk systemowy. Program startowy VeraCrypt stanie się podstawowym menedżerem uruchamiania i będzie pozwalał na uruchamianie oryginalnego menedżera uruchamiania (np. GRUB lub LILO) jako drugiego menedżera uruchamiania (przez naciśnięcie klawisza Esc na ekranie programu startowego VeraCrypt), co umożliwi uruchamianie systemu Linux.</string>
<string lang="pl" key="WINDOWS_BOOT_LOADER_HINTS">Jeżeli obecnie uruchomiony system operacyjny jest zainstalowany na boot partycji, wówczas po zaszyfrowaniu jej, będziesz musiał wprowadzić poprawne hasło za każdym razem kiedy będziesz uruchamiał system (nawet ten niezaszyfrowany).\n\nNatomiast, jeżeli obecnie uruchomiony system operacyjny nie jest zainstalowany na boot partycji (lub jeżeli program startowy Windows nie jest używany przez inny system), wówczas, po zaszyfrowaniu systemu nie będziesz musiał wprowadzać hasła do uruchomienia innych systemów (również tych niezaszyfrowanych) -- będziesz musiał wcisnąć tylko klawisz Esc, aby uruchomić niezaszyfrowany system (jeżeli jest wiele niezaszyfrowanych systemów będziesz musiał wybrać, który system chcesz uruchomić).\n\nUwaga: Typowo, Windows jest zainstalowany na boot partycji.</string>
- <string lang="pl" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Szyfrowanie Obszeru Chronionego Hosta</string>
+ <string lang="pl" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Szyfrowanie obszaru chronionego gospodarza</string>
<string lang="pl" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">Na końcu wielu dysków są ukryte miejsca, gdzie nie ma dostępu system operacyjny (są to zwykle Host Protected Areas). Jednakże niektóre programy potrafią czytać i pisać dane z/do tych sektorów.\n\nUWAGA: Niektórzy producenci sprzętu używają tych miejsc do przechowywania narzędzi np. do RAID, odtwarzania systemu, konfiguracji systemu, diagnostyki lub innych narzędzi. Jeżeli te narzędzia lub dane muszą być dostępne przed bootowaniem, obszar ten NIE powinien być zaszyfrowany (wybierz 'Nie' powyżej).\n\nCzy chcesz, aby VeraCrypt wykrył i zaszyfrował te ukryte obszary na końcu dysku?</string>
<string lang="pl" key="SYSENC_TYPE_PAGE_TITLE">Typ Systemu Szyfrowania</string>
<string lang="pl" key="SYSENC_NORMAL_TYPE_HELP">Wybierz tą opcję jeżeli chcesz zaszyfrować jedynie partycję systemową lub cały dysk systemowy.</string>
@@ -1232,7 +1232,7 @@
<string lang="pl" key="HIDDEN_OS_CREATION_PREINFO_HELP">W następnym kroku, VeraCrypt będzie tworzył ukryty system operacyjny przez skopiowanie zawartości partycji systemowej do ukrytego wolumenu (kopiowane dane zostaną zaszyfrowane "w locie" z innym kluczem niż został użyty w zwodzącym systemie operacyjnym).\n\nProszę pamiętać, że proces zacznie się od rozruchu wstępnego i może zabrać dość dużo czasu aż skończy; od kilu godzin lub nieraz kliku dni (w zależności od wielkości partycji systemowej i wydajności twojego komputera).\n\nMożesz przerwać proces, wyłączając komputer, a proces wznowi się, gdy włączysz go ponownie. Jednakże, jeżeli przerwiesz proces, cały proces kopiowania zacznie się od początku (ponieważ zawartość systemowej partycji nie może ulec zmianie podczas klonowania).</string>
<string lang="pl" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Czy chcesz anulować cały proces tworzenia ukrytego systemu operacyjnego?\n\nInfo: Nie będziesz mógł wznowić procesu jeżeli go anulujesz teraz.</string>
<string lang="pl" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Chcesz anulować test szyfrowania systemu?</string>
- <string lang="pl" key="BOOT_PRETEST_FAILED_RETRY">Test szyfrowania systemu przez program VeraCrypt nie powiódł się. Czy chcesz spróbować jeszcze raz?\n\nJeśli wybierzesz 'Nie', komponent odpowiedzialny za uwierzytelnienie przed uruchomieniem zostanie odinstalowany.\n\nUwagi: \n\n- Jeśli program startowy VeraCrypt nie pytał o hasło przed uruchomieniem systemu Windows, jest możliwe, że system operacyjny nie startuje z dysku, na którym jest zainstalowany. \n\n- Jeśli używasz algorytmu szyfrującego innego niż AES i test się nie powiódł (po wpisaniu hasła), mogło to być spowodowane przez niepoprawnie przydzielony sterownik. Wybierz 'Nie' i spróbuj zaszyfrować ponownie partycję lub dysk systemowy, jednak przy użyciu algorytmu szyfrowania AES (który ma najmniejsze wymagania co do pamięci).\n\n- Więcej możliwych powodów i rozwiązań na stronie https://veracrypt.codeplex.com/wikipage?title=Troubleshooting (w języku angielskim).</string>
+ <string lang="pl" key="BOOT_PRETEST_FAILED_RETRY">Test szyfrowania systemu przez program VeraCrypt nie powiódł się. Czy chcesz spróbować jeszcze raz?\n\nJeśli wybierzesz 'Nie', komponent odpowiedzialny za uwierzytelnienie przed uruchomieniem zostanie odinstalowany.\n\nUwagi: \n\n- Jeśli program startowy VeraCrypt nie pytał o hasło przed uruchomieniem systemu Windows, jest możliwe, że system operacyjny nie startuje z dysku, na którym jest zainstalowany. \n\n- Jeśli używasz algorytmu szyfrującego innego niż AES i test się nie powiódł (po wpisaniu hasła), mogło to być spowodowane przez niepoprawnie przydzielony sterownik. Wybierz 'Nie' i spróbuj zaszyfrować ponownie partycję lub dysk systemowy, jednak przy użyciu algorytmu szyfrowania AES (który ma najmniejsze wymagania co do pamięci).\n\n- Więcej możliwych powodów i rozwiązań na stronie https://www.veracrypt.fr/en/Troubleshooting.html (w języku angielskim).</string>
<string lang="pl" key="SYS_DRIVE_NOT_ENCRYPTED">Partycja/dysk systemowy nie jest zaszyfrowany (ani częściowo, ani w pełni).</string>
<string lang="pl" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Partycja/dysk systemowy jest zaszyfrowany (częściowo lub całkowicie).\n\nOdszyfruj partycję lub dysk systemowy przed kontynuowaniem. W tym celu wybierz opcję 'System' &gt; 'Trwale odszyfruj partycję lub dysk systemowy' w menu głównym programu VeraCrypt.</string>
<string lang="pl" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Kiedy systemowa partycja/dysk jest zaszyfrowany (częściowo lub całkowicie), nie możesz wykonać instalacji wcześniejszej wersji VeraCrypt (ale możesz zrobić aktualizacji lub reinstalację tej samej wersji).</string>
@@ -1257,7 +1257,7 @@
<string lang="pl" key="UPDATE_TC_IN_HIDDEN_OS_TOO">Wersja programu startowego VeraCrypt wystartowanego na tym systemie operacyjnym jest różna z wersją VeraCrypt zainstalowanego w tym systemie.\n\nPowinieneś uruchomić instalację VeraCrypt (gdzie wersja VeraCrypt jest taka sama jak użyta w programie startowym), aby zaktualizować VeraCrypt w systemie operacyjnym.</string>
<string lang="pl" key="BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION">Numer wersji programu startowego VeraCrypt, który uruchomił system operacyjny jest inna niż wersja sterownika VeraCrypt (oraz aplikacji VeraCrypt) zainstalowany w systemie. Zauważ, że starsze wersje mogą zawierać błędy poprawione w nowszych wersjach.\n\nJeśli nie startowałeś z płyty ratunkowej VeraCrypt, powinieneś przeinstalować VeraCrypt lub aktualizować do najnowszej stabilnej wersji (program startowy zostanie również zaktualizowany).\n\nJeśli startowałeś z płyty ratunkowej VeraCrypt, powinieneś go aktualizować ('System' &gt; 'Utwórz płytę ratunkową').</string>
<string lang="pl" key="BOOT_LOADER_UPGRADE_OK">Program startowy VeraCrypt został zaktualizowany.\n\nStanowczo zaleca się utworzenie nowej płyty ratunkowej VeraCrypt (która będzie zawierała nową wersję programu startowego VeraCrypt). W tym celu zrestartuj komputer i wybierz opcję 'System' &gt; 'Utwórz płytę ratunkową'.</string>
- <string lang="pl" key="BOOT_LOADER_UPGRADE_OK_HIDDEN_OS">Program startowy VeraCrypt został zaktualizowany.\n\nRekomendowane i wymagane jest zrestartowanie systemu operacyjnego i wykonanie nowej płyty ratunkowej VeraCrypt (która będzie zawierała nową wersję programu startowego VeraCrypt) przez wybranie 'System' &gt; 'Twórz płytę ratunkową'.</string>
+ <string lang="pl" key="BOOT_LOADER_UPGRADE_OK_HIDDEN_OS">Program startowy VeraCrypt został zaktualizowany.\n\nZalecane i wymagane jest zrestartowanie systemu operacyjnego i wykonanie nowej płyty ratunkowej VeraCrypt (która będzie zawierała nową wersję programu startowego VeraCrypt) przez wybranie 'System' &gt; 'Twórz płytę ratunkową'.</string>
<string lang="pl" key="BOOT_LOADER_UPGRADE_FAILED">Nie można zaktualizować programu startowego VeraCrypt.</string>
<string lang="pl" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt nie mógł ustalić rzeczywistej wielkości dysku systemowego, dlatego zostanie użyta wielkość dysku jaką raportuje system operacyjny (która może być mniejsza niż rzeczywista wielkość dysku). Jednak to nie jest błąd w VeraCrypt.</string>
<string lang="pl" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">OSTRZEŻENIE: Wygląda na to, że program VeraCrypt już próbował wykryć ukryte sektory na tym dysku systemowym. Jeśli w poprzednim procesie wykrywania wystąpiły jakieś problemy, można je ominąć, pomijając wykrywanie ukrytych sektorów. W takim wypadku program VeraCrypt użyje wielkości zgłaszanej przez system operacyjny (która może być mniejsza od wielkości rzeczywistej). Ten problem nie jest spowodowany przez błąd w programie VeraCrypt.</string>
@@ -1297,7 +1297,7 @@
<string lang="pl" key="SELECT_DEVICE_AND_MOUNT">Wybierz &amp;dysk i podłącz...</string>
<string lang="pl" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Zezwalaj tylko administratorom przeglądać i odmontowywać ulubione wolumeny systemowe VeraCrypt</string>
<string lang="pl" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Montuj ulubione wolumeny systemowe podczas startu Windows (w poczÄ…tkowej fazie procedury startup)</string>
- <string lang="pl" key="MOUNTED_VOLUME_DIRTY">OSTRZEŻENIE: System plików na wolumenie podłączonym jako '%s' nie został poprawnie odłączony i może to spowodować błędy. Używanie uszkodzonego systemu plików może spowodować utratę danych lub ich uszkodzenie.\n\nInformacja: Przed fizycznym usunięciem lub wyłączeniem urządzenia (np. dysków USB flash lub zewnętrznych dysków twardych), które są zamontowane VeraCryptem, powinieneś zawsze najpierw odłączyć wolumen w VeraCrypt.\n\n\nCzy chcesz pozwolić Windows wykryć i naprawiść (jeżeli umie) błędy na systemie plików?</string>
+ <string lang="pl" key="MOUNTED_VOLUME_DIRTY">OSTRZEŻENIE: System plików na wolumenie podłączonym jako '%s' nie został poprawnie odłączony i może to spowodować błędy. Używanie uszkodzonego systemu plików może spowodować utratę danych lub ich uszkodzenie.\n\nInformacja: Przed fizycznym usunięciem lub wyłączeniem urządzenia (np. dysków USB flash lub zewnętrznych dysków twardych), które są zamontowane VeraCryptem, powinieneś zawsze najpierw odłączyć wolumen w VeraCrypt.\n\n\nCzy chcesz pozwolić Windows wykryć i naprawić (jeżeli umie) błędy na systemie plików?</string>
<string lang="pl" key="SYS_FAVORITE_VOLUME_DIRTY">OSTRZEŻENIE: Jeden lub więcej ulubionych systemowych wolumenów nie został poprawnie odmontowany i stąd system plików może zawierać błędy. Proszę zobaczyć do dziennika zdarzeń po więcej informacji.\n\nUżywając uszkodzonego systemu plików możesz utracić lub uszkodzić dane. Powinieneś sprawdzić dotknięty błędem wolumen/y na błędy (kliknij prawym przyciskiem na każdym z wolumenów VeraCrypt i wybierz 'Napraw System Plików').</string>
<string lang="pl" key="FILESYS_REPAIR_CONFIRM_BACKUP">OSTRZEŻENIE: Naprawianie uszkodzonego systemu plików używając narzędzia Microsoft 'chkdsk' może spowodować utratę plików w uszkodzonym zakresie. Dlatego, zalecane jest najpierw skopiowanie plików umieszczonych w wolumenie VeraCrypt do innego dobrego wolumenu VeraCrypt.\n\nCzy chcesz teraz naprawiać system plików?</string>
<string lang="pl" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Wolumen '%s' został podłączony w trybie tylko do odczytu ponieważ nie ma prawa do zapisu.\n\nProszę upewnić się, że uprawnienia pliku kontenera zezwalają na jego zapis (kliknij prawy przycisk kontenera i wybierz Właściwości &gt; Uprawnienia).\n\nPamiętaj o tym, używając Windows, możesz zobaczyć to ostrzeżenie za każdym razem jak zmienisz uprawnienia. To nie jest błąd VeraCrypt. Możliwym rozwiązaniem jest przesunięcie kontenera np. do twoich 'Moje dokumenty'.\n\nJeżeli rzeczywiście chcesz utrzymywać twój wolumen w trybie tylko do odczytu, to ustaw atrybut tylko do odczytu (prawy przycisk myszy na kontenerze - Właściwości &gt; Tylko-do-odczytu), to wyłączy to ostrzeżenie.</string>
@@ -1413,6 +1413,15 @@
<string lang="pl" key="RESCUE_DISK_EFI_CHECK_FAILED">Nie można zweryfikować poprawnego wypakowania płyty ratunkowej.\n\nJeżeli wypakowałeś płytę ratunkową, proszę wysunąć i raz jeszcze wsunąć pamięć USB, kliknąć Dalej i spróbować ponownie. Jeżeli to nie pomoże, proszę wypróbować inną pamięć USB albo/i inny program obsługujący ZIP.\n\nJeżeli jeszcze nie wypakowałeś płyty ratunkowej, proszę to zrobić, a następnie kliknąć Dalej.\n\nJeżeli próbowałeś zweryfikować płytę ratunkową VeraCrypt stworzoną przed uruchomieniem tego kreatora, proszę pamiętać, że taka płyta ratunkowa nie może zostać użyta, ponieważ powstała dla innego klucza głównego. Musisz wypakować nowo powstały obraz ZIP płyty ratunkowej.</string>
<string lang="pl" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Nie można zweryfikować poprawności wypakowania płyty ratunkowej.\n\nJeżeli wypakowałeś płytę ratunkową, proszę wysunąć i raz jeszcze wsunąć pamięć USB, kliknąć Dalej i spróbować ponownie. Jeżeli to nie pomoże, proszę wypróbować inną pamięć USB albo/i inny program obsługujący ZIP lub inny nośnik\n\nIJeżeli próbowałeś zweryfikować płytę ratunkową VeraCrypt stworzoną dla innego klucza głównego, hasła, soli itd., proszę pamiętać, że taka płyta ratunkową zawsze nie przejdzie weryfikacji. Aby stworzyć nową płytę ratunkową w pełni kompatybilną z bieżącą konfiguracją, wybierz 'System' > 'Utwórz płytę ratunkową'.</string>
<string lang="pl" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Obraz płyty ratunkowej został stworzony i jest przechowywany w tym pliku:\n%s\n\nTeraz musisz wypakować go na pamięć USB, która jest sformatowana jako FAT/FAT32.\n\nWAŻNE: Pamiętaj, że plik ZIP musi być wypakowany bezpośrednio do głównego folderu pamięci USB. Na przykład, jeżeli litera napędu pamięci USB to E:, wtedy wypakowany plik ZIP powinien stworzyć folder E:\\EFI na pamięci USB.\n\nPo stworzeniu płyty ratunkowej wybierz 'System' > 'Sprawdź płytę ratunkową', aby zweryfikować poprawność jej stworzenia.</string>
+ <control lang="pl" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Użyj funkcji bezpiecznego pulpitu do wprowadzenia hasła</control>
+ <string lang="pl" key="ERR_REFS_INVALID_VOLUME_SIZE">Rozmiar pliku wolumenu określony w linii poleceń nie jest kompatybilny z wybranym systemem plików ReFS.</string>
+ <control lang="pl" key="IDC_EDIT_DCSPROP">Edytuj konfiguracjÄ™ programu rozruchowego</control>
+ <control lang="pl" key="IDC_SHOW_PLATFORMINFO">Wyświetl informacje o platformie EFI</control>
+ <string lang="pl" key="BOOT_LOADER_CONFIGURATION_FILE">Plik konfiguracji programu rozruchowego</string>
+ <string lang="pl" key="EFI_PLATFORM_INFORMATION">Informacje o platformie EFI</string>
+ <string lang="pl" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">UWAGA: Niedoświadczeni użytkownicy nie powinni próbować ręcznie edytować konfiguracje programu rozruchowego.\n\nKontynuować?</string>
+ <string lang="pl" key="DCSPROP_XML_VALIDATION_FAILED">UWAGA: Nie udało się zweryfikować formatu XML konfiguracji programu rozruchowego. Proszę sprawdzić swoje modyfikacje.</string>
+ <control lang="pl" key="IDT_ADVANCED_OPTIONS">Opcje zaawansowane</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.pt-br.xml b/Translations/Language.pt-br.xml
index 39dc487..cdcc568 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<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" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="pt-br" key="IDC_PREF_MOUNT_READONLY">Montar volumes apenas para leitura</control>
<control lang="pt-br" key="IDC_PREF_MOUNT_REMOVABLE">Montar volumes como mídia removível</control>
<control lang="pt-br" key="IDC_PREF_OPEN_EXPLORER">Abrir janela do Explorer para volumes montados com sucesso</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="pt-br" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Apagar senhas ao desmontar automaticamente</control>
<control lang="pt-br" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Apagar senhas ao sair</control>
@@ -857,7 +857,7 @@
<string lang="pt-br" key="TC_INSTALLER_IS_RUNNING">O instalador do VeraCrypt está atualmente em execução, realizando ou preparando uma instalação ou atualização do VeraCrypt. Antes de continuar, por favor, aguarde o seu término ou feche-o. Se você não puder fechá-lo, por favor, reinicie o computador antes de prosseguir.</string>
<string lang="pt-br" key="INSTALL_FAILED">A instalação falhou.</string>
<string lang="pt-br" key="UNINSTALL_FAILED">A desinstalação falhou.</string>
- <string lang="pt-br" key="DIST_PACKAGE_CORRUPTED">Este pacote de distribuição parece estar danificado. Tente baixá-lo novamente (de preferência a partir do nosso site oficial https://veracrypt.codeplex.com).</string>
+ <string lang="pt-br" key="DIST_PACKAGE_CORRUPTED">Este pacote de distribuição parece estar danificado. Tente baixá-lo novamente (de preferência a partir do nosso site oficial https://www.veracrypt.fr).</string>
<string lang="pt-br" key="CANNOT_WRITE_FILE_X">Não foi possível gravr o arquivoe %s</string>
<string lang="pt-br" key="EXTRACTING_VERB">Extraindo</string>
<string lang="pt-br" key="CANNOT_READ_FROM_PACKAGE">Não foi possível ler alguns dados do pacote de instalação.</string>
@@ -1232,7 +1232,7 @@
<string lang="pt-br" key="HIDDEN_OS_CREATION_PREINFO_HELP">Nas próximas etapas, o VeraCrypt irá criar o sistema operacional oculto copiando o conteúdo da partição do sistema para o volume oculto (os dados a serem copiados serão criptografados on-the-fly com uma chave de criptografia diferente daquele que será utilizada para o sistema isca).\n\nPor favor note que o processo será realizado em ambiente pré-boot (antes do Windows iniciar) e pode levar um longo tempo para concluir; várias horas ou até vários dias (dependendo do tamanho da partição do sistema e do desempenho do seu computador).\n\nVocê poderá interromper o processo, desligar o computador, iniciar o sistema operacional e, em seguida, retomar o processo. No entanto, se você interrompê-lo, todo o processo de cópia do sistema terá que começar desde o início (porque o conteúdo da partição do sistema não deve mudar durante a clonagem).</string>
<string lang="pt-br" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Deseja cancelar todo o processo de criação do sistema operacional oculto?\n\nNota: Você NÃO poderá retomar o processo se cancelá-lo agora.</string>
<string lang="pt-br" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Você deseja cancelar o pré-teste de criptografia de sistema?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="pt-br" key="SYS_DRIVE_NOT_ENCRYPTED">O dispositivo/partição de sistema não parece estar criptografado (nem parcial nem completamente).</string>
<string lang="pt-br" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Seu dispositivo/partição de sistema está criptografado (parcial ou completamente).\n\nFavor descriptografar o dispositivo/partição de sistema completamente antes de continuar. Para isso, clique em 'Sistema' &gt; 'Descriptografar Dispositivo/Partição de Sistema Definitivamente' na barra de menu da janela principal do VeraCrypt.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.ro.xml b/Translations/Language.ro.xml
new file mode 100644
index 0000000..38147cc
--- /dev/null
+++ b/Translations/Language.ro.xml
@@ -0,0 +1,1477 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VeraCrypt>
+ <localization prog-version="1.21">
+ <!-- Languages -->
+ <language langid="ro" name="Română" en-name="Romanian" version="1.0.0" translators="Barna Cosmin Marian" />
+ <!-- Fonts -->
+ <font lang="ro" class="normal" size="11" face="default" />
+ <font lang="ro" class="bold" size="13" face="Arial" />
+ <font lang="ro" class="fixed" size="12" face="Lucida Console" />
+ <font lang="ro" class="title" size="21" face="Times New Roman" />
+ <!-- Controls -->
+ <control lang="ro" key="IDCANCEL">Anulare</control>
+ <control lang="ro" key="IDC_ALL_USERS">Instalare &amp;pentru toți utilizatorii</control>
+ <control lang="ro" key="IDC_BROWSE">&amp;Răsfoire</control>
+ <control lang="ro" key="IDC_DESKTOP_ICON">Adăugare pictogramă VeraCrypt pe &amp;ecran</control>
+ <control lang="ro" key="IDC_DONATE">Donați acum</control>
+ <control lang="ro" key="IDC_FILE_TYPE">Asociere fișiere cu &amp;extensia .hc la VeraCrypt</control>
+ <control lang="ro" key="IDC_OPEN_CONTAINING_FOLDER">&amp;Deschide locația de destinație după finalizare</control>
+ <control lang="ro" key="IDC_PROG_GROUP">Adăugare VeraCrypt la meniul &amp;Start</control>
+ <control lang="ro" key="IDC_SYSTEM_RESTORE">Creare punct de restaurare &amp;sistem</control>
+ <control lang="ro" key="IDC_UNINSTALL">&amp;Dezinstalare</control>
+ <control lang="ro" key="IDC_WIZARD_MODE_EXTRACT_ONLY">&amp;Extragere</control>
+ <control lang="ro" key="IDC_WIZARD_MODE_INSTALL">&amp;Instalare</control>
+ <control lang="ro" key="IDD_INSTL_DLG">Asistent instalare VeraCrypt</control>
+ <control lang="ro" key="IDD_UNINSTALL">Dezinstalare VeraCrypt</control>
+ <control lang="ro" key="IDHELP">&amp;Ajutor</control>
+ <control lang="ro" key="IDT_EXTRACT_DESTINATION">Selectați sau introduceți destinaţia unde să fie plasate fișierele extrase:</control>
+ <control lang="ro" key="IDT_INSTALL_DESTINATION">Selectați sau introduceți destinaţia unde doriți să fie instalate fișierele programului VeraCrypt. Dacă folderul specificat nu există, va fi creat automat.</control>
+ <control lang="ro" key="IDT_UNINSTALL_DIR">Dați clic pe Dezinstalare pentru a elimina VeraCrypt din acest sistem.</control>
+ <control lang="ro" key="IDC_ABORT_BUTTON">Oprire</control>
+ <control lang="ro" key="IDC_BENCHMARK">&amp;Evaluare</control>
+ <control lang="ro" key="IDC_CIPHER_TEST">&amp;Testare</control>
+ <control lang="ro" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Creare volum criptat și formatare </control>
+ <control lang="ro" key="IDC_DEVICE_TRANSFORM_MODE_INPLACE">Criptare partiție din mers</control>
+ <control lang="ro" key="IDC_DISPLAY_KEYS">Afișare chei generate (porțiuni din ele)</control>
+ <control lang="ro" key="IDC_DISPLAY_POOL_CONTENTS">Afișare conținut sursă</control>
+ <control lang="ro" key="IDC_DOWNLOAD_CD_BURN_SOFTWARE">Descărcare program înregistrare CD/DVD</control>
+ <control lang="ro" key="IDC_FILE_CONTAINER">Creare fișier container criptat</control>
+ <control lang="ro" key="IDC_GB">&amp;GB</control>
+ <control lang="ro" key="IDC_TB">&amp;TB</control>
+ <control lang="ro" key="IDC_HIDDEN_SYSENC_INFO_LINK">Mai multe informatii</control>
+ <control lang="ro" key="IDC_HIDDEN_VOL">Volum VeraCrypt &amp;ascuns</control>
+ <control lang="ro" key="IDC_HIDDEN_VOL_HELP">Mai multe informatii despre volume ascunse</control>
+ <control lang="ro" key="IDC_HIDVOL_WIZ_MODE_DIRECT">Mod direct</control>
+ <control lang="ro" key="IDC_HIDVOL_WIZ_MODE_FULL">Mod normal</control>
+ <control lang="ro" key="IDC_KB">&amp;KB</control>
+ <control lang="ro" key="IDC_KEYFILES_ENABLE">Folo&amp;sire fișiere-cheie</control>
+ <control lang="ro" key="IDC_KEYFILES_TRY_EMPTY_PASSWORD">Încercaţi mai întâi montarea fără parolă</control>
+ <control lang="ro" key="IDC_KEYFILES_RANDOM_SIZE">Mărime aleatoare ( 64 &lt;-&gt; 1048576 )</control>
+ <control lang="ro" key="IDC_KEY_FILES">Fișiere-&amp;cheie</control>
+ <control lang="ro" key="IDC_LINK_HASH_INFO">Informatii algoritmi amestecare</control>
+ <control lang="ro" key="IDC_LINK_MORE_INFO_ABOUT_CIPHER">Mai multe informatii</control>
+ <control lang="ro" key="IDC_LINK_PIM_INFO">Informații despre MIP</control>
+ <control lang="ro" key="IDC_MB">&amp;MB</control>
+ <control lang="ro" key="IDC_MORE_INFO_ON_CONTAINERS">Mai multe informatii</control>
+ <control lang="ro" key="IDC_MORE_INFO_ON_SYS_ENCRYPTION">Mai multe informatii despre criptarea sistemului</control>
+ <control lang="ro" key="IDC_MORE_INFO_SYS_ENCRYPTION">Mai multe informatii</control>
+ <control lang="ro" key="IDC_MULTI_BOOT">Sisteme multiple</control>
+ <control lang="ro" key="IDC_NONSYS_DEVICE">Criptare partiție/disc non-sistem</control>
+ <control lang="ro" key="IDC_NO_HISTORY">Nu &amp;salva istoricul</control>
+ <control lang="ro" key="IDC_OPEN_OUTER_VOLUME">Deschide volum exterior</control>
+ <control lang="ro" key="IDC_PAUSE">&amp;Pauză</control>
+ <control lang="ro" key="IDC_PIM_ENABLE">Folosire M&amp;IP</control>
+ <control lang="ro" key="IDC_NEW_PIM_ENABLE">Folosire MIP</control>
+ <control lang="ro" key="IDC_QUICKFORMAT">Formatare rapidă</control>
+ <control lang="ro" key="IDC_SHOW_PASSWORD">Afișare &amp;parolă</control>
+ <control lang="ro" key="IDC_SHOW_PASSWORD_SINGLE">Afișare &amp;parolă</control>
+ <control lang="ro" key="IDC_SHOW_PIM">&amp;Afișare MIP</control>
+ <control lang="ro" key="IDC_SINGLE_BOOT">Sistem unic</control>
+ <control lang="ro" key="IDC_STD_VOL">Volum standard VeraCrypt</control>
+ <control lang="ro" key="IDC_SYSENC_HIDDEN">As&amp;cuns</control>
+ <control lang="ro" key="IDC_SYSENC_NORMAL">Normal</control>
+ <control lang="ro" key="IDC_SYS_DEVICE">Criptare partiție sistem sau tot discul sistem</control>
+ <control lang="ro" key="IDC_SYS_PARTITION">Criptare partiție sistem Windows</control>
+ <control lang="ro" key="IDC_WHOLE_SYS_DRIVE">Criptare tot discul</control>
+ <control lang="ro" key="IDD_VOL_CREATION_WIZARD_DLG">Asistent creare volum VeraCrypt</control>
+ <control lang="ro" key="IDT_CLUSTER">Cluster </control>
+ <control lang="ro" key="IDT_COLLECTING_RANDOM_DATA_NOTE">IMPORTANT: Mișcați cursorul cât de aleator posibil în interiorul acestei ferestre. Cu cât îl mișcați mai mult, cu atât mai bine. Aceasta mărește considerabil puterea criptografică a cheilor de criptare. Apoi dați clic pe Înainte pentru a continua.</control>
+ <control lang="ro" key="IDT_CONFIRM">&amp;Confirmare:</control>
+ <control lang="ro" key="IDT_DONE">Done</control>
+ <control lang="ro" key="IDT_DRIVE_LETTER">Literă unitate:</control>
+ <control lang="ro" key="IDT_ENCRYPTION_ALGO">Algoritm criptare</control>
+ <control lang="ro" key="IDT_FILESYSTEM">Fișiere sistem</control>
+ <control lang="ro" key="IDT_FILE_CONTAINER">Creare disc virtual criptat într-un fișier. Recomandat pentru utilizatori neexperimentați.</control>
+ <control lang="ro" key="IDT_FORMAT_OPTIONS">Opțiuni</control>
+ <control lang="ro" key="IDT_HASH_ALGO">Algoritm amestecare</control>
+ <control lang="ro" key="IDT_HEADER_KEY">Cheie antet:</control>
+ <control lang="ro" key="IDT_LEFT">Rămase</control>
+ <control lang="ro" key="IDT_MASTER_KEY">Cheie principală: </control>
+ <control lang="ro" key="IDT_MULTI_BOOT">Selectați această opțiune dacă sunt două sau mai multe sisteme de operare instalate în acest computer.\n\nDe exemplu:\n- Windows XP și Windows XP\n- Windows XP și Windows Vista\n- Windows și Mac OS X\n- Windows și Linux\n- Windows, Linux și Mac OS X</control>
+ <control lang="ro" key="IDT_NON_SYS_DEVICE">Criptare partiție non-sistem pe un disc intern sau extern (ex. o unitate USB). Opțional, crează un volum ascuns.</control>
+ <control lang="ro" key="IDT_PARTIAL_POOL_CONTENTS">Conținut sursă curent (parțial)</control>
+ <control lang="ro" key="IDT_PASS">Salt</control>
+ <control lang="ro" key="IDT_PASSWORD">Parola:</control>
+ <control lang="ro" key="IDT_PIM">MIP volum:</control>
+ <control lang="ro" key="IDT_OLD_PIM">MIP volum:</control>
+ <control lang="ro" key="IDT_PROGRESS">Progres:</control>
+ <control lang="ro" key="IDT_RANDOM_POOL">Sursă aleatoare: </control>
+ <control lang="ro" key="IDT_SINGLE_BOOT">Selectați această opțiune dacă există un singur sistem de operare instalat în calculator (chiar dacă are mai mulți utilizatori).</control>
+ <control lang="ro" key="IDT_SPEED">Viteză</control>
+ <control lang="ro" key="IDT_STATUS">Stare</control>
+ <control lang="ro" key="IDT_SYSENC_KEYS_GEN_INFO">Cheile, sarea și alte date au fost generate cu succes. Dacă doriți să generați chei noi, dați clic pe Înapoi și apoi pe Înainte. Altfel, dați clic pe Înainte pentru a continua.</control>
+ <control lang="ro" key="IDT_SYS_DEVICE">Criptare partiție/disc unde este instalat Windows. Oricine va dori să aibe acces și să utilizeze sistemul și fișierele, va trebui să introducă parola corectă de fiecare dată înainte de pornirea sistemului Windows. Opțional, crează un sistem ascuns.</control>
+ <control lang="ro" key="IDT_SYS_PARTITION">Selectați această opțiune pentru a cripta partiția unde este instalat sistemul de operare Windows în acest moment.</control>
+ <control lang="ro" key="IDT_VOLUME_LABEL">Etichetă volum în Windows:</control>
+ <control lang="ro" key="IDT_WIPE_MODE">Mod ștergere:</control>
+ <control lang="ro" key="IDCLOSE">ÃŽnchide</control>
+ <control lang="ro" key="IDC_ALLOW_ESC_PBA_BYPASS">Permitere evitare autentificare înainte de pornire prin apăsarea tastei Esc (activare manager pornire).</control>
+ <control lang="ro" key="IDC_AUTORUN_DISABLE">Fără</control>
+ <control lang="ro" key="IDC_AUTORUN_MOUNT">&amp;Automontare volum VeraCrypt (specificat mai jos)</control>
+ <control lang="ro" key="IDC_AUTORUN_START">&amp;Start VeraCrypt</control>
+ <control lang="ro" key="IDC_AUTO_DETECT_PKCS11_MODULE">Auto&amp;detectare librărie</control>
+ <control lang="ro" key="IDC_BOOT_LOADER_CACHE_PASSWORD">&amp;Păstrare parolă de autentificare la pornire în memoria driverului (pentru montarea volumelor non-sistem)</control>
+ <control lang="ro" key="IDC_BROWSE_DIRS">Răsfoire</control>
+ <control lang="ro" key="IDC_BROWSE_FILES">Răsfoire</control>
+ <control lang="ro" key="IDC_CACHE">Păstrare parolă și fișiere-chei&amp;e în memorie</control>
+ <control lang="ro" key="IDC_CLOSE_BKG_TASK_WHEN_NOVOL">Închidere dacă nu sunt montate volume</control>
+ <control lang="ro" key="IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT">În&amp;chidere sesiune dispozitiv (ieșire) după montarea cu succes a unui volum</control>
+ <control lang="ro" key="IDC_COPY_EXPANDER">Includere extindere volume VeraCrypt</control>
+ <control lang="ro" key="IDC_COPY_WIZARD">Includere asistent creare volum VeraCrypt</control>
+ <control lang="ro" key="IDC_CREATE">Creare</control>
+ <control lang="ro" key="IDC_CREATE_VOLUME">&amp;Creare volum</control>
+ <control lang="ro" key="IDC_DISABLE_BOOT_LOADER_OUTPUT">Nu a&amp;fișa niciun text în ecranul de autentificare (cu excepția textului personalizat de mai jos)</control>
+ <control lang="ro" key="IDC_DISABLE_EVIL_MAID_ATTACK_DETECTION">Dezactivare detectare atac tip "Servitoare rea"</control>
+ <control lang="ro" key="IDC_ENABLE_HARDWARE_ENCRYPTION">Accelerare criptare/decriptare AES prin folosirea instrucțiunilor AES din procesor (dacă există)</control>
+ <control lang="ro" key="IDC_ENABLE_KEYFILES">Folosire fișiere-cheie</control>
+ <control lang="ro" key="IDC_ENABLE_NEW_KEYFILES">Folosire fișiere-cheie</control>
+ <control lang="ro" key="IDC_EXIT">IeÈ™&amp;ire</control>
+ <control lang="ro" key="IDC_FAVORITES_HELP_LINK">Ajutor pentru volume favorite</control>
+ <control lang="ro" key="IDC_FAVORITE_DISABLE_HOTKEY">Nu se montează volumele selectate când se apasă &amp;tasta pentru 'Montare volume favorite'</control>
+ <control lang="ro" key="IDC_FAVORITE_MOUNT_ON_ARRIVAL">Montare volum selectat când discul gazdă este c&amp;onectat</control>
+ <control lang="ro" key="IDC_FAVORITE_MOUNT_ON_LOGON">Montare volum selectat după &amp;autentificare utilizator</control>
+ <control lang="ro" key="IDC_FAVORITE_MOUNT_READONLY">Montare volum selectat ca doar&amp;-citire</control>
+ <control lang="ro" key="IDC_FAVORITE_MOUNT_REMOVABLE">Montare volum selectat ca mediu &amp;portabil</control>
+ <control lang="ro" key="IDC_FAVORITE_MOVE_DOWN">&amp;Coborâre</control>
+ <control lang="ro" key="IDC_FAVORITE_MOVE_UP">&amp;Urcare</control>
+ <control lang="ro" key="IDC_FAVORITE_OPEN_EXPLORER_WIN_ON_MOUNT">Deschide fereastra &amp;Explorer pentru volumul selectat când este montat cu succes</control>
+ <control lang="ro" key="IDC_FAVORITE_REMOVE">&amp;Eliminare</control>
+ <control lang="ro" key="IDC_FAVORITE_USE_LABEL_IN_EXPLORER">Folosire etichetă favorită ca etichetă în Explorer</control>
+ <control lang="ro" key="IDC_FAV_VOL_OPTIONS_GLOBAL_SETTINGS_BOX">Setări globare</control>
+ <control lang="ro" key="IDC_HK_DISMOUNT_BALLOON_TOOLTIP">Afișare texte de informare după demontarea cu succes din taste-rapide</control>
+ <control lang="ro" key="IDC_HK_DISMOUNT_PLAY_SOUND">Redare sunet notificare sistem după demontarea cu succes din taste-rapide</control>
+ <control lang="ro" key="IDC_HK_MOD_ALT">Alt</control>
+ <control lang="ro" key="IDC_HK_MOD_CTRL">Ctrl</control>
+ <control lang="ro" key="IDC_HK_MOD_SHIFT">Shift</control>
+ <control lang="ro" key="IDC_HK_MOD_WIN">Win</control>
+ <control lang="ro" key="IDC_HOTKEY_ASSIGN">Atribuire</control>
+ <control lang="ro" key="IDC_HOTKEY_REMOVE">Eliminare</control>
+ <control lang="ro" key="IDC_KEYFILES">Fișiere-cheie</control>
+ <control lang="ro" key="IDC_LIMIT_ENC_THREAD_POOL">Nu utiliza următorul număr de procesoare pentru criptare/decriptare:</control>
+ <control lang="ro" key="IDC_MORE_INFO_ON_HW_ACCELERATION">Informatii suplimentare</control>
+ <control lang="ro" key="IDC_MORE_INFO_ON_THREAD_BASED_PARALLELIZATION">Informatii suplimentare</control>
+ <control lang="ro" key="IDC_MORE_SETTINGS">Setări suplimentare</control>
+ <control lang="ro" key="IDC_MOUNTALL">&amp;Automontare toate</control>
+ <control lang="ro" key="IDC_MOUNT_OPTIONS">Opți&amp;uni montare</control>
+ <control lang="ro" key="IDC_MOUNT_READONLY">Montare volum ca doar-&amp;citire</control>
+ <control lang="ro" key="IDC_NEW_KEYFILES">Fișiere-cheie</control>
+ <control lang="ro" key="IDC_OLD_PIM_HELP">(Nimic sau 0 pentru iterații implicite)</control>
+ <control lang="ro" key="IDC_PIM_HELP">(Nimic sau 0 pentru iterații implicite)</control>
+ <control lang="ro" key="IDC_PREF_BKG_TASK_ENABLE">Activat</control>
+ <control lang="ro" key="IDC_PREF_CACHE_PASSWORDS">Păstrare parolă în memorie</control>
+ <control lang="ro" key="IDC_PREF_DISMOUNT_INACTIVE">Autodemontare volum dacă nu s-au citit/scris date de pe el timp de</control>
+ <control lang="ro" key="IDC_PREF_DISMOUNT_LOGOFF">Deautentificare utilizator</control>
+ <control lang="ro" key="IDC_PREF_DISMOUNT_SESSION_LOCKED">Blocare sesiune utilizator</control>
+ <control lang="ro" key="IDC_PREF_DISMOUNT_POWERSAVING">Intrare în mod salvare energie</control>
+ <control lang="ro" key="IDC_PREF_DISMOUNT_SCREENSAVER">Screen saver pornit</control>
+ <control lang="ro" key="IDC_PREF_FORCE_AUTO_DISMOUNT">Forțare autodemontare chiar dacă volumul conține fișiere sau foldere deschise</control>
+ <control lang="ro" key="IDC_PREF_LOGON_MOUNT_DEVICES">Montare toate volumele VeraCrypt amplasate în unități</control>
+ <control lang="ro" key="IDC_PREF_LOGON_START">Pornire VeraCrypt în fundal</control>
+ <control lang="ro" key="IDC_PREF_MOUNT_READONLY">Montare volume numai ca citire</control>
+ <control lang="ro" key="IDC_PREF_MOUNT_REMOVABLE">Montare volume ca unități detașabile</control>
+ <control lang="ro" key="IDC_PREF_OPEN_EXPLORER">Deschidere fereastră Explorer pentru volumele montate cu succes</control>
+ <control lang="ro" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Păstrare temporară parole în timpul operațiilor de "Montare volume favorite"</control>
+ <control lang="ro" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Folosire pictogramă diferită în zona sistem când există volume montate</control>
+ <control lang="ro" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Eliminare parole păstrate după autodemontare</control>
+ <control lang="ro" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Eliminare parole păstrate la ieșire</control>
+ <control lang="ro" key="IDC_PRESERVE_TIMESTAMPS">Păstrare dată modificare fișiere container</control>
+ <control lang="ro" key="IDC_RESET_HOTKEYS">Resetare</control>
+ <control lang="ro" key="IDC_SELECT_DEVICE">Selectare &amp;unitate</control>
+ <control lang="ro" key="IDC_SELECT_FILE">Selectare &amp;fișier</control>
+ <control lang="ro" key="IDC_SELECT_PKCS11_MODULE">Selectare &amp;librărie</control>
+ <control lang="ro" key="IDC_SHOW_PASSWORD_CHPWD_NEW">Afișare parolă</control>
+ <control lang="ro" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Afișare parolă</control>
+ <control lang="ro" key="IDC_TRAVEL_OPEN_EXPLORER">Deschidere fereastră &amp;Explorer la volumul montat</control>
+ <control lang="ro" key="IDC_TRAV_CACHE_PASSWORDS">&amp;Păstrare parolă în memorie</control>
+ <control lang="ro" key="IDC_TRUECRYPT_MODE">Mod TrueCrypt</control>
+ <control lang="ro" key="IDC_UNMOUNTALL">De&amp;montare toate</control>
+ <control lang="ro" key="IDC_VOLUME_PROPERTIES">Proprietăți &amp;volum</control>
+ <control lang="ro" key="IDC_VOLUME_TOOLS">&amp;Unelte volum</control>
+ <control lang="ro" key="IDC_WIPE_CACHE">&amp;Golire memorie</control>
+ <control lang="ro" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Parametri montare</control>
+ <control lang="ro" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Volume favorite</control>
+ <control lang="ro" key="IDD_HOTKEYS_DLG">VeraCrypt - taste rapide la nivel de sistem</control>
+ <control lang="ro" key="IDD_MOUNT_DLG">VeraCrypt</control>
+ <control lang="ro" key="IDD_PASSWORDCHANGE_DLG">Schimbare parolă sau fișiere-cheie</control>
+ <control lang="ro" key="IDD_PASSWORD_DLG">Introduceți parola volumului VeraCrypt</control>
+ <control lang="ro" key="IDD_PERFORMANCE_SETTINGS">VeraCrypt - Opțiuni performanță și driver</control>
+ <control lang="ro" key="IDD_PREFERENCES_DLG">VeraCrypt - Preferițe</control>
+ <control lang="ro" key="IDD_SYSENC_SETTINGS">VeraCrypt - Setări criptare sistem</control>
+ <control lang="ro" key="IDD_TOKEN_PREFERENCES">VeraCrypt - Preferințe dispozitiv de securitate</control>
+ <control lang="ro" key="IDD_TRAVELER_DLG">Setare disc portabil VeraCrypt</control>
+ <control lang="ro" key="IDD_VOLUME_PROPERTIES">Proprietăți volum VeraCrypt</control>
+ <control lang="ro" key="IDM_ABOUT">Despre</control>
+ <control lang="ro" key="IDM_ADD_REMOVE_VOL_KEYFILES">Adăugare/Eliminare fișiere-cheie la/de la volum</control>
+ <control lang="ro" key="IDM_ADD_VOLUME_TO_FAVORITES">Adăugare volum montat la favorite</control>
+ <control lang="ro" key="IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES">Adăugare volum montat la favorite sistem</control>
+ <control lang="ro" key="IDM_ANALYZE_SYSTEM_CRASH">Analizare cădere sistem</control>
+ <control lang="ro" key="IDM_BACKUP_VOL_HEADER">Copie de siguranță antet volum</control>
+ <control lang="ro" key="IDM_BENCHMARK">Evaluare</control>
+ <control lang="ro" key="IDM_CHANGE_HEADER_KEY_DERIV_ALGO">Setare algoritm cheie derivare antet</control>
+ <control lang="ro" key="IDM_CHANGE_PASSWORD">Schimbare parolă volum</control>
+ <control lang="ro" key="IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO">Setare algoritm cheie derivare antet</control>
+ <control lang="ro" key="IDM_CHANGE_SYS_PASSWORD">Schimbare parolă</control>
+ <control lang="ro" key="IDM_CLEAR_HISTORY">Golire istoric volum</control>
+ <control lang="ro" key="IDM_CLOSE_ALL_TOKEN_SESSIONS">ÃŽnchidere toate sesiunile dispozitivului de securizate</control>
+ <control lang="ro" key="IDM_CONTACT">Contact</control>
+ <control lang="ro" key="IDM_CREATE_HIDDEN_OS">Creare sistem de operare ascuns</control>
+ <control lang="ro" key="IDM_CREATE_RESCUE_DISK">Creare disc de recuperare</control>
+ <control lang="ro" key="IDM_CREATE_VOLUME">Creare volum nou</control>
+ <control lang="ro" key="IDM_DECRYPT_NONSYS_VOL">Decriptare permanentă...</control>
+ <control lang="ro" key="IDM_DEFAULT_KEYFILES">Fișiere-cheie implicite</control>
+ <control lang="ro" key="IDM_DEFAULT_MOUNT_PARAMETERS">Parametri montare impliciţi...</control>
+ <control lang="ro" key="IDM_DONATE">Donație</control>
+ <control lang="ro" key="IDM_ENCRYPT_SYSTEM_DEVICE">Criptare partiție/disc sistem</control>
+ <control lang="ro" key="IDM_FAQ">Întrebări puse frevent</control>
+ <control lang="ro" key="IDM_HELP">Ghid de utilizare</control>
+ <control lang="ro" key="IDM_HOMEPAGE">&amp;Pagina web</control>
+ <control lang="ro" key="IDM_HOTKEY_SETTINGS">Taste rapide</control>
+ <control lang="ro" key="IDM_KEYFILE_GENERATOR">Generator fișiere-cheie</control>
+ <control lang="ro" key="IDM_LANGUAGE">Limba</control>
+ <control lang="ro" key="IDM_LICENSE">Mențiuni legale</control>
+ <control lang="ro" key="IDM_MANAGE_TOKEN_KEYFILES">Gestionare fișiere-cheie dispozitiv de securitate</control>
+ <control lang="ro" key="IDM_MOUNTALL">Automontare toate volumele amplasate de disc</control>
+ <control lang="ro" key="IDM_MOUNT_FAVORITE_VOLUMES">Montare volume favorite</control>
+ <control lang="ro" key="IDM_MOUNT_SYSENC_PART_WITHOUT_PBA">Montare fără &amp;autentificare la pornire</control>
+ <control lang="ro" key="IDM_MOUNT_VOLUME">Montare volum</control>
+ <control lang="ro" key="IDM_MOUNT_VOLUME_OPTIONS">Montare volum cu opțiuni</control>
+ <control lang="ro" key="IDM_NEWS">Știri</control>
+ <control lang="ro" key="IDM_ONLINE_HELP">Ajutor online</control>
+ <control lang="ro" key="IDM_ONLINE_TUTORIAL">Turorial începători</control>
+ <control lang="ro" key="IDM_ORGANIZE_FAVORITES">Organizare volume favorite</control>
+ <control lang="ro" key="IDM_ORGANIZE_SYSTEM_FAVORITES">Organizare volume sistem favorite</control>
+ <control lang="ro" key="IDM_PERFORMANCE_SETTINGS">Performanță/Configurare driver</control>
+ <control lang="ro" key="IDM_PERMANENTLY_DECRYPT_SYS">Decriptare permanentă partiție/disc sistem</control>
+ <control lang="ro" key="IDM_PREFERENCES">Preferințe</control>
+ <control lang="ro" key="IDM_REFRESH_DRIVE_LETTERS">Actualizare litere unități</control>
+ <control lang="ro" key="IDM_REMOVE_ALL_KEYFILES_FROM_VOL">Eliminare toate fișierele-cheie din volum</control>
+ <control lang="ro" key="IDM_RESTORE_VOL_HEADER">Restaurare antet volum</control>
+ <control lang="ro" key="IDM_RESUME_INTERRUPTED_PROC">Reluare proces întrerupt</control>
+ <control lang="ro" key="IDM_SELECT_DEVICE">Selectare partiție/disc</control>
+ <control lang="ro" key="IDM_SELECT_FILE">Selectare fișier</control>
+ <control lang="ro" key="IDM_SYSENC_RESUME">Reluare proces întrerupt</control>
+ <control lang="ro" key="IDM_SYSENC_SETTINGS">Criptare sistem</control>
+ <control lang="ro" key="IDM_SYSTEM_ENCRYPTION_STATUS">Proprietăți</control>
+ <control lang="ro" key="IDM_SYS_ENC_SETTINGS">Setări</control>
+ <control lang="ro" key="IDM_SYS_FAVORITES_SETTINGS">Volume sistem favorite</control>
+ <control lang="ro" key="IDM_TC_DOWNLOADS">Descărcări</control>
+ <control lang="ro" key="IDM_TEST_VECTORS">Testare vectori</control>
+ <control lang="ro" key="IDM_TOKEN_PREFERENCES">Dispozitive de securitate</control>
+ <control lang="ro" key="IDM_TRAVELER">Setare disc portabil</control>
+ <control lang="ro" key="IDM_UNMOUNTALL">Demontare toate volumele</control>
+ <control lang="ro" key="IDM_UNMOUNT_VOLUME">Demontare volum</control>
+ <control lang="ro" key="IDM_VERIFY_RESCUE_DISK">Verificare disc de recuperare</control>
+ <control lang="ro" key="IDM_VERIFY_RESCUE_DISK_ISO">Verificare imagine disc de recuperare</control>
+ <control lang="ro" key="IDM_VERSION_HISTORY">Istoric versiuni</control>
+ <control lang="ro" key="IDM_VOLUME_EXPANDER">Extindere volum</control>
+ <control lang="ro" key="IDM_VOLUME_PROPERTIES">Proprietăți volum</control>
+ <control lang="ro" key="IDM_VOLUME_WIZARD">Asistent creare volum</control>
+ <control lang="ro" key="IDM_WEBSITE">Website VeraCrypt</control>
+ <control lang="ro" key="IDM_WIPE_CACHE">Eliminare parole memorate</control>
+ <control lang="ro" key="IDOK">OK</control>
+ <control lang="ro" key="IDT_ACCELERATION_OPTIONS">Accelerare hardware</control>
+ <control lang="ro" key="IDT_ASSIGN_HOTKEY">Scurtătură</control>
+ <control lang="ro" key="IDT_AUTORUN">Configurare autolansare(autorun.inf)</control>
+ <control lang="ro" key="IDT_AUTO_DISMOUNT">Autodemontare</control>
+ <control lang="ro" key="IDT_AUTO_DISMOUNT_ON">Demontare toate când:</control>
+ <control lang="ro" key="IDT_BOOT_LOADER_SCREEN_OPTIONS">Opțiuni ecran pornire sistem</control>
+ <control lang="ro" key="IDT_CONFIRM_PASSWORD">Confirmare parolă:</control>
+ <control lang="ro" key="IDT_CURRENT">Curent</control>
+ <control lang="ro" key="IDT_CUSTOM_BOOT_LOADER_MESSAGE">Afișează acest mesaj în ecranul de autentificare la pornire sistem (maxim 24 charactere):</control>
+ <control lang="ro" key="IDT_DEFAULT_MOUNT_OPTIONS">Opțiuni montare implicite</control>
+ <control lang="ro" key="IDT_DISMOUNT_ACTION">Opțiuni taste rapide</control>
+ <control lang="ro" key="IDT_DRIVER_OPTIONS">Configurare driver</control>
+ <control lang="ro" key="IDC_ENABLE_EXTENDED_IOCTL_SUPPORT">Activare suport extins coduri de control disc</control>
+ <control lang="ro" key="IDT_FAVORITE_LABEL">Etichetă volum favorit selectat:</control>
+ <control lang="ro" key="IDT_FILE_SETTINGS">Setări fișier</control>
+ <control lang="ro" key="IDT_HOTKEY_KEY">Atribuire tastă:</control>
+ <control lang="ro" key="IDT_HW_AES_SUPPORTED_BY_CPU">Procesorul (CPU) acestui computer suportă accelerare hardware pentru AES:</control>
+ <control lang="ro" key="IDT_LOGON">Acțiuni de executat după intrarea în Windows</control>
+ <control lang="ro" key="IDT_MINUTES">minute</control>
+ <control lang="ro" key="IDT_MOUNT_LETTER">Montare volum cu litera unității:</control>
+ <control lang="ro" key="IDT_MOUNT_SETTINGS">Setări montare</control>
+ <control lang="ro" key="IDT_NEW">Nou</control>
+ <control lang="ro" key="IDT_NEW_PASSWORD">Parola:</control>
+ <control lang="ro" key="IDT_PARALLELIZATION_OPTIONS">Paralelizare bazată pe fire de execuție (Hyper-Threading)</control>
+ <control lang="ro" key="IDT_PKCS11_LIB_PATH">Cale librărie PKCS #11</control>
+ <control lang="ro" key="IDT_PKCS5_PRF">PKCS-5 PRF:</control>
+ <control lang="ro" key="IDT_NEW_PKCS5_PRF">PKCS-5 PRF:</control>
+ <control lang="ro" key="IDT_PW_CACHE_OPTIONS">Păstrare parolă</control>
+ <control lang="ro" key="IDT_SECURITY_OPTIONS">Opțiuni securitate</control>
+ <control lang="ro" key="IDT_TASKBAR_ICON">Program VeraCrypt în fundal</control>
+ <control lang="ro" key="IDT_TRAVELER_MOUNT">Volum VeraCrypt de montat (relativ la rădăcina discului portabil):</control>
+ <control lang="ro" key="IDT_TRAVEL_INSERTION">După inserarea discului portabil:</control>
+ <control lang="ro" key="IDT_TRAVEL_ROOT">Creare fișiere disc portabil la (folder rădăcină disc portabil):</control>
+ <control lang="ro" key="IDT_VOLUME">Volum</control>
+ <control lang="ro" key="IDT_WINDOWS_RELATED_SETTING">Windows</control>
+ <control lang="ro" key="IDC_ADD_KEYFILE_PATH">Adăugare &amp;cale</control>
+ <control lang="ro" key="IDC_AUTO">&amp;Autotestare toate</control>
+ <control lang="ro" key="IDC_CONTINUE">&amp;Continuare</control>
+ <control lang="ro" key="IDC_DECRYPT">&amp;Decriptare</control>
+ <control lang="ro" key="IDC_DELETE">Șter&amp;gere</control>
+ <control lang="ro" key="IDC_ENCRYPT">Criptar&amp;e</control>
+ <control lang="ro" key="IDC_EXPORT">&amp;Exportare</control>
+ <control lang="ro" key="IDC_GENERATE_AND_SAVE_KEYFILE">Generare și salvare fișier-cheie</control>
+ <control lang="ro" key="IDC_GENERATE_KEYFILE">&amp;Generare fișier-cheie aleator</control>
+ <control lang="ro" key="IDC_GET_LANG_PACKS">Descărcare pachet lingvistic</control>
+ <control lang="ro" key="IDC_HW_AES_LABEL_LINK">Accelerere hardware AES:</control>
+ <control lang="ro" key="IDC_IMPORT_KEYFILE">&amp;Importare fișier-cheie în dispozitivul de securitate</control>
+ <control lang="ro" key="IDC_KEYADD">Adăugare &amp;fișiere</control>
+ <control lang="ro" key="IDC_KEYFILES_ENABLE_HIDVOL_PROT">&amp;Utilizare fișiere-cheie</control>
+ <control lang="ro" key="IDC_KEYFILES_HIDVOL_PROT">&amp;Fișiere-cheie</control>
+ <control lang="ro" key="IDC_KEYREMOVE">&amp;Eliminare</control>
+ <control lang="ro" key="IDC_KEYREMOVEALL">Eliminare &amp;toate</control>
+ <control lang="ro" key="IDC_LINK_HIDVOL_PROTECTION_INFO">Ce este protectia volumului ascuns ?</control>
+ <control lang="ro" key="IDC_LINK_KEYFILES_INFO">Mai multe despre fisiere-cheie</control>
+ <control lang="ro" key="IDC_MOUNT_REMOVABLE">Montare volum ca unitare &amp;portabilă</control>
+ <control lang="ro" key="IDC_MOUNT_SYSENC_PART_WITHOUT_PBA">Montare partiție &amp;utilizând criptarea sistemului fără autentificare la pornire</control>
+ <control lang="ro" key="IDC_PARALLELIZATION_LABEL_LINK">Paralelizare:</control>
+ <control lang="ro" key="IDC_PERFORM_BENCHMARK">Evaluare</control>
+ <control lang="ro" key="IDC_PRINT">Ti&amp;părire</control>
+ <control lang="ro" key="IDC_PROTECT_HIDDEN_VOL">&amp;Protejare volum ascuns împotriva distrugerilor cauzate de scrierea pe volumul exterior</control>
+ <control lang="ro" key="IDC_RESET">&amp;Resetare</control>
+ <control lang="ro" key="IDC_SHOW_PASSWORD_MO">&amp;Afișare parolă</control>
+ <control lang="ro" key="IDC_TOKEN_FILES_ADD">Adaugă &amp;dispozitiv</control>
+ <control lang="ro" key="IDC_USE_EMBEDDED_HEADER_BAK">Utilizare antet de siguranță inclus în &amp;volum dacă există</control>
+ <control lang="ro" key="IDC_XTS_MODE_ENABLED">Mod XTS</control>
+ <control lang="ro" key="IDD_ABOUT_DLG">Despre VeraCrypt</control>
+ <control lang="ro" key="IDD_BENCHMARK_DLG">VeraCrypt - Evaluare algoritmi</control>
+ <control lang="ro" key="IDD_CIPHER_TEST_DLG">VeraCrypt - Testare vectori</control>
+ <control lang="ro" key="IDD_COMMANDHELP_DLG">Ajutor linie de comandă</control>
+ <control lang="ro" key="IDD_KEYFILES">VeraCrypt - Fișiere-cheie</control>
+ <control lang="ro" key="IDD_KEYFILE_GENERATOR">VeraCrypt - Generator fișiere-cheie</control>
+ <control lang="ro" key="IDD_LANGUAGE">VeraCrypt - Limba</control>
+ <control lang="ro" key="IDD_MOUNT_OPTIONS">VeraCrypt - Opțiuni montare</control>
+ <control lang="ro" key="IDD_NEW_TOKEN_KEYFILE">Proprietăți fișier-cheie dispozitiv securitate</control>
+ <control lang="ro" key="IDD_RANDOM_POOL_ENRICHMENT">VeraCrypt - Îmbogățire sursă aleatoare</control>
+ <control lang="ro" key="IDD_RAWDEVICES_DLG">Selectați o partiție sau un disc</control>
+ <control lang="ro" key="IDD_STATIC_MODELESS_WAIT_DLG">VeraCrypt</control>
+ <control lang="ro" key="IDD_TOKEN_KEYFILES">Fișiere-cheie dispozitiv securitate</control>
+ <control lang="ro" key="IDD_TOKEN_PASSWORD">Parolă/PIN dispozitiv securitate solicitat</control>
+ <control lang="ro" key="IDT_ACTIVE_LANG_PACK">Pachet lingvistic activ</control>
+ <control lang="ro" key="IDT_BOX_BENCHMARK_INFO">Viteza este afectată de încărcarea procesorului și de caracteristicile unității de stocare.\n\nAceste teste au loc în memoria RAM.</control>
+ <control lang="ro" key="IDT_BUFFER_SIZE">Mărime tampon:</control>
+ <control lang="ro" key="IDT_CIPHER">Cifru:</control>
+ <control lang="ro" key="IDT_HIDDEN_PROT_PASSWD">P&amp;arolă volum ascuns:\n(implicit e cea memorată)</control>
+ <control lang="ro" key="IDT_HIDDEN_VOL_PROTECTION">Protecție volum ascuns</control>
+ <control lang="ro" key="IDT_KEY">Mărime cheie:</control>
+ <control lang="ro" key="IDT_KEYFILE_GENERATOR_NOTE">IMPORTANT: Mișcați cursorul cât mai aleator posibil în această fereastră. Cu cât îl mișcați mai mult, cu atât mai bine. Această mărește semnificativ puterea criptografică a fișierului cheie.</control>
+ <control lang="ro" key="IDT_KEYFILE_WARNING">ATENȚIONARE:\nDacă pierdeți un fișier-cheie sau orice bit din primii 1024 kiloocteți este modificat, va fi imposibil de montat volumul care utilizează acel fișier-cheie!</control>
+ <control lang="ro" key="IDT_KEY_UNIT">biți</control>
+ <control lang="ro" key="IDT_NUMBER_KEYFILES">Număr fișiere-cheie:</control>
+ <control lang="ro" key="IDT_KEYFILES_SIZE">Mărime (în octeți):</control>
+ <control lang="ro" key="IDT_KEYFILES_BASE_NAME">Nume de bază fișiere-cheie:</control>
+ <control lang="ro" key="IDT_LANGPACK_AUTHORS">Tradus de:</control>
+ <control lang="ro" key="IDT_PLAINTEXT">Mărime text simplu:</control>
+ <control lang="ro" key="IDT_PLAINTEXT_SIZE_UNIT">biți</control>
+ <control lang="ro" key="IDT_POOL_CONTENTS">Conținut curent sursă</control>
+ <control lang="ro" key="IDT_PRF">Amestecare PRF:</control>
+ <control lang="ro" key="IDT_RANDOM_POOL_ENRICHMENT_NOTE">IMPORTANT: Mișcați cursorul cât mai aleator posibil în această fereastră. Cu cât îl mișcați mai mult, cu atât mai bine. Aceasta mărește semnificativ securitatea. Când ați terminat, dați clic pe 'Continuare'.</control>
+ <control lang="ro" key="IDT_SECONDARY_KEY">Cheie secundară (hexazecimal)</control>
+ <control lang="ro" key="IDT_SECURITY_TOKEN">Dispozitiv securitate:</control>
+ <control lang="ro" key="IDT_SORT_METHOD">Metodă sortare:</control>
+ <control lang="ro" key="IDT_STATIC_MODELESS_WAIT_DLG_INFO">Așteptați. Acest proces poate dura mai mult.</control>
+ <control lang="ro" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Așteptați...\nAcest proces poate dura mai mult și VeraCrypt poate să nu răspundă.</control>
+ <control lang="ro" key="IDT_TEST_BLOCK_NUMBER">Număr bloc:</control>
+ <control lang="ro" key="IDT_TEST_CIPHERTEXT">Text cifrat (hexazecimal)</control>
+ <control lang="ro" key="IDT_TEST_DATA_UNIT_NUMBER">Număr unitate date (64-biți hexazecimal, mărime unitate date de 512 octeți)</control>
+ <control lang="ro" key="IDT_TEST_KEY">Cheie (hexazecimal)</control>
+ <control lang="ro" key="IDT_TEST_PLAINTEXT">Text simplu (hexazecimal)</control>
+ <control lang="ro" key="IDT_TOKEN_KEYFILE_NAME">Nume fișier-cheie:</control>
+ <control lang="ro" key="IDT_XTS_MODE">Mod XTS</control>
+ <control lang="ro" key="MENU_SYSTEM_ENCRYPTION">Si&amp;stem</control>
+ <control lang="ro" key="MENU_VOLUMES">&amp;Volume</control>
+ <control lang="ro" key="MENU_FAVORITES">Favor&amp;ite</control>
+ <control lang="ro" key="MENU_TOOLS">&amp;Unelte</control>
+ <control lang="ro" key="MENU_SETTINGS">Setă&amp;ri</control>
+ <control lang="ro" key="MENU_HELP">&amp;Ajutor</control>
+ <control lang="ro" key="MENU_WEBSITE"> &amp;Pagina web </control>
+ <!-- Strings -->
+ <string lang="ro" key="ABOUTBOX">&amp;Despre</string>
+ <string lang="ro" key="ACCESSMODEFAIL">Atributul doar-citire al vechiului volum nu a putut fi modificat. Verificați permisiunile de acces a fișierului.</string>
+ <string lang="ro" key="ACCESS_DENIED">Eroare: Acces refuzat.\n\nPartiția pe care doriți să o accesați fie are 0 sectoare lungime, fie este discul de pornire al sistemului.</string>
+ <string lang="ro" key="ADMINISTRATOR">Administrator</string>
+ <string lang="ro" key="ADMIN_PRIVILEGES_DRIVER">Pentru a putea încărca driver-ul VeraCrypt, trebuie să fiți autentificat într-un cont cu drepturi de administrator.</string>
+ <string lang="ro" key="ADMIN_PRIVILEGES_WARN_DEVICES">Țineți cont că pentru a cripta/formata o partiție/disc trebuie să fiți autentificat într-un cont cu drepturi de administrator.\n\nAceasta nu se aplică la volumele amplasate în fișiere.</string>
+ <string lang="ro" key="ADMIN_PRIVILEGES_WARN_HIDVOL">Pentru a putea crea un volum ascuns trebuie să fiți autentificat într-un cont cu drepturi de administrator.\n\nContinuați?</string>
+ <string lang="ro" key="ADMIN_PRIVILEGES_WARN_NTFS">Țineți cont că pentru a formata volumul ca NTFS/exFAT trebuie să fiți autentificat într-un cont cu drepturi de administrator.\n\nFără drepturi de administrator, puteți formata volumul ca FAT.</string>
+ <string lang="ro" key="AES_HELP">FIPS-cifru aprobat (Rijndael, publicat în 1998) care poate fi folosit de departamentele și agențiile guvernamentale ale SUA pentru a proteja informațiile clasificate până la nivelul Top Secret. Cheie 256-biți, bloc 128-biți, 14 runde (AES-256). Modul de operare este XTS.</string>
+ <string lang="ro" key="ALREADY_MOUNTED">Volumul este deja montat.</string>
+ <string lang="ro" key="ERR_SELF_TESTS_FAILED">ATENȚIE: Cel puțin un algoritm de criptare sau amestecare a eșuat la testul automat intern!\n\nInstalarea VeraCrypt este coruptă.</string>
+ <string lang="ro" key="ERR_NOT_ENOUGH_RANDOM_DATA">ATENȚIE: Nu sunt suficiente date în sursa Generatorului de numere aleatoare pentru a oferi cantitatea solicitată de date aleatoare.\n\nNu ar trebui să continuați. Vă rugăm selectați 'Raportează o eroare' din meniul Ajutor și raportați această eroare.</string>
+ <string lang="ro" key="ERR_HARDWARE_ERROR">Discul este defect (există un defect fizic pe ea) sau cablul este defect sau memoria nu este stabilă.\n\nȚineți cont că aceasta este o problemă cu hardware-ul dvs., nu cu VeraCrypt. Deci, vă rugăm să NU raportați aceasta ca o eroare/problemă în VeraCrypt și vă rugăm să NU solicitați ajutor privind aceasta în forumul VeraCrypt. Vă rugăm contactați echipa de suport a furnizorului dvs. hardware pentru asistență. Vă mulțumim.\n\nNotă: Dacă eroarea apare în mod repetat în același loc, este foarte posibil să fie cauzată de un bloc defect pe disc, care s-ar putea corecta cu ajutorul unor programe specializate (țineți cont că, în multe cazuri, comanda 'chkdsk /r' nu le poate corecta deoarece funcționează doar la nivelul sistemului de fișiere; în unele cazuri, funcția 'chkdsk' nici măcar nu le detectează).</string>
+ <string lang="ro" key="DEVICE_NOT_READY_ERROR">Dacă accesați un disc de pe un suport portabil, asigurați-vă că acesta este introdus în calculator. Discul/mediul poate fi defect (ar putea exista un defect fizic pe el) sau un cablu ar putea fi defect/deconectat.</string>
+ <string lang="ro" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Sistemul dvs. pare să utilizeze drivere modificate de cipset care conțin o eroare ce împiedică criptarea întregii unități sistem.\n\nVă rugăm să încercați să actualizați sau să dezinstalați orice drivere de cipset modificate (non-Microsoft) înainte de a continua. Dacă aceasta nu ajută, încercați să criptați doar partiția sistem.</string>
+ <string lang="ro" key="BAD_DRIVE_LETTER">Literă volum nevalidă.</string>
+ <string lang="ro" key="INVALID_PATH">Cale nevalidă.</string>
+ <string lang="ro" key="CANCEL">Anulare</string>
+ <string lang="ro" key="CANNOT_CALC_SPACE">Nu se poate accesa discul. Asigurați-vă că discul selectat există și nu este folosit de sistem.</string>
+ <string lang="ro" key="CAPSLOCK_ON">Avertizare: Tasta Caps Lock e activă. Aceasta ar putea determina introducerea unei parole incorecte.</string>
+ <string lang="ro" key="VOLUME_TYPE_TITLE">Tip volum</string>
+ <string lang="ro" key="HIDDEN_VOLUME_TYPE_HELP">S-ar putea întâmpla să fiți forțat de către cineva să dezvăluiți parola unui volum criptat. Există multe situații când nu puteți refuza dezvăluirea parolei (de exemplu, prin extorcare). Utilizarea unui așa-zis volum ascuns vă permite să rezolvați astfel de situații fără a dezvălui parola volumului dvs.</string>
+ <string lang="ro" key="NORMAL_VOLUME_TYPE_HELP">Selectați această opțiune dacă doriți să creați un volum normal VeraCrypt.</string>
+ <string lang="ro" key="HIDDEN_OS_PRECLUDES_SINGLE_KEY_WDE">Țineți cont că dacă doriți să instalați un sistem de operare pe un volum de pe o partiție ascunsă, atunci întregul disc sistem nu poate fi criptat folosind o singură cheie.</string>
+ <string lang="ro" key="CIPHER_HIDVOL_HOST_TITLE">Opțiuni criptare volum exterior</string>
+ <string lang="ro" key="CIPHER_HIDVOL_TITLE">Opțiuni criptare volum ascuns</string>
+ <string lang="ro" key="CIPHER_TITLE">Opțiuni criptare</string>
+ <string lang="ro" key="CLEAN_WINMRU_FAILED">AVERTISMENT: Eșuare golire cale spre ultimul volum/fișier-cheie selectat (memorat de selectorul de fișier)!</string>
+ <string lang="ro" key="COMPRESSION_NOT_SUPPORTED">Eroare: Containerul a fost comprimat la nivel de sistem. VeraCrypt nu suportă fișiere container comprimate (oricum compresia datelor criptate este ineficientă și redundantă).\n\nVă rugăm dezactivați compresia pentru container urmând acești pași:\n1) Dați clic-dreapta pe container în Windows Explorer (nu în VeraCrypt).\n2) Selectați 'Properties'.\n3) În caseta de dialog 'Properties', clic pe 'Advanced'.\n4) În caseta de dialog 'Advanced Attributes', dezactivați opțiunea 'Compress contents to save disk space' și clic pe 'OK'.\n5) În caseta de dialog 'Compress contents to save disk space', clic pe 'OK'.</string>
+ <string lang="ro" key="CREATE_FAILED">Eșuare creare volumul %s</string>
+ <string lang="ro" key="DEVICE_FREE_BYTES">Mărimea lui %s este %.2f baiți</string>
+ <string lang="ro" key="DEVICE_FREE_KB">Mărimea lui %s este %.2f KB</string>
+ <string lang="ro" key="DEVICE_FREE_MB">Mărimea lui %s este %.2f MB</string>
+ <string lang="ro" key="DEVICE_FREE_GB">Mărimea lui %s este %.2f GB</string>
+ <string lang="ro" key="DEVICE_FREE_TB">Mărimea lui %s este %.2f TB</string>
+ <string lang="ro" key="DEVICE_FREE_PB">Mărimea lui %s este %.2f PB</string>
+ <string lang="ro" key="DEVICE_IN_USE_FORMAT">AVERTISMENT: Discul/partiția este accesat de către sistemul de operare sau de către aplicații. Formatarea unității/partiției poate determina coruperea datelor și instabilitatea sistemului.\n\nContinuați ?</string>
+ <string lang="ro" key="DEVICE_IN_USE_INPLACE_ENC">Avertisment: Partiția este accesată de către sistemul de operare sau de către aplicații. Ar trebui să închideți orice aplicație care ar putea accesa partiția (inclusiv programele antivirus).\n\nContinuați?</string>
+ <string lang="ro" key="FORMAT_CANT_DISMOUNT_FILESYS">Eroare: Discul/partiția conține un sistem de fișiere care nu a putut fi demontat. Sistemul de fișiere ar putea fi utilizat de către sistemul de operare. Formatarea discului/partiției foarte probabil va putea cauza coruperea datelor și instabilitatea sistemului.\n\nPentru a rezolva această situație, vă recomandăm să ștergeți mai întâi partiția și apoi să o recreați fără formatare. Pentru aceasta, urmați acești pași:\n1) Clic-dreapta pe pictograma 'Computer' (sau 'My Computer') din meniul 'Start' și selectați 'Manage'. Ar trebui să apară fereastra 'Computer Management'.\n2) În fereastra 'Computer Management', selectați 'Storage' > 'Disk Management'.\n3) Clic-dreapta pe partiția pe care doriți să o criptați și selectați fie 'Delete Partition', fie 'Delete Volume', sau 'Delete Logical Drive'.\n4) Clic pe 'Yes'. Dacă sistemul Windows vă solicită să restartați calculatorul, confirmați. Apoi repetați pasul 1 și 2 și continuați de la pasul 5.\n5) Clic-dreapta pe zona cu spațiul nealocat/liber și selectați fie 'New Partition', fie 'New Simple Volume', sau 'New Logical Drive'.\n6) Ar trebui să apară fereastra 'New Partition Wizard' sau 'New Simple Volume Wizard'; urmați instrucțiunile afișate. Pe pagina asistentului intitulată 'Format Partition', selectați fie 'Do not format this partition' fie 'Do not format this volume'. În același asistent, clic pe 'Next' și apoi pe 'Finish'.\n7) De acum calea unității selectate în VeraCrypt s-ar putea să fie greșită. De aceea, ieșiți din Asistentul de creare volum VeraCrypt (dacă încă este activ) și apoi porniți-l din nou.\n8) Încercați să criptați discul/partiția din nou.\n\nDacă VeraCrypt eșuează în mod repetat să cripteze discul/partiția, ați putea lua în considerare crearea unui container de tip fișier în schimb.</string>
+ <string lang="ro" key="INPLACE_ENC_CANT_LOCK_OR_DISMOUNT_FILESYS">Eroare: Fișierul sistem nu poate fi blocat și/sau demontat. S-ar putea să fie accesat de către sistemul de operare sau de către aplicații (de exemplu, programe antivirus). Criptarea partiției ar putea cauza coruperea datelor și instabilitatea sistemului.\n\nVă rugăm închideți orice aplicație care ar putea utiliza sistemul de fișiere (inclusiv programe antivirus) și încercați din nou. Dacă asta nu ajută, vă rugăm urmați pașii de mai jos.</string>
+ <string lang="ro" key="DEVICE_IN_USE_INFO">AVERTISMENT: Unele din partițiile/discurile montate sunt deja accesate!\n\nIgnorând acest lucru poate determina rezultate nedorite inclusiv instabilitatea sistemului.\n\nVă recomandăm cu insistență să închideți orice aplicație care le-ar putea accesa.</string>
+ <string lang="ro" key="DEVICE_PARTITIONS_ERR">Discul selectat conține partiții.\n\nFormatarea discului poate cauza instabilitatea sistemului și/sau coruperea datelor. Vă rugăm fie selectați o partiție de pe disc fie ștergeți toate partițiile de pe disc pentru a permite ca VeraCrypt să-l formateze în siguranță.</string>
+ <string lang="ro" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">Discul non-sistem selectat conține partiții.\n\nVolumele criptate VeraCrypt amplasate pe discuri pot fi create doar pe discuri care nu conțin partiții (inclusiv hard discuri sau unități solid-state). Un disc care conține partiții poate fi criptat în întregime din mers (utilizând o singură cheie principală) numai dacă este discul unde este instalat sistemul Windows și de pe care pornește sistemul.\n\nDacă doriți să criptați discul non-sistem selectat folosind o singură cheie principală, va trebui să eliminați toate partițiile de pe disc mai întâi pentru a permite ca VeraCrypt să-l poată formata în siguranță (formatând un disc care conține partiții poate cauza instabilitatea sistemului și/sau coruperea datelor). Alternativ, puteți cripta fiecare partiție de pe disc individual (fiecare partiție va fi criptată folosind o cheie principală diferită).\n\nNotă: Dacă doriți să ștergeți toate partițiile de pe un disk GPT, ar trebui să-l convertiți într-un disk MBR (folosind de ex. unealta Computer Management) pentru a șterge partițiile ascunse.</string>
+ <string lang="ro" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">Avertisment: Dacă criptați tot discul (spre deosebire de criptarea numai a partiției de pe el), sistemul de operare va considera discul ca nou, gol și neformatat (deoarece nu va conține nici o tabelă de partiții) și s-ar putea să-l inițializeze spontan (sau să vă solicite asta), ceea ce ar distruge volumul. În plus, nu veți putea monta volumul ca favorit în mod regulat (de ex. când numărul unității se modifică) sau să-i atribuiți o etichetă favorită.\n\nPentru a evita asta ar trebui să luați în considerare crearea unei partiții pe disc și să o criptați pe aceasta în schimb.\n\nSunteți sigur că doriți criptarea întregului disc ?</string>
+ <string lang="ro" key="AFTER_FORMAT_DRIVE_LETTER_WARN">IMPORTANT: Țineți cont că acest volum NU poate fi montat/accesat utilizând litera %c:, care este acum atribuită acestuia!\n\nPentru a monta acest volum, clic pe 'Automontare toate' în fereastra principală a VeraCrypt (alternativ, în fereastra principală VeraCrypt, clic pe 'Selectare partiție/disc', apoi selectați această partiție/disc și clic pe 'Montare volum'). Volumul va fi montat cu o literă diferită, pe care o selectați din lista aflată în fereastra principală a VeraCrypt.\n\nLitera unității originală %c: ar trebui folosită numai dacă doriți să eliminați criptarea de pe partiție/disc (de ex. dacă nu mai aveți nevoie de criptare). Într-un astfel de caz, dați clic-dreapta pe litera unității %c: în lista din 'Computer' (sau 'My Computer') și selectați 'Format'. Altfel, litera unității %c: nu ar trebui folosită deloc (doar dacă o eliminați, așa cum e descris în Întrebări puse frecvent din VeraCrypt și să o atribuiți unei alte partiții/unități).</string>
+ <string lang="ro" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Criptarea din mers a unui volum non-sistem nu este suportată în versiunea sistemului de operare curent folosit (este suportată doar în Windows Vista și versiunile ulterioare de Windows).\n\nMotivul este că această versiune de Windows nu suportă reducerea sistemului de fișiere (sistemul de fișiere trebuie redus pentru a face loc pentru antetul volumului și a celui de rezervă).</string>
+ <string lang="ro" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Partiția selectată se pare că nu conține un sistem de fișiere NTFS. Numai partițiile care conțin un sistem de fișiere NTFS pot fi criptate din mers.\n\nNotă: Motivul este că această versiune de Windows nu suportă reducerea altor tipuri de sisteme de fișiere (sistemul de fișiere trebuie redus pentru a face loc pentru antetul volumului și a celui de rezervă).</string>
+ <string lang="ro" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Partiția selectată nu pare să conțină un sistem de fișiere NTFS. Numai partițiile care conțin un sistem de fișiere NTFS pot fi criptate din mers.\n\nDacă doriți să creați un volum criptat VeraCrypt în această partiție, alegeți opțiunea "Crează volum criptat și formatează-l" (în locul opțiunii "Criptare partiție din mers").</string>
+ <string lang="ro" key="PARTITION_TOO_SMALL_FOR_NONSYS_INPLACE_ENC">Eroare: Partiția este prea mică. VeraCrypt nu o poate cripta din mers.</string>
+ <string lang="ro" key="INPLACE_ENC_ALTERNATIVE_STEPS">Pentru a cripta datele de pe această partiție, vă rugăm urmați acești pași:\n\n1) Creați un volum VeraCrypt pe o partiție/disc goală și montați-o.\n\n2) Copiați toate fișiere din partiția pe care ați dorit să o criptați inițial în volumul VercaCrypt montat (care a fost creat și montat la pasul 1). În acest fel, veți crea o copie de rezervă criptată a datelor.\n\n3) Creați un volum VeraCrypt pe partiția pe care ați dorit să o criptați inițial și asigurați-vă că (în asistentul VeraCrypt) alegeți opțiunea "Crează volum criptat și formatează-l" (în locul opțiunii "Criptare partiție din mers"). Țineți cont că toate datele stocate pe partiție vor fi șterse. După ce volunul este creat, montați-l.\n\n4) Copiați toate fișierele de pe volumul copiei de siguranță montat (creat și montat la pasul 1) pe volumul VeraCrypt montat care a fost creat (și montat) la pasul 3.\n\nDupă completarea acestor pași, datele vor fi criptate și, în plus, va exista și o copie de siguranță a datelor.</string>
+ <string lang="ro" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">VeraCrypt poate cripta din mers doar o partiție, un volum dinamic sau un întreg disc sistem.\n\nDacă doriți să creați un volum criptat VeraCrypt pe discul non-sistem selectată, alegeți opțiunea "Crează volum criptat și formatează-l" (în loc de opțiunea "Criptare partiție din mers").</string>
+ <string lang="ro" key="INPLACE_ENC_INVALID_PATH">Eroare: VeraCrypt poate cripta din mers doar o partiție, un volum dinamic sau un disc sistem întreg. Verificați dacă calea specificată este validă.</string>
+ <string lang="ro" key="CANNOT_RESIZE_FILESYS">Eroare: Nu se poare reduce sistemul de fișiere (sistemul de fișiere trebuie redus pentru a face loc pentru antetul volumului și a celui de rezervă).\n\nPosibile cauze și soluții:\n\n- Nu există suficient spațiu liber pe volum. Asigurați-vă că nici o altă aplicație nu scrie în sistemul de fișiere.\n\n- Sistem de fișiere corupt. Verificați-l și reparați eventualele erori (clic-drepta pe litera unității respective în lista din 'Computer', apoi selectați Properties > Tools > 'Check Now', asigurați-vă că opțiunea 'Automatically fix file system errors' este selectată și apoi clic pe Start).\n\nDacă operațiile de mai sus nu ajută, vă rugăm urmați pașii de mai jos.</string>
+ <string lang="ro" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">Eroare: Nu există suficient spațiu liber pe volum astfel încât sistemul de fișiere nu poate fi redus (sistemul de fișiere trebuie redus pentru a face loc pentru antetul volumului și a celui de rezervă).\n\nVă rugăm ștergeți orice fișier inutil și goliți Coșul de gunoi astfel încât să eliberați minim 256 KB de spațiu și apoi încercați din nou. Țineți cont că datorită un probleme ce țin de Windows, spațiul liber raportat de către Windows Explorer poate fi incorect până după restartarea sistemului. Dacă restartarea sistemuluinu ajută, sistemul de fișiere poate fi corupt. Verificați și reparați eventualele erori (clic-drepta pe litera unității respective în lista din 'Computer', apoi selectați Properties > Tools > 'Check Now', asigurați-vă că opțiunea 'Automatically fix file system errors' este selectată și apoi clic pe Start).\n\nDacă operațiile de mai sus nu ajută, vă rugăm urmați pașii de mai jos.</string>
+ <string lang="ro" key="DISK_FREE_BYTES">Spațiul liber pe discul %s este %.2f baiți</string>
+ <string lang="ro" key="DISK_FREE_KB">Spațiul liber pe discul %s este %.2f KB</string>
+ <string lang="ro" key="DISK_FREE_MB">Spațiul liber pe discul %s este %.2f MB</string>
+ <string lang="ro" key="DISK_FREE_GB">Spațiul liber pe discul %s este %.2f GB</string>
+ <string lang="ro" key="DISK_FREE_TB">Spațiul liber pe discul %s este %.2f TB</string>
+ <string lang="ro" key="DISK_FREE_PB">Spațiul liber pe discul %s este %.2f PB</string>
+ <string lang="ro" key="DRIVELETTERS">Nu s-au putut prelua literele de unități disponibile.</string>
+ <string lang="ro" key="DRIVER_NOT_FOUND">Eroare: Driver-ul VeraCrypt nu există.\n\nVă rugăm copiați fișierele 'veracrypt.sys' și 'veracrypt-x64.sys' în folderul unde se află aplicația VeraCrypt (VeraCrypt.exe).</string>
+ <string lang="ro" key="DRIVER_VERSION">Eroare: În acest moment rulează o versiune incompatibilă a driverului VeraCrypt.\n\nDacă încercați să executați VeraCrypt în mod portabil (de ex. fără să-l instalați) și o versiune diferită VeraCrypt este deja instalată, trebuie mai întâi să o dezinstalați (sau să o actualizați folosind program de instalare al VeraCrypt). Pentru a-l dezinstala, executați pașii următori: În Windows Vista sau ulterior, selectați 'Start Menu' > Computer > 'Uninstall or change a program' > VeraCrypt > Uninstall; în Windows XP, selectați 'Start Menu' > Settings > 'Control Panel' > 'Add Or Remove Programs' > VeraCrypt > Remove.\n\nSimilar, dacă încercați să rulați VeraCrypt în mod portabil (de ex. fără să-l instalați) și o versiune diferită VeraCrypt este deja executată în mod portabil, trebuie să restartați mai întâi sistemul și apoi să executați numai această versiune nouă.</string>
+ <string lang="ro" key="ERR_CIPHER_INIT_FAILURE">Eroare: Eșuare inițializare cifru.</string>
+ <string lang="ro" key="ERR_CIPHER_INIT_WEAK_KEY">Eroare: A fost detectată o cheie slabă sau potențial slabă. Cheia va fi eliminată. Vă rugăm încercați din nou.</string>
+ <string lang="ro" key="EXCEPTION_REPORT">A apărut o eroare critică și VeraCrypt trebuie închis. Dacă aceasta este determinată de o eroare din VeraCrypt, am dori să o reparăm. Pentru a ne ajuta, ne puteți trimite raportul de erori generat automat conținând următoarele elemente:\n\n- Versiunea programului\n- Versiunea sistemului se operare\n- Tipul de procesor\n- Numele componentei VeraCrypt\n- Cheie de verificare a fișierului executabil VeraCrypt\n- Numele simbolic al ferestrei de dialog\n- Categoria erorii\n- Adresa erorii\n- Apelarea stivei VeraCrypt\n\nDacă selectați 'Da', următorul URL (care conține întregul raport de erori) va fi deschis în navigatorul dvs. implicit de Internet.\n\n%hs\n\nDoriți să ne trimiteți raportul de erori de mai sus?</string>
+ <string lang="ro" key="EXCEPTION_REPORT_EXT">A apărut o eroare critică în sistemul dvs., care necesită ca VeraCrypt să fie închis.\n\nȚineți cont că această eroare nu a fost cauzată de către VeraCrypt (deci programatorii VeraCrypt nu o pot repara). Vă rugăm verificați sistemul dvs. pentru posibile probleme (de ex. configurarea sistemului, conexiunea la rețea, componente hardware defecte).</string>
+ <string lang="ro" key="EXCEPTION_REPORT_EXT_FILESEL">A apărut o eroare critică în sistemul dvs., care necesită ca VeraCrypt să fie închis.\n\nDacă această problemă persistă, puteți încerca să dezactivați sau să dezinstalațiaplicațiile care ar putea cauza această problemă, cum ar fi antivirușii sau programale de securitate pe Internet, programale de "optimizare", "îmbunătățire" sau "ajustare" a sistemului, etc. Dacă aceasta nu ajută, puteți încerca reinstalarea sistemului de operare (această problemă poate fi cauzată și de un malware).</string>
+ <string lang="ro" key="EXCEPTION_REPORT_TITLE">Eroare critică VeraCrypt</string>
+ <string lang="ro" key="SYSTEM_CRASHED_ASK_REPORT">VeraCrypt a detectat că sistemul de operare s-a blocat recent. Există multe cauze potențiale care ar fi putut determina acest lucru (de exemplu, o componentă hardware defectă, o eroare într-un driver de unitate, etc.)\n\nDoriți ca VeraCrypt să verifice dacă o potențială eroare din VeraCrypt ar fi putut cauza căderea sistemului?</string>
+ <string lang="ro" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Doriți ca VeraCrypt să continue detectarea căderilor de sistem?</string>
+ <string lang="ro" key="NO_MINIDUMP_FOUND">VeraCrypt nu a găsit niciun fișier minidump de cădere a sistemului.</string>
+ <string lang="ro" key="ASK_DELETE_KERNEL_CRASH_DUMP">Doriți să ștergeți fișierul minidump de cădere a sistemului Windows pentru a elibera spațiu pe disc?</string>
+ <string lang="ro" key="ASK_DEBUGGER_INSTALL">Pentru a analiza căderea sistemului, VeraCrypt trebuie să instaleze 'Microsoft Debugging Tools' pentru Windows mai întâi.\n\nDupă ce veți da clic pe OK, instalatorul Windows va descărca pachetul de instalare 'Microsoft Debugging Tools' (16 MB) de pe un server Microsoft și-l va instala (instalatorul Windows va fi redirectat pe adresa URL a serverului Microsoft de pe serverul veracrypt.org, care se va asigura că această funcție va fi operațională chiar dacă Microsoft va schimba locația pachetului de instalare).</string>
+ <string lang="ro" key="SYSTEM_CRASH_ANALYSIS_INFO">După ce veți da clic pe OK, VeraCrypt va analiza căderea sistemului. Aceasta ar putea dura câteva minute.</string>
+ <string lang="ro" key="DEBUGGER_NOT_FOUND">Verificați dacă variabila de sistem 'PATH' include calea spre 'kd.exe' (Kernel Debugger).</string>
+ <string lang="ro" key="SYSTEM_CRASH_NO_VERACRYPT">Se pare că VeraCrypt cel mai probabil nu a fost cauza căderii sistemului. Există multe cauze potențiale care ar fi putut determina acest lucru (de exemplu, o componentă hardware defectă, o eroare într-un driver de unitate, etc.)</string>
+ <string lang="ro" key="SYSTEM_CRASH_UPDATE_DRIVER">Rezultatul analizei indică faptul că actualizarea următorului driver ar putea rezolva această problemă:</string>
+ <string lang="ro" key="SYSTEM_CRASH_REPORT">Pentru a ne ajuta, ne puteți trimite raportul de erori generat automat conținând următoarele elemente:\n\n- Versiunea programului\n- Versiunea sistemului se operare\n- Tipul de procesor\n- Numele componentei VeraCrypt\n- Cheie de verificare a fișierului executabil VeraCrypt\n- Numele simbolic al ferestrei de dialog\n- Categoria erorii\n- Adresa erorii\n- Apelarea stivei VeraCrypt\n\nDacă selectați 'Da', următorul URL (care conține întregul raport de erori) va fi deschis în navigatorul dvs. implicit de Internet.</string>
+ <string lang="ro" key="ASK_SEND_ERROR_REPORT">Doriți să ne trimiteți raportul de erori de mai sus?</string>
+ <string lang="ro" key="ENCRYPT">&amp;Criptare</string>
+ <string lang="ro" key="DECRYPT">&amp;Decriptare</string>
+ <string lang="ro" key="PERMANENTLY_DECRYPT">Decriptare &amp;permanentă</string>
+ <string lang="ro" key="EXIT">Ieșire</string>
+ <string lang="ro" key="EXT_PARTITION">Vă rugăm să creați o partiție logică pentru această partiție extinsă și apoi încercați din nou.</string>
+ <string lang="ro" key="FILE_HELP">Un volum VeraCrypt poate exista într-un fișier (denumit container VeraCrypt), care poate fi stocat pe hard disc, pe o unitate USB portabilă, etc. Un container VeraCrypt este ca orice fișier obișnuit (poate fi, de exemplu, mutat sau șters ca orice alt fișier). Clic pe 'Selectare fișier' pentru a alege nu nume de fișier pentru container și pentru a selecta locația unde doriți să fie creat acesta.\n\nATENȚIE: Dacă selectați un fișier existent, VeraCrypt NU îl va cripta; fișierul va fi șters și înlocuit cu noul container VeraCrypt creat. Veți putea cripta fișierele existente (mai târziu) mutându-le în containerul VeraCrypt pe care urmează să îl creați acum.</string>
+ <string lang="ro" key="FILE_HELP_HIDDEN_HOST_VOL">Selectați locația volumului exterior ce va fi creat (volumul ascuns va fi creat ulterior în interiorul acestui volum).\n\nUn volum VeraCrypt poate exista într-un fișier (denumit container VeraCrypt), care poate fi stocat pe hard disc, pe o unitate USB portabilă, etc. Un container VeraCrypt este ca orice fișier obișnuit (poate fi, de exemplu, mutat sau șters ca orice alt fișier). Clic 'Selectare fișier' pentru a alege nu nume de fișier pentru container și pentru a selecta locația unde doriți să fie creat acesta. Dacă selectați un fișier existent, VeraCrypt NU îl va cripta; fișierul va fi șters și înlocuit noul container VeraCrypt creat. Veți putea cripta fișierele existente (mai târziu) mutându-le în containerul VeraCrypt pe care urmează să îl creați acum.</string>
+ <string lang="ro" key="DEVICE_HELP">Volumele criptate VeraCrypt amplasate pe unități pot fi create pe partițiile de pe hard discuri, unități solid-state, stick-uri de momorie USB și pe orice alt mediu de stocare suportat. Partițiile pot fi de asemenea criptate din mers.\n\nÎn plus, dacă selectați un fișier existent, VeraCrypt NU îl va cripta; fișierul va fi șters și înlocuit cu noul container VeraCrypt creat. Veți putea cripta fișierele existente (mai târziu) mutându-le în containerul VeraCrypt pe care urmează să îl creați acum. Volumele criptate VeraCrypt pot fi create pe unități care nu conțin partiții (inclusiv hard discuri și unități solid-state).\n\nNotă: Un disc care conține partiții poate fi criptat din mers (utilizând o singură cheie) doar dacă este discul unde este instalat Windows și de pe care pornește.</string>
+ <string lang="ro" key="DEVICE_HELP_NO_INPLACE">Un volum VeraCrypt la nivel de disc poate fi creat într-o partiție de pe hard disk, disc solid-state, memorie0 USB portabilă și alte dispozitive de stocare.\n\nATENȚIE: Rețineți că partiția/discul va fi formatată și toate datele curente stocate pe ea vor fi șterse.</string>
+ <string lang="ro" key="DEVICE_HELP_HIDDEN_HOST_VOL">\nSelectați locația volumului exterior ce va fi creat (volumul ascuns va fi creat ulterior în interiorul acestui volum).\n\nVolumele exterioare pot fi create pe partițiile de pe hard disc, unități solid-state, memorii USB portabile și pe orice alt mediu de stocare suportat. Volumele exterioare pot fi create de asemenea pe unități care nu conțin partiții (inclusiv hard discuri și unități solid-state).\n\nATENȚIE: Rețineți că partiția/discul va fi formatată și toate datele curente stocate pe ea vor fi șterse.</string>
+ <string lang="ro" key="FILE_HELP_HIDDEN_HOST_VOL_DIRECT">\nSelectați locația volumului VeraCrypt în care doriți să fie creat un volum ascuns.</string>
+ <string lang="ro" key="FILE_IN_USE">AVERTISMENT: Fișierul/discul gazdă este deja accesat(ă)!\n\nIgnorând acest lucru poate determina rezultate nedorite inclusiv instabilitatea sistemului. Toate aplicațiile care ar putea accesa fișierul/discul (de exemplu, programele antivirus și de creare a copiilor de rezervă) ar trebui închise înainte de montarea volumului.\n\nContinuați montarea?</string>
+ <string lang="ro" key="FILE_IN_USE_FAILED">Eroare: Volumul nu poate fi montat. Fișierul/discul gazdă este deja accesat(ă). Încercarea de a-l monta fără drepturi de acces exclusive a eșuat de asemenea.</string>
+ <string lang="ro" key="FILE_OPEN_FAILED">Fișierul nu a putut fi deschis.</string>
+ <string lang="ro" key="FILE_TITLE">Locație volum</string>
+ <string lang="ro" key="FILESYS_PAGE_TITLE">Fișiere mari</string>
+ <string lang="ro" key="FILESYS_PAGE_HELP_QUESTION">Intenționați să stocați fișiere mai mari de 4 GB în acest volum VeraCrypt ?</string>
+ <string lang="ro" key="FILESYS_PAGE_HELP_EXPLANATION">În funcție de alegea dvs. de mai sus, VeraCrypt va alege un sistem de fișiere potrivit pentru volumul VeraCrypt (veți putea selecta un sistem de fișiere în pasul următor).</string>
+ <string lang="ro" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Ținând cont că veți crea un volum exterior, ar trebui să alegeți 'Nu'. Dacă alegeți 'Da', sistemul de fișiere implicit va fi NTFS, care nu este potrivit pentru volume exterioare de tip FAT/exFAT (adică, dimensiunea maximă posibilă a volumului ascuns va fi semnificativ mai mare dacă volumul este formatat ca FAT/exFAT). În mod normal, FAT este implicit atât pentru volumele normale cît și pentru cele ascunse (astfel încât volumele FAT nu sunt suspicioase). Totuși, dacă se indică intenția de a stoca fișiere mai mari de 4 GB (ceea ce sistemul de fișiere FAT nu permite), atunci FAT nu este sistemul implicit.</string>
+ <string lang="ro" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM">Sunteți sigur că doriți să alegeți 'Da'?</string>
+ <string lang="ro" key="DEVICE_TRANSFORM_MODE_PAGE_TITLE">Mod creare volum</string>
+ <string lang="ro" key="DEVICE_TRANSFORM_MODE_PAGE_FORMAT_HELP">Aceasta este cea mai sigură cale de a crea un volum VeraCrypt găzduit pe o partiție sau un disc (criptarea din mers, care este cealaltă opțiune, este mai înceată deoarece conținutul fiecărui sector trebuie citit mai întâi, criptat și apoi rescris). Orice date curent stocate pe partiția/discul selectată vor fi pierdute (datele NU vor fi criptate; ele vor fi suprascrise cu date aleatoare). Dacă doriți să criptați datele existente pe o partiție, alegeți cealaltă opțiune.</string>
+ <string lang="ro" key="DEVICE_TRANSFORM_MODE_PAGE_INPLACE_HELP">Întreaga partiție selectată și toate datele stocate pe ea vor fi criptate din mers. Dacă partiția este goală, ar trebui să alegeți cealaltă opțiune (volumul va fi creat mult mai repede).</string>
+ <string lang="ro" key="NOTE_BEGINNING">Notă: </string>
+ <string lang="ro" key="RESUME">&amp;Reluare</string>
+ <string lang="ro" key="DEFER">&amp;Amânare</string>
+ <string lang="ro" key="START">&amp;Start</string>
+ <string lang="ro" key="CONTINUE">&amp;Continuare</string>
+ <string lang="ro" key="FORMAT">&amp;Formatare</string>
+ <string lang="ro" key="WIPE">Ș&amp;tergere</string>
+ <string lang="ro" key="FORMAT_ABORT">Anulare formatare?</string>
+ <string lang="ro" key="SHOW_MORE_INFORMATION">Arată mai multe informații</string>
+ <string lang="ro" key="DO_NOT_SHOW_THIS_AGAIN">Nu mai afișa asta în viitor</string>
+ <string lang="ro" key="WIPE_FINISHED">Conținutul partiției/discului a fost șters cu succes.</string>
+ <string lang="ro" key="WIPE_FINISHED_DECOY_SYSTEM_PARTITION">Conținutul partiției unde se află sistemul original (din care sistemul ascuns este o clonă) a fost șters cu succes.</string>
+ <string lang="ro" key="DECOY_OS_VERSION_WARNING">Vă rugăm asigurați-vă că versiunea de Windows pe care o veți instala (pe partiția ștearsă) este aceeași ca versiunea Windows care funcționează acum. Aceasta este necesar deoarece ambele sisteme vor partaja aceeași partiție de pornire.</string>
+ <string lang="ro" key="SYSTEM_ENCRYPTION_FINISHED">Partiția/discul sistem a fost criptată cu succes.\n\nNotă: Dacă nu sunt volume non-sistem VeraCrypt pe care doriți să le montați automat la pornirea Windows, puteți să le setați montându-le pe rând și apoi selectând 'Favorite' > 'Adăugare volum montat la favorite sistem').</string>
+ <string lang="ro" key="SYSTEM_DECRYPTION_FINISHED">Partiția/discul sistem a fost decriptată cu succes.</string>
+ <string lang="ro" key="FORMAT_FINISHED_HELP">\n\nVolumul VeraCrypt a fost creat și este gata de folosire. Dacă doriți să creați un alt volum VeraCrypt, clic pe Înainte. Altfel, clic pe Ieșire.</string>
+ <string lang="ro" key="SYSENC_HIDDEN_VOL_FORMAT_FINISHED_HELP">\n\nVolumul ascuns VeraCrypt a fost creat cu succes (sistemul de operare ascuns se va afla pe acest volum ascuns).\n\nClic pe ÃŽnainte pentru a continua.</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_FINISHED_TITLE">Volum complet criptat</string>
+ <string lang="ro" key="NONSYS_INPLACE_DEC_FINISHED_TITLE">Volum complet decriptat</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_FINISHED_INFO">IMPORTANT: PENTRU A MONTA ACEST VOLUM NOU VERACRYPT ȘI PENTRU A ACCESA DATELE STOCATE PE EL, CLIC PE 'Automontare toate' ÎN FEREASTRA PRINCIPALĂ VERACRYPT. După ce veți introduce parola corectă (și/sau veți furniza fișierele-cheie corecte), volumul va fi montat cu litera unității selectate din lista afișată în fereastra principală VeraCrypt (și veți putea accesa datele criptate accesând litera unității selectate).\n\nVĂ RUGĂM MEMORAȚI SAU NOTAȚI-VĂ PAȘII DE MAI SUS. VA TREBUI SĂ-I URMAȚI DE FIECARE DATĂ CÎND VEȚI DORI SĂ MONTAȚI VOLUMUL ȘI SĂ ACCESAȚI DATELE STOCATE PE EL. Alternativ, în fereastra principală VeraCrypt, clic pe 'Selectare partiție/disc', apoi selectați această partiție/disc și clic pe 'Montare volum'.\n\nPartiția/discul a fost criptată cu succes (acum conține un volum VeraCrypt complet criptat) și este gata de utilizare.</string>
+ <string lang="ro" key="NONSYS_INPLACE_DEC_FINISHED_INFO">Volumul VeraCrypt a fost decriptat cu succes.</string>
+ <string lang="ro" key="NONSYS_INPLACE_DEC_FINISHED_DRIVE_LETTER_SEL_INFO">Volumul VeraCrypt a fost decriptat cu succes.\n\nAlegeți o literă de unitate pe care doriți să o atribuiți volumului decriptat și apoi dați clic pe Finalizare.\n\nIMPORTANT: Până când nu atribuiți o literă de unitate volumului decriptat, nu veți putea accesa datele stocate pe acesta.</string>
+ <string lang="ro" key="NONSYS_INPLACE_DEC_FINISHED_NO_DRIVE_LETTER_AVAILABLE">Atenționare: Pentru a putea accesa datele decriptate, trebuie atribuită o literă de unitate volumului decriptat. Totuși, acum nu există nici o literă de unitate liberă.\n\nEliberați o literă de unitate (de exemplu, deconectând o unitate USB sau hard disc extern, etc.) și apoi dați clic pe OK.</string>
+ <string lang="ro" key="FORMAT_FINISHED_INFO">Volumul VeraCrypt a fost creat cu succes.</string>
+ <string lang="ro" key="FORMAT_FINISHED_TITLE">Volum creat</string>
+ <string lang="ro" key="FORMAT_HELP">IMPORTANT: Mișcați cursorul cât de aleator posibil în interiorul acestei ferestre. Cu cât îl mișcați mai mult, cu atât mai bine. Aceasta mărește considerabil puterea criptografică a cheilor de criptare. Apoi dați clic pe Formatare pentru a crea volumul.</string>
+ <string lang="ro" key="FORMAT_HIDVOL_HOST_HELP">Clic pe Formatare pentru a crea volumul exterior. Pentru mai multe informații, vă rugăm consultați documentația.</string>
+ <string lang="ro" key="FORMAT_HIDVOL_HOST_TITLE">Formatare volum exterior</string>
+ <string lang="ro" key="FORMAT_HIDVOL_TITLE">Formatare volum ascuns</string>
+ <string lang="ro" key="FORMAT_TITLE">Formatare volum</string>
+ <string lang="ro" key="HELP_READER_ERROR">Este necesar programul Adobe Reader (sau un program compatibil) pentru a vedea sau tipări Ghidul de utilizare VeraCrypt. Adobe Reader (gratuit) poate fi descărcat de la: www.adobe.com\n\nDoriți să consultați în schimb documentația online ?</string>
+ <string lang="ro" key="HIDDEN_VOL_WIZARD_MODE_NORMAL_HELP">Dacă selectați această opțiune, asistentul vă va ajuta să creați un volum VeraCrypt normal și apoi unul ascuns în cadrul acestuia. Utilizatorii neexperimentați ar trebui să selecteze această opțiune.</string>
+ <string lang="ro" key="HIDDEN_VOL_WIZARD_MODE_DIRECT_HELP">Dacă selectați această opțiune, veți crea un volum ascuns în volumul VeraCrypt existent. Va presupune că deja ați creat un volum VeraCrypt care este potrivit pentru a găzdui un volum ascuns.</string>
+ <string lang="ro" key="HIDDEN_VOL_WIZARD_MODE_TITLE">Mod creare volum</string>
+ <string lang="ro" key="HIDVOL_FORMAT_FINISHED_TITLE">Volum ascuns creat</string>
+ <string lang="ro" key="HIDVOL_FORMAT_FINISHED_HELP">Volumul ascuns VeraCrypt a fost creat cu succes și este gata de utilizare. Dacă au fost urmate toate instrucțiunile și dacă precauțiile și solicitările afișate în secțiunea "Security Requirements and Precautions Pertaining to Hidden Volumes" din Ghidul de utilizare VeraCrypt au fost urmate, ar trebui să fie imposibil de dovedit că volumul ascuns există, chiar dacă volumul extern este montat.\n\nATENȚIE: DACĂ NU PROTEJAȚI VOLUMUL ASCUNS (PENTRU INFORMAȚII DESPRE CUM SĂ FACEȚI ASTA, CONSULTAȚI SECȚIUNEA "PROTECTION OF HIDDEN VOLUMES AGAINST DAMAGE" DIN GHIDUL DE UTILIZARE VERACRYPT), NU SCRIEȚI ÎN VOLUMUL EXTERN. ALTFEL, AȚI PUTEA SUPRASCRIE ȘI DISTRUGE VOLUMUL ASCUNS!</string>
+ <string lang="ro" key="FIRST_HIDDEN_OS_BOOT_INFO">Ați pornit sistemul de operare ascuns. Așa cum ați putut observa, sistemul de operare ascuns pare să fie instalat pe aceeași partiție cu sistemul de operare original. Totuși, în realitate, el este instalat în partiția de după acesta (în volumul ascuns). Toate operațiile de citire și scriere sunt redirectate transparent de la partiția sistemului original spre volumul ascuns.\n\nNici sistemul de operare, nici aplicațiile nu vor ști că datele scrise și citite de pe partiția sistem sunt de fapt scrise și citite de pe partiția de după aceasta (de la/la un volum ascuns). Orice astfel de date sunt criptate și decriptate din mers ca de obicei (cu o cheie de criptare diferită de cea folosită pentru sistemul de operare momeală).\n\n\nVă rugăm dați clic pe Înainte pentru a continua.</string>
+ <string lang="ro" key="HIDVOL_HOST_FILLING_HELP_SYSENC">Volumul exterior a fost creat și montat ca discul %hc:. Pe acest volum exterior ar trebui acum să copiați câteva fișiere aparent importante pe care NU doriți să le ascundeți. Ele vor fi acolo pentru oricine vă va forța să dezvăluiți parola pentru prima partiție de după partiția sistem, unde se află atât volumul extern cât și cel ascuns (conținând sistemul de operare ascuns). Veți putea dezvălui parola acestui volum exterior, iar existența volumului ascuns (și a sistemului de operare ascuns) va rămâne secretă.\n\nIMPORTANT: Fișierele pe care le veți copia pe volumul exterior nu ar trebui să ocupe mai mult de %s. Altfel, s-ar putea să nu fie suficient spațiu pe volumul exterior pentru volumul ascuns (și nu veți putea continua). După finalizarea copierii, clic pe Înainte (nu demontați volumul).</string>
+ <string lang="ro" key="HIDVOL_HOST_FILLING_HELP">Volumul exterior a fost creat cu succes și montat ca discul %hc:. Pe acest volum exterior ar trebui acum să copiați câteva fișiere aparent importante pe care NU doriți să le ascundeți. Ele vor fi acolo pentru oricine vă va forța să dezvăluiți parola. Veți dezvălui numai parola pentru acest volum exterior, nu pentru volumul ascuns. Fișierele pe care chiar doriți să le ascundeți vor fi stocate pe volumul ascuns, care va fi creat mai târziu. Când terminați copierea, clic pe Înainte. Nu demontați volumul.\n\nNotă: După ce dați clic pe Înainte, harta sectoarelor volumului exterior va fi scanată pentru a determina dimensiunea zonei neîntrerupte de spațiu liber a cărui sfârșit este aliniat cu sfârșitul volumului. Această zonă va găzdui volumul ascuns, prin urmare va delimita dimensiunea maximă disponibilă. Scanarea hărții sectoarelor se va asigura că nu există date pe volumul exterior care pot fi suprascrise de către volumul ascuns.</string>
+ <string lang="ro" key="HIDVOL_HOST_FILLING_TITLE">Conținut volum exterior</string>
+ <string lang="ro" key="HIDVOL_HOST_PRE_CIPHER_HELP">\n\nÎn următorii pași, veți stabili opțiunile pentru volumul exterior (în care va fi creat ulterior volumul ascuns).</string>
+ <string lang="ro" key="HIDVOL_HOST_PRE_CIPHER_HELP_SYSENC">\n\nÎn următorii pași, veți crea un așa-zis volum VeraCrypt exterior în cadrul primei partiții aflată după partiția sistem (așa cum a fost explicat în unul din pașii anteriori).</string>
+ <string lang="ro" key="HIDVOL_HOST_PRE_CIPHER_TITLE">Volum exterior</string>
+ <string lang="ro" key="HIDDEN_OS_PRE_CIPHER_HELP">În pașii următori, veți seta opțiunile și parola pentru volumul ascuns, care va conține sistemul de operare ascuns.\n\nRemarcă: Harta sectoarelor volumului exterior a fost scanată pentru a determina dimensiunea zonei neîntrerupte de spațiu liber a cărui sfârșit este aliniat cu sfârșitul volumului. Această zonă va găzdui volumul ascuns, prin urmare va delimita dimensiunea maximă disponibilă. Dimensiunea maximă posibilă a volumului ascuns a fost determinată și confirmată ca fiind mai mare decât dimensiunea partiției sistem (acest lucru fiind obligatoriu, deoarece întreg conținutul partiției sistem va trebui să fie copiat pe volumul ascuns). Acest lucru ne asigură că nu există date stocate pe volumul exterior ce vor fi suprascrise de datele scrise pe zona volumului ascuns.</string>
+ <string lang="ro" key="HIDDEN_OS_PRE_CIPHER_WARNING">IMPORTANT: Vă rugăm rețineți algoritmul pe care l-ați selectat în acest pas. Va trebui să selectați același algoritm pentru sistemul momeală. Altfel, sistemul ascuns va fi inaccesibil! (Sistemul momeală trebuie criptat cu același algoritm de criptare ca și sistemul ascuns.)\n\nNotă: Motivul este că sistemul momeală și sistemul ascuns vor partaja un singur program de încărcare, care suportă numai un singur algoritm, selectat de către utilizator (pentru fiecare algoritm, există o versiune specială a programului de încărcare VeraCrypt).</string>
+ <string lang="ro" key="HIDVOL_PRE_CIPHER_HELP">\n\nHarta sectoarelor volumului a fost scanată și dimensiunea maximă posibilă a volumului ascuns a fost determinată. În următorii pași veți seta opțiunile, dimensiunea și parola pentru volumul ascuns.</string>
+ <string lang="ro" key="HIDVOL_PRE_CIPHER_TITLE">Volum ascuns</string>
+ <string lang="ro" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Volumul ascuns este acum protejat împotriva distrugerilor până când volumul exterior este demontat.\n\nATENȚIE: În zona volumului ascuns, VeraCrypt va începe protecția la scriere a întregului volum (atât partea exterioară cât și cea ascunsă) până când este demontat. Aceasta poate cauza coruperea sistemului de fișiere de pe volumul exterior, care (dacă e repetată) ar putea afecta negarea plauzibilă a volumului ascuns. Prin urmare, ar trebui să faceți orice efort pentru a evita scrierea în zona volumului ascuns. Orice date care vor fi salvate în zona protejată a volumului ascuns nu vor fi salvate și vor fi pierdute. Windows ar putea raporta aceasta ca o eroare la scriere ("Delayed Write Failed" sau "The parameter is incorrect").</string>
+ <string lang="ro" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Fiecare din volumele ascunse din volumele nou montate sunt acum protejate împotriva distrugerilor până când sunt demontate.\n\nATENȚIE: Dacă se încearcă salvarea oricăror date în zona protejată a volumului ascuns a oricăruia din aceste volume, VeraCrypt va începe protejarea la scriere a întregului volum (atât partea exterioară cât și cea ascunsă) până când este demontat. Aceasta poate cauza coruperea sistemului de fișiere de pe volumul exterior, care (dacă e repetată) ar putea afecta negarea plauzibilă a volumului ascuns. Prin urmare, ar trebui să faceți orice efort pentru a evita scrierea în zona volumului ascuns. Orice date care vor fi salvate în zona protejată a volumului ascuns nu vor fi salvate și vor fi pierdute. Windows ar putea raporta aceasta ca o eroare la scriere ("Delayed Write Failed" sau "The parameter is incorrect").</string>
+ <string lang="ro" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">AVERTISMENT: S-a încercat salvarea datelor în zona volumului ascuns a volumului montat ca %c:! VeraCrypt e prevenit salvarea acestor date pentru a proteja volumul ascuns. Aceasta ar fi putut cauza coruperea sistemului de fișiere de pe volumul exterior și Windows ar fi putut raporta o eroare la scriere ("Delayed Write Failed" sau "The parameter is incorrect"). Întregul volum (atât partea exterioară cât și cea ascunsă) va fi protejat la scriere până când va fi demontat. Dacă aceasta nu este prima dată când VeraCrypt a prevenit salvarea datelor în zona volumului ascuns a acestui volum, negarea plauzibilă a volumului ascuns ar putea fi afectată (din cauza posibilelor neconcordanțe din cadrul sistemului de fișiere a volumului exterior). Prin urmare, ar trebui să luați în considerare crearea unui nou volum VeraCrypt (cu formatarea rapidă dezactivată) și să mutați fișierele din acest volum în noul volum; acest volum ar trebui șters în siguranță (atât partea exterioară cât și partea ascunsă). Vă recomandăm insistent să reporniți sistemul de operare acum.</string>
+ <string lang="ro" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">Ați indicat intenția de a stoca fișiere mai mari de 4 GB pe volum. Aceasta necesită ca volumul să fie formatat ca NTFS/exFAT, ceea ce, oricum, nu va fi posibil.</string>
+ <string lang="ro" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Țineți cont că atunci când un sistem de operare ascuns rulează, volumele VeraCrypt neascunse nu pot fi formatate ca NTFS/exFAT. Motivul este că acel volum ar trebui montat temporar fără protecția la scriere pentru a permite sistemului de operare să-l formateze ca NTFS/exFAT (pe când formatarea ca și FAT este realizată de către VeraCrypt, nu de către sistemul de operare și fără ca volumul să fie montat). Pentru detalii suplimentare, vedeți mai jos. Puteți crea un volum neascuns NTFS/exFAT din sistemul de operare momeală.</string>
+ <string lang="ro" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">Din motive de securitate, când un sistem de operare rulează, volumele ascunse pot fi create doar în modul 'direct' (deoarece volumele exterioare trebuie să fie întotdeauna montate ca doar-citire). Pentru a crea un volum ascuns în siguranță, urmați acești pași:\n\n1) Porniți sistemul de operare momeală.\n\n2) Creați un volum VeraCrypt normal și, pe acest volum, copiați câteva fișiere aparent-importante pe care de fapt NU doriți să le ascundeți (volumul va deveni volumul exterior).\n\n3) Porniți sistemul ascuns și porniți Asistentul de creare volum VeraCrypt. Dacă volumul este tip fișier, mutați-l pe o partiție sistem sau pe un alt volum ascuns (altfel, noul volum ascuns creat va fi montat ca doar-citire și nu va putea fi formatat). Urmați instrucțiunile asistentului astfel încât să selectați modul 'direct' de creare a volumului ascus.\n\n4) În asistent, selectați volumul creat la pasul 2 și apoi urmați instrucțiunile pentru a crea un volum ascuns în el.</string>
+ <string lang="ro" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Din motive de securitate, când un sistem de operare rulează, sistemele de fișiere locale necriptate și volumele VeraCrypt neascunse sunt montate ca doar-citire (nu se pot scrie date pe astfel de sisteme de fișiere sau volume VeraCrypt).\n\nDatele pot fi scrise pe orice sistem de fișiere care se află pe un volum VeraCrypt ascuns (cu condiția ca volumul ascuns să nu fie localizat într-un container stocat pe un sistem de fișiere necriptat sau pe orice alt sistem de fișiere ca doar-citire).</string>
+ <string lang="ro" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">Există trei motive principale pentru care au fost implementate astfel de contramăsuri:\n\n- Activează crearea unei platforme sigure pentru montarea volumelor VeraCrypt ascunse. Rețineți că oficial, recomandăm ca volumele ascunse să fie montate numai când un sistem de operare ascuns rulează. (Pentru mai multe informații, consultați subsecțiunea 'Security Requirements and Precautions Pertaining to Hidden Volumes' din documentație.)\n\n- În unele cazuri, este posibil de determinat că, la un moment dat, un anumit sistem de fișiere nu a fost montat (sau că un anumit fișier de pe sistemul de fișiere nu a fost salvat sau accesat) într-o anumită instanță a unui sistem de operare (de ex. analizând și comparând jurnalele sistemului de fișiere, data fișierului, jurnalele aplicațiilor, jurnalele erorilor, etc.). Aceasta poate indica că un sistem de operare ascuns este instalat pe calculator. Contramăsurile previn aceste situații.\n\n- Ele previn coruperea datelor și permit hibernarea în siguranță. Când Windows revine din hibernare, presupune că toate sistemele de fișiere montate sunt în aceeași stare ca atunci când sistemul a intrat în hibernare. VeraCrypt se asigură de asta prin protejarea la scriere a oricărui sistem de fișiere accesibil atât de pe sistemul momeală cât și de pe cel ascuns. Fără o astfel de protecție, sistemul de fișiere ar putea deveni corupt atunci când este montat de un sistem de operare în timp ce celălalt este în hibernare.</string>
+ <string lang="ro" key="DECOY_TO_HIDDEN_OS_DATA_TRANSFER_HOWTO">Notă: Dacă trebuie să transferați în mod sigur fișiere de pe sistemul momeală pe cel ascuns, urmați acești pași:\n1) Porniți sistemul momeală.\n2) Salvați fișierele într-un volum necriptat sau într-un volum VeraCrypt exterior/normal.\n3) Porniți sistemul ascuns.\n4) Dacă ați salvat fișierele într-un volum VeraCrypt, montați-l (el va fi montat automat ca doar-citire).\n5) Copiați fișierele pe partiția sistemului ascuns sau pe un alt volum ascuns.</string>
+ <string lang="ro" key="CONFIRM_RESTART">Calculatorul trebuie repornit.\n\nDoriți să-l reporniți acum ?</string>
+ <string lang="ro" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">A apărut o eroare când s-a încercat obținerea stării criptării sistemului.</string>
+ <string lang="ro" key="ERR_PASSWORD_MISSING">Nu s-a specificat o parolă în linia de comandă. Volumul nu poate fi creat.</string>
+ <string lang="ro" key="ERR_SIZE_MISSING">Nu s-a specificat mărimea volumului în linia de comandă. Volumul nu poate fi creat.</string>
+ <string lang="ro" key="ERR_NTFS_INVALID_VOLUME_SIZE">Dimensiunea fișierului volumului specificată în linia de comandă este incompatibilă cu sistemul de fișiere NTFS ales.</string>
+ <string lang="ro" key="ERR_FAT_INVALID_VOLUME_SIZE">Dimensiunea fișierului volumului specificată în linia de comandă este incompatibilă cu sistemul de fișiere FAT32 ales.</string>
+ <string lang="ro" key="ERR_DYNAMIC_NOT_SUPPORTED">Sistemul de fișiere de pe unitatea țintă nu suportă crearea fișierelor împrăștiate care este necesară pentru volumele dinamice.</string>
+ <string lang="ro" key="ERR_DEVICE_CLI_CREATE_NOT_SUPPORTED">Numai fișierele de tip container pot fi create prin linia de comandă.</string>
+ <string lang="ro" key="ERR_CONTAINER_SIZE_TOO_BIG">Dimensiunea fișierului container specificată în linia de comandă este mai mare decât spațiul liber disponibil. Volumul nu poate fi creat.</string>
+ <string lang="ro" key="ERR_VOLUME_SIZE_TOO_SMALL">Dimensiunea volumului specificată în linia de comandă este prea mică. Volumul nu poate fi creat.</string>
+ <string lang="ro" key="ERR_VOLUME_SIZE_TOO_BIG">imensiunea volumului specificată în linia de comandă este prea mare. Volumul nu poate fi creat.</string>
+ <string lang="ro" key="INIT_SYS_ENC">Nu se pot inițializa componentele aplicației pentru criptarea sistemului.</string>
+ <string lang="ro" key="INIT_RAND">A eșuat inițializarea generatorului de numere aleatoare!</string>
+ <string lang="ro" key="CAPI_RAND">Windows Crypto API a eșuat!\n\n\n(Dacă raportați o eroare în legătură cu aceasta, includeți și următoarele informații tehnice în raportul erorii:\n%hs, Last Error = 0x%.8X)</string>
+ <string lang="ro" key="INIT_REGISTER">Aplicația nu se poate inițializa. A eșuat înregistrarea clasei Dialog.</string>
+ <string lang="ro" key="INIT_RICHEDIT">Eroare: A eșuat încărcarea librăriei de sistem Rich Edit.</string>
+ <string lang="ro" key="INTRO_TITLE">Asistent creare volum VeraCrypt</string>
+ <string lang="ro" key="MAX_HIDVOL_SIZE_BYTES">Mărimea maximă a volumului ascuns pentru acest volum este %.2f baiți.</string>
+ <string lang="ro" key="MAX_HIDVOL_SIZE_KB">Mărimea maximă a volumului ascuns pentru acest volum este %.2f KB.</string>
+ <string lang="ro" key="MAX_HIDVOL_SIZE_MB">Mărimea maximă a volumului ascuns pentru acest volum este %.2f MB.</string>
+ <string lang="ro" key="MAX_HIDVOL_SIZE_GB">Mărimea maximă a volumului ascuns pentru acest volum este %.2f GB.</string>
+ <string lang="ro" key="MAX_HIDVOL_SIZE_TB">Mărimea maximă a volumului ascuns pentru acest volum este %.2f TB.</string>
+ <string lang="ro" key="MOUNTED_NOPWCHANGE">Parola/fișierele-chie ce aparțin volumului nu pot fi modificate în timp ce acesta este montat. Demontați mai întâi volumul.</string>
+ <string lang="ro" key="MOUNTED_NO_PKCS5_PRF_CHANGE">Algoritmul de derivare a cheii antetului nu poate fi modificat când volumul este montat. Demontați mai întâi volumul.</string>
+ <string lang="ro" key="MOUNT_BUTTON">&amp;Montare volum</string>
+ <string lang="ro" key="NEW_VERSION_REQUIRED">Pentru a monta acest volum VeraCrypt este necesară o versiune mai nouă.</string>
+ <string lang="ro" key="VOL_CREATION_WIZARD_NOT_FOUND">Eroare: Asistentul creare volum nu există.\n\nVerificați dacă fișierul 'VeraCrypt Format.exe' este în folderul din care a fost executat 'VeraCrypt.exe'. Dacă nu există, vă rugăm reinstalați VeraCrypt sau localizați fișierul 'VeraCrypt Format.exe' pe disc și lansați-l.</string>
+ <string lang="ro" key="VOL_EXPANDER_NOT_FOUND">Eroare: Nu găsesc fișierul pentru extindere volume.\n\nVerificați dacă fișierul 'VeraCryptExpander.exe' există în folderul de unde este lansat 'VeraCrypt.exe'. Dacă nu este, reinstalați VeraCrypt sau localizați 'VeraCryptExpander.exe' pe disc și lansați-l.</string>
+ <string lang="ro" key="NEXT">ÃŽnain&amp;te &gt;</string>
+ <string lang="ro" key="FINALIZE">&amp;Finalizare</string>
+ <string lang="ro" key="INSTALL">&amp;Instalare</string>
+ <string lang="ro" key="EXTRACT">E&amp;xtragere</string>
+ <string lang="ro" key="NODRIVER">Nu se poate stabili conexiunea cu driver-ul VeraCrypt. VeraCrypt nu poate funcționa dacă driver-ul nu funcționează.\n\nVă rugăm țineți cont că, datorită unei probleme din Windows, ar putea fi necesară reautentificarea utilizatorului sau repornirea sistemului pentru ca driverul să poată fi încărcat.</string>
+ <string lang="ro" key="NOFONT">A apărut o eroare la încărcarea/pregătirea fonturilor.</string>
+ <string lang="ro" key="NOT_FOUND">Litera unității nu a fost găsită sau litera unității nu a fost specificată.</string>
+ <string lang="ro" key="ERR_CANNOT_ASSIGN_DRIVE_LETTER_NONSYS_DEC">Eroare: Nu se poate atribui litera de unitate.\n\nPână când nu este atribuită o literă de unitate volumului decriptat, nu veți putea accesa datele stocate pe acesta.\n\nReîncercare ?</string>
+ <string lang="ro" key="DRIVE_LETTER_UNAVAILABLE">Litera unității nu este disponibilă.</string>
+ <string lang="ro" key="NO_FILE_SELECTED">Niciun fișier selectat!</string>
+ <string lang="ro" key="NO_FREE_DRIVES">Nu sunt litere de unități disponibile.</string>
+ <string lang="ro" key="NO_FREE_DRIVE_FOR_OUTER_VOL">Nu există literă de volum liberă pentru volumul exterior! Crearea volumului nu poate continua.</string>
+ <string lang="ro" key="NO_OS_VER">Nu s-a putut determina versiunea sistemului de operare sau folosiți un sistem de operare nesuportat.</string>
+ <string lang="ro" key="NO_PATH_SELECTED">Nu există cale selectată!</string>
+ <string lang="ro" key="NO_SPACE_FOR_HIDDEN_VOL">Nu există suficient spațiu liber pentru volumul ascuns! Crearea volumului nu poate continua.</string>
+ <string lang="ro" key="HIDDEN_VOLUME_TOO_SMALL_FOR_OS_CLONE">Eroare: Fișierele copiate pe volumul exterior ocupă prea mult spațiu. Prin urmare, nu există suficient spațiu liber pentru volumul ascuns.\n\nȚineți cont că volumul ascuns trebuie să fie tot atât de mare cât partiția sistem (partiția unde este instalat sistemul de operare ce rulează acum). Motivul este că sistemul ascuns trebuie creat prin copierea conținutului partiției sistemului pe volumul ascuns.\n\n\nProcesul de creare a sistemului de operare ascuns nu poate continua.</string>
+ <string lang="ro" key="OPENFILES_DRIVER">Driver-ul nu poate demonta volumul. Unele fișiere aflate pe volum probabil sunt încă accesate.</string>
+ <string lang="ro" key="OPENFILES_LOCK">Nu se poate bloca volumul. Încă există fișiere accesate de pe volum. Prin urmare, el nu poate fi demontat.</string>
+ <string lang="ro" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt nu poate bloca volumul deoarece este utilizat de către sistem sau unele aplicații (ar putea exista fișiere accesate de pe volum).\n\nDoriți forțarea demontării volumului ?</string>
+ <string lang="ro" key="OPEN_VOL_TITLE">Selectați un volum VeraCrypt</string>
+ <string lang="ro" key="OPEN_TITLE">Specificați o cale și un nume de fișier</string>
+ <string lang="ro" key="SELECT_PKCS11_MODULE">Selectați librăria PKCS #11</string>
+ <string lang="ro" key="OUTOFMEMORY">Memorie insuficientă</string>
+ <string lang="ro" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">IMPORTANT: Recomandăm cu insistență ca utilizatorii neexperimentați să creeze un fișier container VeraCrypt pe discul/partiția selectată, în loc de a cripta întreaga partiție/disc.\n\nCând creați un fișier container VeraCrypt (spre deosebire de criptarea unei unități sau partiții) nu există, de exemplu, nici un risc de a distruge un număr mare de fișiere. Țineți cont că un fișier container VeraCrypt (chiar dacă el conține un disc virtual criptat) este de fapt ca oricare fișier normal. Pentru mai multe informații, consultați capitolul Tutorial începători din Ghidul utilizatorului VeraCrypt.\n\nSunteți sigur că doriți să criptați întregul disc/partiție ?</string>
+ <string lang="ro" key="OVERWRITEPROMPT">AVERTISMENT: Fișierul '%s' există deja!\n\nIMPORTANT: VERACRYPT NU VA CRIPTA FIȘIERUL, DAR ÎL VA ȘTERGE. Sunteți sigur că doriți să ștergeți fișierul și să-l înlocuiți cu un nou fișier container VeraCrypt ?</string>
+ <string lang="ro" key="OVERWRITEPROMPT_DEVICE">ATENȚIE: TOATE FIȘIERELE STOCATE ÎN PREZENT PE %s '%s'%s VOR FI ȘTERSE ȘI PIERDUTE (ACESTEA NU VOR FI CRIPTATE)!\n\nSunteți sigur că doriți să continuați cu formatarea ?</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_CONFIRM">AVERTISMENT: Nu veți putea monta volumul sau să accesați vreun fișier stocat pe el până când nu va fi criptat în întregime.\n\nSunteți sigur că doriți să începeți criptarea pentru %s '%s'%s?</string>
+ <string lang="ro" key="NONSYS_INPLACE_DEC_CONFIRM">WARNING: Nu veți putea monta volumul sau să accesați vreun fișier stocat pe el până când nu va fi decriptat în întregime.\n\nSunteți sigur că doriți să începeți decriptarea pentru %s '%s'%s?</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">AVERTISMENT: Rețineți că dacă se va întrerupe alimentarea cu curent a sistemului pe durata procesului de criptare din mers sau dacă sistemul de operare se blochează datorită unei erori software sau componentă hardware defectă, o parte din date vor fi corupte sau pierdute. Prin urmare, înainte de a începe criptarea, asigurați-vă că aveți copii de rezervă ale fișierelor pe care le veți cripta.\n\nAveți astfel copii de rezervă ?</string>
+ <string lang="ro" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">ATENȚIE: ORICE FIȘIER STOCAT CURENT PE PARTIȚIA '%s'%s (DE EX. PE PRIMA PARTIȚIE AFLATĂ DUPĂ PARTIȚIA SISTEM) VA FI ȘTERS ȘI PIERDUT (ACESTEA NU VOR FI CRIPTATE)!\n\nSigur doriți să continuați cu formatarea ?</string>
+ <string lang="ro" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">AVERTISMENT: PARTIȚIA SELECTATĂ CONȚINE O CANTITATE MARE DE DATE! Orice fișier stocat pe partiție va fi șters și pierdut (acestea NU vor fi criptate)!</string>
+ <string lang="ro" key="ERASE_FILES_BY_CREATING_VOLUME">Ștergere toate fișierele stocate pe partiție prin crearea unui volum VeraCrypt</string>
+ <string lang="ro" key="PASSWORD">Parola</string>
+ <string lang="ro" key="PIM">MIP</string>
+ <string lang="ro" key="IDD_PCDM_CHANGE_PKCS5_PRF">Setare algoritm derivare cheie antet</string>
+ <string lang="ro" key="IDD_PCDM_ADD_REMOVE_VOL_KEYFILES">Adăugare/Eliminare fișiere-cheie pe/de pe volum</string>
+ <string lang="ro" key="IDD_PCDM_REMOVE_ALL_KEYFILES_FROM_VOL">Eliminare toate fișierele-cheie de pe volum</string>
+ <string lang="ro" key="PASSWORD_CHANGED">Parola și/sau fișierele-cheie au fost modificate cu succes.\n\nIMPORTANT: Asigurați-vă că ați consultat secțiunea 'Changing Passwords and Keyfiles' din capitolul 'Security Requirements and Precautions' din Ghidul de utilizare VeraCrypt.</string>
+ <string lang="ro" key="FAVORITE_PIM_CHANGED">Acest volum este înregistrat ca volum sistem favorit și valoarea pentru MIP a fost modificată.\nDoriți ca VeraCrypt să actualizeze automat configurația volumului sistem favorit (sunt necesare drepturi de administrator)?\n\nDacă veți răspunde nu, va trebui să actualizați manual volumul sistem favorit.</string>
+ <string lang="ro" key="SYS_PASSWORD_CHANGED_ASK_RESCUE_DISK">IMPORTANT: Dacă nu ați distrus Discul de Recuperare VeraCrypt, discul/partiția sistem încă poate fi decriptat folosind vechea parolă (pornind sistemul de pe Discul de Recuperare VeraCrypt și introducând vechea parolă). Ar trebui să creați un nou Disc de Recuperare VeraCrypt și apoi să-l distrugeți pe cel vechi.\n\nDoriți să creați un nou Disc de Recuperare VeraCrypt ?</string>
+ <string lang="ro" key="SYS_HKD_ALGO_CHANGED_ASK_RESCUE_DISK">Țineți cont că Discul de Recuperare VeraCrypt încă folosește vechiul algoritm. Dacă considerați vechiul algoritm nesigur, ar trebui să creați un nou Disc de Recuperare VeraCrypt și apoi să-l distrugeți pe cel vechi.\n\nDoriți să creați un nou Disc de Recuperare VeraCrypt ?</string>
+ <string lang="ro" key="KEYFILES_NOTE">Orice tip de fișier (de ex. .mp3, .jpg, .zip, .avi) poate fi folosit ca un fișier-cheie VeraCrypt. Rețineți că VeraCrypt nu modifică niciodată conținutul fișierului cheie. Puteți selecta mai mult de un fișier-cheie (ordinea nu contează). Dacă adăugați un folder, toate fișierele neascunse aflate în el vor fi folosite ca și fișiere-cheie. Clic pe 'Adaugă dispozitiv' pentru a selecta fișierele-cheie stocate pe dispozitivele de securitate sau cardurile inteligente (sau pentru a importa fișierele-cheie pe acestea).</string>
+ <string lang="ro" key="KEYFILE_CHANGED">Fișierele-cheie au fost adăugate/eliminate cu succes.</string>
+ <string lang="ro" key="KEYFILE_EXPORTED">Fișier-cheie exportat.</string>
+ <string lang="ro" key="PKCS5_PRF_CHANGED">Algoritm derivare cheie antet setat cu succes.</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Introduceți parola și/sau fișierele-cheie pentru volumul VeraCrypt non-sistem unde doriți să fie reluat procesul de criptare din mers.\n\n\nRemarcă: După ce veți da clic pe Înainte, VeraCrypt va încerca să găsească toate volumele non-sistem unde procesul de criptare a fost întrerupt și unde antetul volumului VeraCrypt poate fi decriptat folosind parola și/sau fișierele-cheie. Dacă este găsit mai mult de un volum, va trebui să selectați unul din ele în pasul următor.</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Selectați unul din volumele afișate. Lista conține fiecare volum non-sistem accesibil unde procesul de criptare a fost întrerupt și a căror antet a fost decriptat folosind parola și/sau fișierele-cheie.</string>
+ <string lang="ro" key="NONSYS_INPLACE_DEC_PASSWORD_PAGE_HELP">Introduceți parola și/sau fișierele-cheie pentru volumul VeraCrypt non-sistem pe care doriți să-l decriptați.</string>
+ <string lang="ro" key="PASSWORD_HELP">Este foarte important să alegeți o parolă bună. Ar trebui să evitați să alegeți una care conține un singur cuvând care se poate afla într-un dicționar (sau o combinație de 2, 3 sau 4 astfel de cuvinte). Ar trebui să nu conțină niciun nume sau dată de naștere. Nu ar trebuie să poată fi ghicită ușor. O parolă bună este o combinație amestecată de litere mici și mari, numere și caractere speciale, cum ar fi @ ^ = $ * + etc. Vă recomandăm să alegeți o parolă ce conține mai mult de 20 de caractere (cu cât mai lungă cu atât mai bine). Lungimea maximă posibilă este de 64 caractere.</string>
+ <string lang="ro" key="PASSWORD_HIDDENVOL_HELP">Alegeți o parolă pentru volumul ascuns.</string>
+ <string lang="ro" key="PASSWORD_HIDDEN_OS_HELP">Alegeți o parolă pentru sistemul de operare ascuns (adică pentru volumul ascuns). </string>
+ <string lang="ro" key="PASSWORD_HIDDEN_OS_NOTE">IMPORTANT: Parola pe care ați ales-o pentru sistemul de operare ascuns în acest pas trebuie să fie substanțial diferită de celelalte parole (adică față de parola pentru volumul exterior și de parola pentru sistemul de operare momeală).</string>
+ <string lang="ro" key="PASSWORD_HIDDENVOL_HOST_DIRECT_HELP">Introduceți parola pentru volumul în care doriți să creați volumul ascuns.\n\nDupă ce veți da clic pe Înainte, VeraCrypt va încerca să monteze volumul. Imediat ce volumul este montat, harta sectoarelor acestuia va fi scanată pentru a determina mărimea zonei neîntrerupte de spațiu liber (dacă există vreuna) a cărui sfârșit este aliniat cu sfârșitul volumului. Această zonă va găzdui volumul ascuns și deci aceasta va delimita dimensiunea maximă posibilă. Scanarea hărții sectoarelor este necesară pentru a ne asigura că nu există date pe volumul exterior ce vor fi suprascrise de către volumul ascuns.</string>
+ <string lang="ro" key="PASSWORD_HIDDENVOL_HOST_HELP">\nAlegeți o parolă pentru volumul exterior. Aceasta va fi parola pe care o veți putea dezvălui dacă sunteți întrebat sau forțat.\n\nIMPORTANT: Parola ar trebui să fie substanțial diferită de cea aleasă pentru volumul ascuns.\n\nNotă: Lungimea maximă a parolei poate fi de 64 de caractere.</string>
+ <string lang="ro" key="PASSWORD_SYSENC_OUTERVOL_HELP">Alegeți o parolă pentru volumul exterior. Aceasta va fi parola pe care o veți putea dezvălui oricui vă forțează să dezvăluiți parola pentru prima partiție aflată după partiția sistem, unde se vor afla volumul exterior și cel ascuns (conținând sistemul de operare ascuns). Existența sistemului ascuns (și a sistemului de operare ascuns) va rămâne secretă. Țineți cont că parola nu este pentru sistemul momeală.\n\nIMPORTANT: Parola trebuie să fie substanțial diferită de cea pe care o veți alege pentru volumul ascuns (adică sistemul de operare ascuns).</string>
+ <string lang="ro" key="PASSWORD_HIDVOL_HOST_TITLE">Parola volumului extern</string>
+ <string lang="ro" key="PASSWORD_HIDVOL_TITLE">Parola volumului ascuns</string>
+ <string lang="ro" key="PASSWORD_HIDDEN_OS_TITLE">Parola pentru sistemul de operare ascuns</string>
+ <string lang="ro" key="PASSWORD_LENGTH_WARNING">AVERTISMENT: Parolele scurte sunt ușor de găsit folosind tehnicile de forță brută !\n\nVă recomandăm să alegeți o parolă ce conține mai mult de 20 de caractere. Sunteți sigur că doriți să folosiți o parolă scurtă ?</string>
+ <string lang="ro" key="PASSWORD_TITLE">Parolă volum</string>
+ <string lang="ro" key="PASSWORD_WRONG">Parolă incorectă sau nu este un volum valid.</string>
+ <string lang="ro" key="PASSWORD_OR_KEYFILE_WRONG">Fișier(e) cheie incorect(e) și/sau parolă greșită sau nu este un volum valid.</string>
+ <string lang="ro" key="PASSWORD_OR_MODE_WRONG">Mod de montare greșit, parolă greșită sau nu este un volum valid.</string>
+ <string lang="ro" key="PASSWORD_OR_KEYFILE_OR_MODE_WRONG">Mod de montare greșit, fișier(e) cheie incorect(e) și/sau parolă greșită sau acesta nu este un volum valid.</string>
+ <string lang="ro" key="PASSWORD_WRONG_AUTOMOUNT">Parolă incorectă sau nu este un volum valid.</string>
+ <string lang="ro" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Fișier(e) cheie/parolă incorecte sau nu este un volum valid.</string>
+ <string lang="ro" key="PASSWORD_WRONG_CAPSLOCK_ON">\n\nAtenție: Tasta Caps Lock este apăsată. Aceasta poate determina introducerea incorectă a parolei.</string>
+ <string lang="ro" key="PIM_CHANGE_WARNING">Rețineți numărul pentru a putea monta volumul</string>
+ <string lang="ro" key="PIM_HIDVOL_HOST_TITLE">MIP volum exterior</string>
+ <string lang="ro" key="PIM_HIDVOL_TITLE">MIP volum ascuns</string>
+ <string lang="ro" key="PIM_HIDDEN_OS_TITLE">MIP pentru sistemul de operare ascuns</string>
+ <string lang="ro" key="PIM_HELP">MIP (Multiplicator Iterații Personal) este o valoare care stabilește numărul de iterații folosit de către cheia de derivare a antetului după cum urmează:\n Iterații = 15000 + (MIP x 1000).\n\nDacă e lăsat gol sau cu valoarea 0, VeraCrypt va utiliza valoarea implicită (485) ce asigură o securitate sporită.\n\nDacă parola are mai puțin de 20 de carcatere, valoare MIP nu poate fi mai mică de 485 pentru a asigura un nivel de securitate minim.\nDacă parola are 20 de caractere sau mai multe, MIP poate fi setat cu orice valoare.\n\nO valoare a MIP mai mare de 485 va determina o duartă de montare mai îndelungată. O valoare mai mică a MIP (mai puțin de 485) va duce la o montare mai rapidă dar poate reduce securitatea dacă parola nu este suficient de puternică.</string>
+ <string lang="ro" key="PIM_SYSENC_HELP">MIP (Multiplicator Iterații Personal) este o valoare care stabilește numărul de iterații folosit de către cheia de derivare a antetului după cum urmează:\n Iterații = MIP x 2048.\n\nDacă e lăsat gol sau cu valoarea 0, VeraCrypt va utiliza valoarea implicită (98) ce asigură o securitate sporită.\n\nDacă parola are mai puțin de 20 de carcatere, valoare MIP nu poate fi mai mică de 98 pentru a asigura un nivel de securitate minim.\nDacă parola are 20 de caractere sau mai multe, MIP poate fi setat cu orice valoare.\n\nO valoare a MIP mai mare de 98 va determina o întârziere mai îndelungată a pornirii sistemului. O valoare mai mică a MIP (mai puțin de 98) va duce la o pornire mai rapidă dar poate reduce securitatea dacă parola nu este suficient de puternică.</string>
+ <string lang="ro" key="PIM_SYSENC_CHANGE_WARNING">Rețineți numărul pentru a porni sistemul</string>
+ <string lang="ro" key="PIM_LARGE_WARNING">Ați ales o valoare a MIP mai mare decât valoarea implicită a VeraCrypt.\nRețineți că aceasta va determina o pornire mult mai înceată a sistemului sau montare a volumelor.</string>
+ <string lang="ro" key="PIM_SMALL_WARNING">Ați ales o valoare a MIP care este mai mică decât valoare implicită a VeraCrypt. Rețineți că dacă parola nu este suficient de puternică, aceasta ar putea determina o securitate mai slabă.\n\nConfirmați că utilizați o parolă puternică ?</string>
+ <string lang="ro" key="PIM_SYSENC_TOO_BIG">Valoarea maximă a MIP (Multiplicator Iterații Personal) pentru criptarea sistemului este 65535.</string>
+ <string lang="ro" key="PIM_TITLE">MIP volum</string>
+ <string lang="ro" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nATENȚIE: A fost găsit unul sau mai multe fișiere ascunse în calea de căutare a fișierului cheie. Astfel de fișiere ascunse nu pot fi folosite ca fișiere-cheie. Dacă doriți să le folosiți ca fișiere-cheie, ștergeți-le atributul 'Ascuns' (clic-dreapta pe fiecare din ele, selectați 'Properties', debifați 'Hidden' și apoi clic pe OK). Notă: Fișierele ascunse sunt vizibile numai dacă opțiunea corespunzătoare este activată (Computer > Organize > 'Folder and search options' > View).</string>
+ <string lang="ro" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">Dacă încercați să protejați un volum ascuns ce conține un sistem ascuns, asigurați-vă că folosiți formatul tastaturii standard US când introduceți parola pentru volumul ascuns. Aceasta este necesar deoarece parola trebuie introdusă înainte de pornirea sistemului (înainte de pornirea Windows) unde formatele tastaturilor non-US nu sunt disponibile.</string>
+ <string lang="ro" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">VeraCrypt nu a găsit vreun volum unde criptarea non-sistem să fie întreruptă și unde antetul volumului să poată fi decriptat folosind parola și/sau fișierele-cheie furnizate.\n\nVă rugăm asigurați-vă că parola și/sau fișierele-cheie sunt corecte și că volumul/partiția nu este utilizat(ă) de către sistem sau aplicații (inclusiv programele antivirus).</string>
+ <string lang="ro" key="SELECTED_PARTITION_ALREADY_INPLACE_ENC">Partiția/unitatea selectată este deja complet criptată.\nMarcaj antet = 0x%.8X</string>
+ <string lang="ro" key="SELECTED_PARTITION_NOT_INPLACE_ENC">Partiția/unitatea selectată nu folosește criptarea din mers.\nMarcaj antet = 0x%.8X</string>
+ <string lang="ro" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nNotă: Dacă încercați să montați o partiție aflată pe un disc sistem criptat fără autentificare la pornire sau să montați o partiție sistem criptată a unui sistem de operare care nu rulează, o puteți face selectând 'Sistem' > 'Montare fără autentificare la pornire'.</string>
+ <string lang="ro" key="MOUNT_WITHOUT_PBA_VOL_ON_ACTIVE_SYSENC_DRIVE">În acest mod, nu puteți monta o partiție aflată pe un disc a cărei porțiune este în zona de criptare a sistemului activ.\n\nÎnainte de a putea monta această partiție în acest mod, va trebui fie să porniți un sistem de operare instalat pe alt disc (criptat sau necriptat), fie să porniți un sistem de operare necriptat.</string>
+ <string lang="ro" key="CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE">VeraCrypt nu poate decripta o partiție individuală pe o unitate sistem criptată în întregime (puteți decripta numai unitatea sistem în întregime).</string>
+ <string lang="ro" key="CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE_UNSURE">Atenție: Deoarece unitatea conține modulul de pornire VeraCrypt, s-ar putea să fie o unitate sistem criptată în întregime. Dacă e așa, rețineți că VeraCrypt nu poate decripta o partiție individuală de pe o unitate sistem criptată în întregime (puteți decripta numai unitatea sistem în întregime). Dacă e așa, veți putea continua acum, dar veți primi mai târziu mesajul de eroare 'Parolă incorectă'.</string>
+ <string lang="ro" key="PREV">&lt; ÃŽ&amp;napoi</string>
+ <string lang="ro" key="RAWDEVICES">Nu se pot afișa unitățile neformatate instalate în sistem !</string>
+ <string lang="ro" key="READONLYPROMPT">Volumul '%s' există și este ca doar-citire. Sunteți sigur că doriți să-l înlocuiți ?</string>
+ <string lang="ro" key="SELECT_DEST_DIR">Selectați folderul destinație</string>
+ <string lang="ro" key="SELECT_KEYFILE">Selectare fișiere-cheie</string>
+ <string lang="ro" key="SELECT_KEYFILE_PATH">Selectați calea de căutare fișier-cheie. AVERTISMENT: rețineți că va fi memorată doar calea nu și numele fișierului !</string>
+ <string lang="ro" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Selectare folder unde să fie stocate fișierele-cheie.</string>
+ <string lang="ro" key="SELECTED_KEYFILE_IS_CONTAINER_FILE">Fișierul tip container curent a fost selectat ca fișiere-cheie. Va fi ignorat.</string>
+ <string lang="ro" key="SERPENT_HELP">Proiectat de Ross Anderson, Eli Biham și Lars Knudsen. Publicat în 1998. Cheie 256-biți, bloc 128-biți. Modul de operare este XTS. Serpent a fost unul din finaliștii AES.</string>
+ <string lang="ro" key="SIZE_HELP">Specificați dimensiunea containerului pe care doriți să-l creați.\n\nDacă creați un container dinamic (fișier-fragmentat), acest parametru va specifica dimensiunea lui maximă.\n\nRețineți că dimensiunea minimă posibilă a unui volum FAT este de 292 KB, a unui volum exFAT este de 424 KB, iar a unui volum NTFS este de 3792 KB.</string>
+ <string lang="ro" key="SIZE_HELP_HIDDEN_HOST_VOL">Specificați dimensiunea volumului extern ce va fi creat (prima dată veți crea volumul extern și apoi volumul ascuns în el). Dimensiunea minimă posibilă în care un volum ascuns intenționează să fie creat este de 340 KB.</string>
+ <string lang="ro" key="SIZE_HELP_HIDDEN_VOL">Specificați dimensiunea volumului ascuns ce va fi creat. Dimensiunea minimă posibilă a unui volum ascuns este de 40 KB (sau de 3664 KB dacă este formatat ca NTFS). Dimensiunea maximă posibilă pe care o puteți specifica pentru volumul ascuns este afișată mai sus.</string>
+ <string lang="ro" key="SIZE_HIDVOL_HOST_TITLE">Mărime volum exterior</string>
+ <string lang="ro" key="SIZE_HIDVOL_TITLE">Mărime volum ascuns</string>
+ <string lang="ro" key="SIZE_PARTITION_HELP">Verificați ca dimensiunea discului/partiției selectat mai sus este corectă și apoi dați clic pe Înainte.</string>
+ <string lang="ro" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Volumul exterior și volumul ascuns (ce conține sistemul de operare ascuns) vor fi plasate în partiția de mai sus. Ar trebui să fie prima partiție după partiția sistem.\n\nVerificați dacă dimensiunea partiției și numărul acesteia afișate mai sus sunt corecte și dacă sunt, dați clic pe Înainte.</string>
+ <string lang="ro" key="SIZE_PARTITION_HIDDEN_VOL_HELP">\n\nȚineți cont că dimensiunea minimă posibilă a unui volum în care se intenționează crearea unui volum ascuns este de 340 KB.</string>
+ <string lang="ro" key="SIZE_TITLE">Mărime volum</string>
+ <string lang="ro" key="SPARSE_FILE">Dinamic</string>
+ <string lang="ro" key="TESTS_FAILED">AVERTIZARE: AUTOTESTARE EȘUATĂ !</string>
+ <string lang="ro" key="TESTS_PASSED">Autotestarea tuturor algoritmilor a reușit</string>
+ <string lang="ro" key="TEST_INCORRECT_TEST_DATA_UNIT_SIZE">Numărul unității de date furnizat este prea lung sau prea scurt.</string>
+ <string lang="ro" key="TEST_INCORRECT_SECONDARY_KEY_SIZE">Cheia secundară furnizată este prea lungă sau prea scurtă.</string>
+ <string lang="ro" key="TEST_CIPHERTEXT_SIZE">Textul cifrat de testat furnizat este prea lung sau prea scurt.</string>
+ <string lang="ro" key="TEST_KEY_SIZE">Cheia testată furnizată este prea lungă sau prea scurtă.</string>
+ <string lang="ro" key="TEST_PLAINTEXT_SIZE">Textul simplu de testat furnizat este prea lung sau prea scurt.</string>
+ <string lang="ro" key="TWO_LAYER_CASCADE_HELP">Doi algoritmi în cascadă operând în mod XTS. Fiecare bloc este cripta prima dată cu %s (cheie %d-biți) și apoi cu %s (cheie %d-biți). Fiecare algoritm folosește cheia proprie. Fiecare cheie este reciproc independentă.</string>
+ <string lang="ro" key="THREE_LAYER_CASCADE_HELP">Trei algoritmi în cascadă operând în mod XTS. Fiecare bloc este criptat prima dată cu %s (cheie %d-biți), apoi cu %hs (cheie %d-biți) și în final cu %s (cheie %d-biți). Fiecare algoritm folosește cheia proprie. Fiecare cheie este reciproc independentă.</string>
+ <string lang="ro" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Rețineți că în funcție de configurația sistemului de operare, aceste funcții de autopornire și automontare pot funcționa numai când fișierele discului portabil sunt create pe un mediu nemodificabil de tip CD/DVD. În plus, rețineți că, aceasa nu este o eroare în VeraCrypt (este o limitare a sistemului de operare Windows).</string>
+ <string lang="ro" key="TRAVELER_DISK_CREATED">Discul portabil VeraCrypt a fost creat cu succes.\n\nRețineți că, aveți nevoie de drepturi de administrator pentru a rula VeraCrypt în mod portabil. În plus, după examinarea fișierului de regiștri, este posibil de aflat dacă VeraCrypt a fost rulat pe un sistem Windows chiar dacă este executat în mod portabil.</string>
+ <string lang="ro" key="TC_TRAVELER_DISK">Disc portabil VeraCrypt</string>
+ <string lang="ro" key="TWOFISH_HELP">Proiectat de Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall și Niels Ferguson. Publicat în 1998. Cheie 256-biți, bloc 128-biți. Modul de operare este XTS. Twofish a fost unul din finaliștii AES.</string>
+ <string lang="ro" key="MORE_INFO_ABOUT">Mai multe informatii pe %s</string>
+ <string lang="ro" key="UNKNOWN">Necunoscut</string>
+ <string lang="ro" key="ERR_UNKNOWN">A apărut o eroare nespecificată sau necunoscută (%d).</string>
+ <string lang="ro" key="UNMOUNTALL_LOCK_FAILED">Unele volume conțin fișiere sau foldere accesate de către aplicații sau de către sistem.\n\nForțați demontarea ?</string>
+ <string lang="ro" key="UNMOUNT_BUTTON">&amp;Demontare</string>
+ <string lang="ro" key="UNMOUNT_FAILED">Demontare eșuată !</string>
+ <string lang="ro" key="UNMOUNT_LOCK_FAILED">Volumul conține fișiere sau foldere accesate de către aplicații sau de către sistem.\n\nForțați demontarea ?</string>
+ <string lang="ro" key="NO_VOLUME_MOUNTED_TO_DRIVE">Nu există volum montat la litera de volum specificată.</string>
+ <string lang="ro" key="VOL_ALREADY_MOUNTED">Volumul pe care doriți să-l montați este deja montat.</string>
+ <string lang="ro" key="VOL_MOUNT_FAILED">A apărut o eroare la încercarea montării volumului.</string>
+ <string lang="ro" key="VOL_SEEKING">Eroare căutare locație în interiorul volumului.</string>
+ <string lang="ro" key="VOL_SIZE_WRONG">Eroare: Dimensiune volum incorectă.</string>
+ <string lang="ro" key="WARN_QUICK_FORMAT">AVERTISMENT: Ar trebui să folosiți Formatare rapidă numai în următoarele cazuri:\n\n1) Discul nu conține date importante și nu aveți nevoie de negare plauzibilă.\n2) Discul a fost deja criptat în siguranță și în întregime.\n\nSunteți sigur că doriți să folosiți Formatarea rapidă ?</string>
+ <string lang="ro" key="CONFIRM_SPARSE_FILE">Containerul dinamic este un fișier NTFS fragmentat prealocat a cărui dimensiune fizică (spațiu pe disc efectiv utilizat) crește pe măsură ce sunt adăugate date în el.\n\nATENȚIE: Performanța volumelor amplasate în fișiere fragmentate este semnificativ mai slabă decât a volumelor obișnuite. Volumele amplasate în fișiere fragmentate sunt, pe deasupra, mai puțin sigure deoarece este posibil de aflat care din sectoarele volumului nu sunt folosite. Prin urmare, volumele amplasate în fișiere nu pot furniza negarea plauzibilă (să gazduiască un volum ascuns). De altfel, țineți cont că, dacă datele sunt scrise într-un fișier container fragmentat când nu există suficient spațiu pe sistemul de fișiere gazdă, sistemul de fișiere criptat poate deveni corupt.\n\nSunteți sigur că doriți crearea unui volum tip fișier fragmentat ?</string>
+ <string lang="ro" key="SPARSE_FILE_SIZE_NOTE">Trebuie să știți că dimensiunea containerului raportată de către Windows și de către VeraCrypt va fi întotdeauna egală cu dimensiunea lui maximă. Pentru a afla dimensiunea fizică curentă a containerului (spațiul actual utilizat pe disc), dați clic-dreapta pe fișierul container (într-o fereastră Windows Explorer, nu în VeraCrypt), apoi selectați 'Properties' și vedeți valoarea 'Size on disk'.\n\nÎn plus, rețineți că dacă mutați un container dinamic pe un alt volum sau disc, dimensiunea fizică a containerului va fi extinsă la cea maximă. (Puteți preveni aceasta prin crearea unui nou container dinamic în locația de destinație, montarea acestuia și apoi mutarea fișierelor de pe vechiul container pe cel nou.)</string>
+ <string lang="ro" key="PASSWORD_CACHE_WIPED_SHORT">Parola păstrată a fost ștearsă</string>
+ <string lang="ro" key="PASSWORD_CACHE_WIPED">Parolele (și/sau conținutul fișierelor cheie) stocate în driver-ul VeraCrypt au fost șterse.</string>
+ <string lang="ro" key="WRONG_VOL_TYPE">VeraCrypt nu poate schimba parola pentru un volum străin.</string>
+ <string lang="ro" key="SELECT_FREE_DRIVE">Alegeți o literă de volum liberă din listă.</string>
+ <string lang="ro" key="SELECT_A_MOUNTED_VOLUME">Selectați un volum montat din lista cu litere de unități.</string>
+ <string lang="ro" key="AMBIGUOUS_VOL_SELECTION">Momentan sunt selectate două volume montate (unul în lista cu litere de unități și altul în câmpul de introducere de sub listă).\n\nVă rugăm alegeți volumul pe care doriți să-l selectați:</string>
+ <string lang="ro" key="CANT_CREATE_AUTORUN">Eroare: Nu se poate crea autorun.inf</string>
+ <string lang="ro" key="ERR_PROCESS_KEYFILE">Eroare la procesarea fișierului cheie !</string>
+ <string lang="ro" key="ERR_PROCESS_KEYFILE_PATH">Eroare procesare cale fișier-cheie !</string>
+ <string lang="ro" key="ERR_KEYFILE_PATH_EMPTY">Calea fișierului cheie nu conține fișiere.\n\nRețineți că folderele (și fișierele conținute de acestea) găsite în calea de căutare a fișierului cheie sunt ignorate.</string>
+ <string lang="ro" key="UNSUPPORTED_OS">VeraCrypt nu suportă acest sistem de operare.</string>
+ <string lang="ro" key="UNSUPPORTED_BETA_OS">Eroare: VeraCrypt suportă numai versiuni stabile ale acestui sistem de operare (versiunile beta/RC nu sunt suportate).</string>
+ <string lang="ro" key="ERR_MEM_ALLOC">Eroare: nu se poate aloca memorie.</string>
+ <string lang="ro" key="ERR_PERF_COUNTER">Eroare: Nu s-a putut prelua valoarea contorului de performanță.</string>
+ <string lang="ro" key="ERR_VOL_FORMAT_BAD">Eroare: Formatare eronată volum.</string>
+ <string lang="ro" key="ERR_HIDDEN_NOT_NORMAL_VOLUME">Eroare: Ați furnizat o parolă pentru un volum ascuns (nu pentru un volum normal).</string>
+ <string lang="ro" key="ERR_HIDDEN_VOL_HOST_ENCRYPTED_INPLACE">Din motive de securitate, un volum ascuns nu poate fi creat într-un volum ce conține un sistem de fișiere care a fost criptat din mers (deoarcere spațiul liber de pe volum nu a fost umplut cu date aleatoare).</string>
+ <string lang="ro" key="LEGAL_NOTICES_DLG_TITLE">VeraCrypt - Mențiuni legale</string>
+ <string lang="ro" key="ALL_FILES">Toate fișierele</string>
+ <string lang="ro" key="TC_VOLUMES">Volume VeraCrypt</string>
+ <string lang="ro" key="DLL_FILES">Module librărie</string>
+ <string lang="ro" key="FORMAT_NTFS_STOP">Formatarea NTFS/exFAT nu poate continua.</string>
+ <string lang="ro" key="CANT_MOUNT_VOLUME">Volumul nu poate fi montat.</string>
+ <string lang="ro" key="CANT_DISMOUNT_VOLUME">Volumul nu poate fi demontat.</string>
+ <string lang="ro" key="FORMAT_NTFS_FAILED">Windows a eșuat formatarea volumului ca NTFS/exFAT.\n\nAlegeți un alt tip de sistem de fișiere (dacă e posibil) și încercați din nou. Alternativ, puteți lăsa volumul neformatat (selectați 'Fără' ca sistem de fișiere), ieșiți din asistent, montați volumul și apoi folosiți fie aplicația sistemului sau alt program pentru a formata volumul montat (volumul va rămâne criptat).</string>
+ <string lang="ro" key="FORMAT_NTFS_FAILED_ASK_FAT">Windows a eșuat formatarea volumului ca NTFS/exFAT.\n\nDoriți în schimb să fie formatat ca FAT ?</string>
+ <string lang="ro" key="DEFAULT">Implicit</string>
+ <string lang="ro" key="PARTITION_LOWER_CASE">partiția</string>
+ <string lang="ro" key="PARTITION_UPPER_CASE">PARTIÈšIA</string>
+ <string lang="ro" key="DEVICE">Unitate</string>
+ <string lang="ro" key="DEVICE_LOWER_CASE">disc</string>
+ <string lang="ro" key="DEVICE_UPPER_CASE">DISC</string>
+ <string lang="ro" key="VOLUME">Volum</string>
+ <string lang="ro" key="VOLUME_LOWER_CASE">volum</string>
+ <string lang="ro" key="VOLUME_UPPER_CASE">VOLUM</string>
+ <string lang="ro" key="LABEL">Etichetă</string>
+ <string lang="ro" key="CLUSTER_TOO_SMALL">Dimensiunea selectată a sectorului este prea mică pentru dimensiunea acestui volum. Va fi folosită o dimensiune mai mare pentru sectoare.</string>
+ <string lang="ro" key="CANT_GET_VOLSIZE">Eroare: Nu se poate prelua dimensiunea volumului !\n\nAsigurați-vă că volumul selectat nu este accesat de către sistem sau vreo aplicație.</string>
+ <string lang="ro" key="HIDDEN_VOL_HOST_SPARSE">Volumele ascunse nu trebuie create în containere dinamice (fișiere fragmentate). Pentru a obține negarea plauzibilă, volumul ascuns trebuie creat într-un container non-dinamic.</string>
+ <string lang="ro" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">Asistemul de creare volum VeraCrypt poate crea un volum ascuns numai într-un volum FAT/exFAT sau NTFS.</string>
+ <string lang="ro" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS_WIN2000">În Windows 2000, Asistemul de creare volum VeraCrypt poate crea un volum ascuns numai într-un volum FAT.</string>
+ <string lang="ro" key="HIDDEN_VOL_HOST_NTFS">Notă: Sistemul de fișiere FAT/exFAT este mult mai potrivit pentru volume exterioare decât cel NTFS (adică, dimensiunea maximă posibilă a volumului ascuns va putea fi semnificativ mai mare dacă volumul a fost formatat ca FAT/exFAT).</string>
+ <string lang="ro" key="HIDDEN_VOL_HOST_NTFS_ASK">Rețineți că sistemul de fișiere FAT/exFAT este mult mai potrivit pentru volume exterioare decât cel NTFS. De exemplu, dimensiunea maximă posibilă a volumului ascuns va putea fi semnificativ mai mare dacă volumul a fost formatat ca FAT/exFAT (deoarece sistemul de fișiere NTFS stochează întotdeauna datele interne exact în mijlocul volumului, prin urmare, volumul ascuns poate fi localizat doar în a doua jumătate a volumului exterior).\n\nSunteți sigur că doriți formatarea volumului exterior ca NTFS ?</string>
+ <string lang="ro" key="OFFER_FAT_FORMAT_ALTERNATIVE">Doriți în schimb formatarea volumului ca FAT ?</string>
+ <string lang="ro" key="FAT_NOT_AVAILABLE_FOR_SO_LARGE_VOLUME">Notă: Acest volum nu poate fi formatat ca FAT, deoarece depășește dimensiunea maximă a volumului suportată de sistemul de fișiere FAT32 pentru aplicarea dimensiunii sectoarelor (2 TB pentru sectoate 512-octeți și 16 TB pentru sectoare 4096-octeți).</string>
+ <string lang="ro" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS">Eroare: Partiția pentru sistemul de operare ascuns (adică prima partiție de după partiția sistem) trebuie să fie cu cel puțin 5% mai mare decât partiția sistem (partiția sistem este cea de pe care rulează acum sistemul de operare instalat).</string>
+ <string lang="ro" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Eroare: Partiția pentru sistemul de operare ascuns (adică prima partiție de după partiția sistem) trebuie să fie de cel puțin 110% (de 2,1 ori) mai mare decât partiția sistem (partiția sistem este cea de pe care rulează acum sistemul de operare instalat). Motivul este că sistemul de fișiere NTFS stochează întotdeauna datele interne în mijlocul volumului și, prin urmare, volumul ascuns (care va conține clona partiției sistem) poate fi localizat doar în a doua jumătate a partiției.</string>
+ <string lang="ro" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Eroare: Dacă volumul exterior este formatat ca NTFS, trebuie să fie de cel puțin 110% (de 2,1 ori) mai mare decât partiția sistem. Motivul este că sistemul de fișiere NTFS stochează întotdeauna datele interne în mijlocul volumului și, prin urmare, volumul ascuns (care va conține clona partiției sistem) poate fi localizat doar în a doua jumătate a volumului exterior.\n\nNotă: Volumul exterior trebuie să fie localizat în aceeasți partiție ca și sistemul de operare ascuns (adică prima partiție de după partiția sistem).</string>
+ <string lang="ro" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Eroare: Nu există partiții după partiția sistem.\n\nRețineți că înainte de a crea un sistem de operare ascuns, trebuie să creați o partiție pentru acesta pe discul sistem. Trebuie să fie prima partiție după partiția sistem și trebuie să fie cel puțin cu 5% mai mare decât partiția sistem (partiția sistem este cea de pe care rulează acum sistemul de operare instalat). Totuși, dacă volumul exterior (a nu se confunda cu partiția sistem) este formatat ca NTFS, partiția pentru sistemul de operare ascuns trebuie să fie de cel puțin 110% (de 2,1 ori) mai mare decât partiția sistem (motivul este că sistemul de fișiere NTFS stochează întotdeauna datele interne în mijlocul volumului și, prin urmare, volumul ascuns, care va conține clona partiției sistem, poate fi localizat doar în a doua jumătate a partiției).</string>
+ <string lang="ro" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Remarcă: Nu este practică (și prin urmare nu este suportată) instalarea sistemului de operare în două volume VeraCrypt care au fost incluse într-o singură partiție, deoarce folosind un sistem de operare exterior va necesita deseori scrierea de date în zona sistemului de operare ascuns (și dacă astfel de operații de scriere vor fi împiedicate folosind funcția de protejare a volumelor ascunse, aceasta va determina inevitabil căderi ale sistemului, adică erori tip 'Ecran albastru').</string>
+ <string lang="ro" key="FOR_MORE_INFO_ON_PARTITIONS">Pentru informații despre crearea și gestionarea partițiilor, consultați documentația furnizată cu sistemul de operare sau contactați echipa de suport tehnic a furnizorului dvs. pentru asistență.</string>
+ <string lang="ro" key="SYSTEM_PARTITION_NOT_ACTIVE">Eroare: Sistemul de operare ce rulează acum nu este instalat pe partiția de pornire (prima partiție activă). Această configurație nu este suportată.</string>
+ <string lang="ro" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Ați indicat că doriți să stocați fișiere mai mari de 4 GB în acest volum VeraCrypt. Totuși, ați ales sistemul de fișiere FAT, pe care fișierele mai mari de 4 GB nu pot fi stocate.\n\nSunteți sigur că doriți să formatați volumul ca FAT ?</string>
+ <string lang="ro" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Eroare: VeraCrypt nu suportă decriptarea din mers a volumelor non-sistem anterioare create de VeraCrypt 1.0b sau mai vechi.\n\nNotă: Puteți totuși decripta fișierele stocate în volum prin copierea/mutarea lor pe un volum necriptat.</string>
+ <string lang="ro" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Eroare: VeraCrypt nu poate decripta înapoi un volum VeraCrypt ascuns.\n\nNotă: Puteți decripta fișierele stocate în volum prin copierea/mutarea lor pe un volum necriptat.</string>
+ <string lang="ro" key="CONFIRM_VOL_CONTAINS_NO_HIDDEN_VOL">Atenție: VeraCrypt nu poate decripta înapoi un volum care conține un volum VeraCrypt ascuns (volumul ascuns va fi suprascris cu date aleatoare).\n\nConfirmați dacă volumul ce va fi decriptat nu conține un volum ascuns.\n\nNotă: Dacă volumul conține un volum ascuns, dar nu vă deranjează că va fi pierdut, puteți selecta Continuă (volumul exterior va fi decriptat în siguranță).</string>
+ <string lang="ro" key="VOL_CONTAINS_NO_HIDDEN_VOL">Volumul nu conține niciun volum ascuns. Continuă.</string>
+ <string lang="ro" key="VOL_CONTAINS_A_HIDDEN_VOL">Volumul conține un volum ascuns. Anulare.</string>
+ <string lang="ro" key="CANT_ACCESS_VOL">Eroare: Volumul nu poate fi accesat !\n\nAsigurați-vă că volumul selectat există, că nu este montat sau accesat de cătrre sistem sau vreo aplicație, că aveți drepturi de citire/scriere asupra volumului și că nu este protejat la scriere.</string>
+ <string lang="ro" key="CANT_GET_VOL_INFO">Eroare: Nu se pot obține proprietățile volumului.</string>
+ <string lang="ro" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL">Eroare: Volumul nu se poate accesa și/sau obține informații despre el.\n\nAsigurați-vă că volumul selectat există, că nu este montat sau accesat de către sistem sau vreo aplicație, că aveți drepturi de citire/scriere asupra sa și că nu este protejat la scriere.</string>
+ <string lang="ro" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Eroare: Volumul nu se poate accesa și/sau obține informații despre el. Asigurați-vă că volumul selectat există, că nu este montat sau accesat de către sistem sau vreo aplicație, că aveți drepturi de citire/scriere asupra sa și că nu este protejat la scriere.\n\nDacă problema persistă, v-ar putea ajuta urmarea pașilor de mai jos.</string>
+ <string lang="ro" key="INPLACE_ENC_GENERIC_ERR_ALT_STEPS">O eroare a împiedicat VeraCrypt să cripteze partiția. Încercați să reparați orice problemă raportată anterior și apoi încercați din nou. Dacă problema persistă, v-ar putea ajuta urmarea pașilor de mai jos.</string>
+ <string lang="ro" key="INPLACE_ENC_GENERIC_ERR_RESUME">O eroare a împiedicat VeraCrypt să reia procesul de criptare/decriptare a partiției/volumului.\n\nÎncercați să reparați orice problemă raportată anterior și apoi încercați din nou dacă e posibil. Volumul nu poate fi montat până când nu este complet criptat sau decriptat.</string>
+ <string lang="ro" key="INPLACE_DEC_GENERIC_ERR">O eroare a împiedicat VeraCrypt să decripteze volumul. Încercați să reparați orice problemă raportată anterior și apoi încercați din nou.</string>
+ <string lang="ro" key="CANT_DISMOUNT_OUTER_VOL">Eroare: Volumul exterior nu poate fi demontat !\n\nVolumul nu poate fi demontat dacă conține fișiere și foldere accesate de un program sau de către sistem.\n\nVă rugăm închideți orice program care ar putea accesa fișierele și folderele de pe volum și apoi dați clic pe Reluare.</string>
+ <string lang="ro" key="CANT_GET_OUTER_VOL_INFO">Eroare: Nu se pot obține informații depre volumul exterior !\nCrearea volumului nu poate continua.</string>
+ <string lang="ro" key="CANT_ACCESS_OUTER_VOL">Eroare: Volumul exterior nu poate fi accesat ! Crearea volumului nu poate continua.</string>
+ <string lang="ro" key="CANT_MOUNT_OUTER_VOL">Eroare: Volumul exterior nu poate fi montat ! Crearea volumului nu poate continua.</string>
+ <string lang="ro" key="CANT_GET_CLUSTER_BITMAP">Eroare: Nu se poate prelua harta sectoarelor volumului/ ! Crearea volumului nu poate continua.</string>
+ <string lang="ro" key="ALPHABETICAL_CATEGORIZED">Alfabetic/Categorizat</string>
+ <string lang="ro" key="MEAN_SPEED">Viteza medie (Descendent)</string>
+ <string lang="ro" key="ALGORITHM">Algoritm</string>
+ <string lang="ro" key="ENCRYPTION">Criptare</string>
+ <string lang="ro" key="DECRYPTION">Decriptare</string>
+ <string lang="ro" key="MEAN">Media</string>
+ <string lang="ro" key="DRIVE">Unitate</string>
+ <string lang="ro" key="SIZE">Mărime</string>
+ <string lang="ro" key="ENCRYPTION_ALGORITHM">Algoritm criptare</string>
+ <string lang="ro" key="ENCRYPTION_ALGORITHM_LV">Algoritm criptare</string>
+ <string lang="ro" key="TYPE">Tip</string>
+ <string lang="ro" key="VALUE">Valoare</string>
+ <string lang="ro" key="PROPERTY">Proprietate</string>
+ <string lang="ro" key="LOCATION">Locație</string>
+ <string lang="ro" key="BYTES">octeți</string>
+ <string lang="ro" key="HIDDEN">Ascuns</string>
+ <string lang="ro" key="OUTER">Exterior</string>
+ <string lang="ro" key="NORMAL">Normal</string>
+ <string lang="ro" key="SYSTEM_VOLUME_TYPE_ADJECTIVE">Sistem</string>
+ <string lang="ro" key="TYPE_HIDDEN_SYSTEM_ADJECTIVE">Ascuns (sistem)</string>
+ <string lang="ro" key="READ_ONLY">Doar-citire</string>
+ <string lang="ro" key="SYSTEM_DRIVE">Unitate sistem</string>
+ <string lang="ro" key="SYSTEM_DRIVE_ENCRYPTING">Unitate sistem (criptare - %.2f%% efectuat)</string>
+ <string lang="ro" key="SYSTEM_DRIVE_DECRYPTING">Unitate sistem (decriptare - %.2f%% efectuat)</string>
+ <string lang="ro" key="SYSTEM_DRIVE_PARTIALLY_ENCRYPTED">Unitate sistem (%.2f%% criptat)</string>
+ <string lang="ro" key="SYSTEM_PARTITION">Partiție sistem</string>
+ <string lang="ro" key="HIDDEN_SYSTEM_PARTITION">Partiție sistem ascunsă</string>
+ <string lang="ro" key="SYSTEM_PARTITION_ENCRYPTING">Partiție sistem (criptare - %.2f%% efectuat)</string>
+ <string lang="ro" key="SYSTEM_PARTITION_DECRYPTING">Partiție sistem (decriptare - %.2f%% efectuat)</string>
+ <string lang="ro" key="SYSTEM_PARTITION_PARTIALLY_ENCRYPTED">Partiție sistem (%.2f%% criptat)</string>
+ <string lang="ro" key="HID_VOL_DAMAGE_PREVENTED">Da (distrugere prevenită!)</string>
+ <string lang="ro" key="NONE">Fără</string>
+ <string lang="ro" key="KEY_SIZE">Mărime cheie primară</string>
+ <string lang="ro" key="SECONDARY_KEY_SIZE_XTS">Mărime cheie secundară (Mod XTS)</string>
+ <string lang="ro" key="SECONDARY_KEY_SIZE_LRW">Mărime cheie Tweak (Mod LRW)</string>
+ <string lang="ro" key="BITS">biți</string>
+ <string lang="ro" key="BLOCK_SIZE">Mărime bloc</string>
+ <string lang="ro" key="PKCS5_PRF">PKCS-5 PRF</string>
+ <string lang="ro" key="PKCS5_ITERATIONS">Contor iterații PKCS-5</string>
+ <string lang="ro" key="VOLUME_CREATE_DATE">Volum creat</string>
+ <string lang="ro" key="VOLUME_HEADER_DATE">Ultima modificare antet</string>
+ <string lang="ro" key="VOLUME_HEADER_DAYS"> (acum %I64d zile)</string>
+ <string lang="ro" key="VOLUME_FORMAT_VERSION">Versiune formatare volum</string>
+ <string lang="ro" key="BACKUP_HEADER">Antet rezervă inclus</string>
+ <string lang="ro" key="VC_BOOT_LOADER_VERSION">Versiune încărcător VeraCrypt</string>
+ <string lang="ro" key="FIRST_AVAILABLE">Primul disponibil</string>
+ <string lang="ro" key="REMOVABLE_DISK">Disc portabil</string>
+ <string lang="ro" key="HARDDISK">Hard disc</string>
+ <string lang="ro" key="UNCHANGED">Nemodificat</string>
+ <string lang="ro" key="AUTODETECTION">Autodetecție</string>
+ <string lang="ro" key="SETUP_MODE_TITLE">Mod asistent</string>
+ <string lang="ro" key="SETUP_MODE_INFO">Selectați unul din moduri. Dacă nu sunteți sigur pe care să-l selectați, alegeți modul implicit.</string>
+ <string lang="ro" key="SETUP_MODE_HELP_INSTALL">Selectați această opțiune dacă doriți să instalați VeraCrypt pe acest sistem.</string>
+ <string lang="ro" key="SETUP_MODE_HELP_UPGRADE">Notă: Puteți actualiza fără a decripta, chiar dacă discul/partiția sistem este criptat sau utilizați un sistem de operare ascuns.</string>
+ <string lang="ro" key="SETUP_MODE_HELP_EXTRACT">Dacă selectați această opțiune, toate fișierele vor fi extrase din acest pachet dar nu va fi nimic instalat pe acest sistem. Nu o selectați dacă intenționați să criptați partiția sistem sau discul sistem. Selectând această opțiune poate fi util, de exemplu, dacă doriți să executați VeraCrypt în așa-zisul mod portabil. VeraCrypt nu trebuie să fie instalat pe sistemul de operare în care este executat. După ce sunt extrase toate fișierele, puteți executa direct fișierul extras 'VeraCrypt.exe' (atunci VeraCrypt va rula în mod portabil).</string>
+ <string lang="ro" key="SETUP_OPTIONS_TITLE">Opțiuni setare</string>
+ <string lang="ro" key="SETUP_OPTIONS_INFO">Aici puteți seta diferite opțiuni pentru a controla procesul de instalare.</string>
+ <string lang="ro" key="SETUP_PROGRESS_TITLE">Instalare</string>
+ <string lang="ro" key="SETUP_PROGRESS_INFO">Vă rugăm așteptați până când este instalat VeraCrypt.</string>
+ <string lang="ro" key="SETUP_FINISHED_TITLE_DON">VeraCrypt a fost instalat cu succes</string>
+ <string lang="ro" key="SETUP_FINISHED_UPGRADE_TITLE_DON">VeraCrypt a fost actualizat cu succes</string>
+ <string lang="ro" key="SETUP_FINISHED_INFO_DON">Vă rugăm să luați în considerare efectuarea unei donații. Puteți da oricând clic pe Finalizare pentru a încheia instalarea.</string>
+ <string lang="ro" key="EXTRACTION_OPTIONS_TITLE">Opțiuni extragere</string>
+ <string lang="ro" key="EXTRACTION_OPTIONS_INFO">Aici puteți seta diferite opțiuni pentru a controla procesul de extragere.</string>
+ <string lang="ro" key="EXTRACTION_PROGRESS_INFO">Vă rugăm așteptați până când sunt extrase fișierele.</string>
+ <string lang="ro" key="EXTRACTION_FINISHED_TITLE_DON">Fișierele au fost extrase cu succes</string>
+ <string lang="ro" key="EXTRACTION_FINISHED_INFO">Toate fișiere au fost extrase cu succes la locația de destinație.</string>
+ <string lang="ro" key="AUTO_FOLDER_CREATION">Dacă folderul specificat nu există, acesta va fi automat creat.</string>
+ <string lang="ro" key="SETUP_UPGRADE_DESTINATION">Fișierele programului VeraCrypt vor fi actualizate în locația unde este instalat VeraCrypt. Dacă doriți să selectați o locație diferită, vă rugăm mai întâi dezinstalați VeraCrypt.</string>
+ <string lang="ro" key="AFTER_UPGRADE_RELEASE_NOTES">Doriți să citiți notele de lansare ale acestei versiuni (ultima stabilă) a programului VeraCrypt ?</string>
+ <string lang="ro" key="AFTER_INSTALL_TUTORIAL">Dacă nu ați mai folosit programul VeraCrypt înainte, vă recomandăm să citiți capitolul 'Beginner's Tutorial' din Ghidul de utilizare VeraCrypt. Doriți să consultați tutorialul ?</string>
+ <string lang="ro" key="SELECT_AN_ACTION">Vă rugăm selectați o acțiune de executat din următoarele:</string>
+ <string lang="ro" key="REPAIR_REINSTALL">Reparare/Reinstalare</string>
+ <string lang="ro" key="UPGRADE">Actualizare</string>
+ <string lang="ro" key="UNINSTALL">Dezinstalare</string>
+ <string lang="ro" key="SETUP_ADMIN">Pentru a instala/dezinstala cu succes VeraCrypt, trebuie să aveți drepturi de administrator. Doriți să continuați ?</string>
+ <string lang="ro" key="TC_INSTALLER_IS_RUNNING">Instalatorul VeraCrypt rulează deja pe acest sistem și efectuează sau pregătește instalarea sau actualizarea programului VeraCrypt. Înainte de a continua, vă rugăm așteptați-l să termine sau închideți-l. Dacă nu-l puteți închide, vă rugăm restartați sistemul înainte de a continua.</string>
+ <string lang="ro" key="INSTALL_FAILED">Instalare eșuată.</string>
+ <string lang="ro" key="UNINSTALL_FAILED">Dezinstalare eșuată.</string>
+ <string lang="ro" key="DIST_PACKAGE_CORRUPTED">Acest pachet de distribuție este distrus. Vă rugăm încercați să-l descărcați din nou (de preferat de la pagina web oficială VeraCrypt aflată la adresa www.idrix.fr).</string>
+ <string lang="ro" key="CANNOT_WRITE_FILE_X">Nu se poate scrie fișierul %s</string>
+ <string lang="ro" key="EXTRACTING_VERB">Extragere</string>
+ <string lang="ro" key="CANNOT_READ_FROM_PACKAGE">Nu se pot citi datele din pachet.</string>
+ <string lang="ro" key="CANT_VERIFY_PACKAGE_INTEGRITY">Nu se poate verifica integritatea acestui pachet de distribuție.</string>
+ <string lang="ro" key="EXTRACTION_FAILED">Extragere eșuată.</string>
+ <string lang="ro" key="ROLLBACK">Instalarea a fost derulată înapoi.</string>
+ <string lang="ro" key="INSTALL_OK">VeraCrypt a fost instalat cu succes.</string>
+ <string lang="ro" key="SETUP_UPDATE_OK">VeraCrypt a fost actualizat cu succes.</string>
+ <string lang="ro" key="UPGRADE_OK_REBOOT_REQUIRED">VeraCrypt fost actualizat cu succes. Totuși, înainte de a începe să-l utilizați, calculatorul trebuie repornit.\n\nDoriți să-l reporniți acum ?</string>
+ <string lang="ro" key="SYS_ENC_UPGRADE_FAILED">Eșuare actualizare VeraCrypt!\n\nIMPORTANT: Înaite de a închide sau reporni sistemul, vă recomandăm insistent să utilizați System Restore (Windows Start menu > All programs > Accessories > System Tools > System Restore) pentru a restaura sistemul la un punct de restaurare denumit 'VeraCrypt installation'. Dacă System Restore nu este disponibil, ar trebui să încercați instalarea versiunii originale sau a celei noi din nou, înainte de a închide sau reporni sistemul.</string>
+ <string lang="ro" key="UNINSTALL_OK">VeraCrypt a fost dezinstalat cu succes.\n\nClic pe 'Finalizare' pentru a șterge instalatorul VeraCrypt și folderul %s. Rețineți că folderul nu va fi șters dacă conține fișiere care nu a fost instalate de către instalatorul VeraCrypt sau create de către VeraCrypt.</string>
+ <string lang="ro" key="REMOVING_REG">Eliminare intrări regiștri VeraCrypt</string>
+ <string lang="ro" key="ADDING_REG">Adăugare intrări regiștri</string>
+ <string lang="ro" key="REMOVING_APPDATA">Eliminare date specifice aplicației</string>
+ <string lang="ro" key="INSTALLING">Instalare</string>
+ <string lang="ro" key="STOPPING">Oprire</string>
+ <string lang="ro" key="REMOVING">Eliminare</string>
+ <string lang="ro" key="ADDING_ICON">Adăugare pictogramă</string>
+ <string lang="ro" key="CREATING_SYS_RESTORE">Creare punct de restaurare în System Restore</string>
+ <string lang="ro" key="FAILED_SYS_RESTORE">Eșuare creare punct de restaurare în System Restore !</string>
+ <string lang="ro" key="INSTALLER_UPDATING_BOOT_LOADER">Actualizare program pornire sistem</string>
+ <string lang="ro" key="INSTALL_OF_FAILED">Eșuare instalare '%s'. %s\nDoriți să continuați instalarea ?</string>
+ <string lang="ro" key="UNINSTALL_OF_FAILED">Eșuare dezinstalare '%s'. %s\nDoriți să continuați dezinstalarea ?</string>
+ <string lang="ro" key="INSTALL_COMPLETED">Instalare completată.</string>
+ <string lang="ro" key="CANT_CREATE_FOLDER">Folderul '%s' nu a putut fi creat</string>
+ <string lang="ro" key="CLOSE_TC_FIRST">Driver-ul unității VeraCrypt nu poate fi descărcat.\n\nVă rugăm închideți prima dată toate ferestrele VeraCrypt deschise. Dacă nu vă ajută, vă rugăm să reporniți Windows și apoi încercați din nou.</string>
+ <string lang="ro" key="DISMOUNT_ALL_FIRST">Toate volumele VeraCrypt trebuie demontate înainte de instalarea sau dezinstalarea VeraCrypt.</string>
+ <string lang="ro" key="UNINSTALL_OLD_VERSION_FIRST">O versiune mai veche de VeraCrypt este instalată acum în acest sistem. Trebuie dezinstalată înainte de a instala noua versiune VeraCrypt.\n\nImediat ce veți închide acest mesaj, va fi lansat programul de dezinstalare al vechii versiuni. Rețineți că nu va fi decriptat nici un volum când veți dezinstala VeraCrypt. După dezinstalarea vechii versiuni VeraCrypt, lansați din nou instalatorul noii versiuni VeraCrypt .</string>
+ <string lang="ro" key="REG_INSTALL_FAILED">Instalarea intrărilor în regiștri a eșuat</string>
+ <string lang="ro" key="DRIVER_INSTALL_FAILED">Instalarea driver-ului unității a eșuat. Vă rugăm reporniți Windows și apoi încercați instalarea VeraCrypt din nou.</string>
+ <string lang="ro" key="STARTING_DRIVER">Pornire driver unitate VeraCrypt</string>
+ <string lang="ro" key="DRIVER_UINSTALL_FAILED">Dezinstalarea driver-ului unității a eșuat. Vă rugăm rețineți că, datorită unei erori din Windows, ar putea să fie necesară reautentificarea utilizatorului sau repornirea sistemului înainte de a putea fi dezinstalat (sau reinstalat) driver-ul unității.</string>
+ <string lang="ro" key="INSTALLING_DRIVER">Instalare driver unitate VeraCrypt</string>
+ <string lang="ro" key="STOPPING_DRIVER">Oprire driver unitate VeraCrypt</string>
+ <string lang="ro" key="REMOVING_DRIVER">Dezinstalare driver unitate VeraCrypt</string>
+ <string lang="ro" key="COM_REG_FAILED">Înregistrarea librăriei de suport a User Account Control a eșuat.</string>
+ <string lang="ro" key="COM_DEREG_FAILED">Eliminarea înregistrării librăriei de suport a User Account Control a eșuat.</string>
+ <string lang="ro" key="TRAVELER_LIMITATIONS_NOTE">Notă despre modul portabil:\n\nVă rugăm rețineți că, sistemul de operare solicită ca driver-ele să fie înregistrate cu acesta înainte de a putea fi pornite. Prin urmare, driver-ul VeraCrypt nu este (și nu poate fi) complet portabil (pe când aplicația VeraCrypt este complet portabilă, adică aceasta nu trebuie să fie instalată sau înregistrată cu sistemul de operare). În plus, rețineți că VeraCrypt are nevoie de un driver pentru a furniza criptarea/decriptarea din mers în mod transparent.</string>
+ <string lang="ro" key="TRAVELER_UAC_NOTE">Rețineți că dacă decideți să lansați VeraCrypt în mod portabil (spre deosebire de executarea unei aplicații VeraCrypt instalată), sistemul vă va solicita permisiunea de a-l rula (solicitarea UAC) de fiecare dată când încercați să-l executați.\n\nMotivul este că, atunci când executați VeraCrypt în mod portabil, VeraCrypt are nevoie să încarce și să execute driver-ul unității VeraCrypt. VeraCrypt are nevoie de un driver de unitate pentru a furniza criptarea/decriptarea din mers în mod transparent, iar utilizatorii fără drepturi de administrator nu pot porni driver-e de unitate în Windows. Prin urmare, sistemul va solicita permisiunea de a lansa VeraCrypt cu privilegii de administrator (solicitarea UAC).\n\nRețineți că, dacă instalați VeraCrypt în sistem (spre deosebire de a lansa VeraCrypt în mod portabil), sistemul NU va solicita permisiunea de a lansa VeraCrypt (solicitarea UAC) de fiecare dată când încercați să-l lansați.\n\nSunteți sigur că doriți să extrageți fișierele ?</string>
+ <string lang="ro" key="CONTAINER_ADMIN_WARNING">Avertisment: Această instanță de Asistent creare volum are drepturi de administrator.\n\nNoul volum poate fi creat cu permisiuni care nu vă vor permite să scrieți în volum când va fi montat. Dacă doriți să evitați asta, închideți această instanță de Asistent de creare volum și lansați una nouă fără drepturi de administrator.\n\nDoriți să închideți această instanță a Asistentului de creare volum ?</string>
+ <string lang="ro" key="CANNOT_DISPLAY_LICENSE">Eroare: nu se poate afișa licența.</string>
+ <string lang="ro" key="OUTER_VOL_WRITE_PREVENTED">Extern(!)</string>
+ <string lang="ro" key="DAYS">zile</string>
+ <string lang="ro" key="HOURS">ore</string>
+ <string lang="ro" key="MINUTES">minute</string>
+ <string lang="ro" key="SECONDS">s</string>
+ <string lang="ro" key="OPEN">Deschide</string>
+ <string lang="ro" key="DISMOUNT">Demontare</string>
+ <string lang="ro" key="SHOW_TC">Afișare VeraCrypt</string>
+ <string lang="ro" key="HIDE_TC">Ascundere VeraCrypt</string>
+ <string lang="ro" key="TOTAL_DATA_READ">Date citite de la montare</string>
+ <string lang="ro" key="TOTAL_DATA_WRITTEN">Date scrise de la montare</string>
+ <string lang="ro" key="ENCRYPTED_PORTION">Porțiunea criptată</string>
+ <string lang="ro" key="ENCRYPTED_PORTION_FULLY_ENCRYPTED">100% (complet criptat)</string>
+ <string lang="ro" key="ENCRYPTED_PORTION_NOT_ENCRYPTED">0% (necriptat)</string>
+ <string lang="ro" key="PROCESSED_PORTION_X_PERCENT">%.3f%%</string>
+ <string lang="ro" key="PROCESSED_PORTION_100_PERCENT">100%</string>
+ <string lang="ro" key="PROGRESS_STATUS_WAITING">Așteptare</string>
+ <string lang="ro" key="PROGRESS_STATUS_PREPARING">Pregătire</string>
+ <string lang="ro" key="PROGRESS_STATUS_RESIZING">Redimensionare</string>
+ <string lang="ro" key="PROGRESS_STATUS_ENCRYPTING">Criptare</string>
+ <string lang="ro" key="PROGRESS_STATUS_DECRYPTING">Decriptare</string>
+ <string lang="ro" key="PROGRESS_STATUS_FINALIZING">Finalizare</string>
+ <string lang="ro" key="PROGRESS_STATUS_PAUSED">Oprit</string>
+ <string lang="ro" key="PROGRESS_STATUS_FINISHED">Finalizat</string>
+ <string lang="ro" key="PROGRESS_STATUS_ERROR">Eroare</string>
+ <string lang="ro" key="FAVORITE_DISCONNECTED_DEV">Unitate deconectată</string>
+ <string lang="ro" key="SYS_FAVORITE_VOLUMES_SAVED">Volum sistem favorit salvat.\n\nPentru a activa montarea volumelor sistem favorite când pornește sistemul, vă rugăm selectați 'Setări' > 'Volume sistem favorite' > 'Montare volume sistem favorite când pornește Windows'.</string>
+ <string lang="ro" key="FAVORITE_ADD_DRIVE_DEV_WARNING">Volumul pe care îl adăugați la favorite nu este nici o partiție, nici un volum dinamic. Prin urmare, VeraCrypt va fi incapabil să monteze acest volum favorit dacă numărul unității se modifică.</string>
+ <string lang="ro" key="FAVORITE_ADD_PARTITION_TYPE_WARNING">Volumul pe care îl adăugați la favorite este o partiție nerecunoscută de Windows.\n\nVeraCrypt va fi incapabil să monteze acest volum favorit dacă numărul unității se modifică. Vă rugăm setați tipul de partiție la un tip recunoscut de Windows (folosiți comanda SETID din programul Windows 'diskpart'). Apoi adăugați partiția la favorite din nou.</string>
+ <string lang="ro" key="FAVORITE_ARRIVAL_MOUNT_BACKGROUND_TASK_ERR">Pornirea VeraCrypt în fundal este dezactivată sau este configurat să se închidă când nu sunt volume montate (sau VeraCrypt este pornit în mod portabil). Aceasta poate împiedica ca volumele favorite să fie montate automat când unitățile care le găzduiesc sunt conectate.\n\nNotă: Pentru a activa Pornire VeraCrypt în fundal, selectați Setări > Preferințe și selectați caseta 'Activat' în secțiunea 'Pornire VeraCrypt în fundal'.</string>
+ <string lang="ro" key="FAVORITE_ARRIVAL_MOUNT_NETWORK_PATH_ERR">Un container stocat pe un sistem de fișiere la distanță, partajat într-o rețea, nu poate fi automat montat când este conectat discul gazdă.</string>
+ <string lang="ro" key="FAVORITE_ARRIVAL_MOUNT_DEVICE_PATH_ERR">Discul afișat mai jos nu este nici o partiție, nici un volum dinamic. Prin urmare, volumul găzduit pe disc nu poate fi automat montat când acesta este conectat.</string>
+ <string lang="ro" key="FAVORITE_ARRIVAL_MOUNT_PARTITION_TYPE_ERR">Vă rugăm setați tipul partiției afișată mai jos la un tip recunoscut de Windows (folosiți comanda SETID din programul Windows 'diskpart'). Apoi eliminați partiția din favorite și adăugați-o din nou. Aceasta va activa opțiunea ca volumul găzduit de disc să fie automat montat când acesta este conectat.</string>
+ <string lang="ro" key="FAVORITE_LABEL_DEVICE_PATH_ERR">Discul afișat mai jos nu este nici o partiție, nici un volum dinamic. Prin urmare, nu poate fi atribuită nici o etichetă.</string>
+ <string lang="ro" key="FAVORITE_LABEL_PARTITION_TYPE_ERR">Vă rugăm setați tipul partiției afișate mai jos la un tip recunoscut de Windows (folosiți comanda SETID din programul Windows 'diskpart'). Apoi eliminați partiția din favorite și adăugați-o din nou. Aceasta va permite ca VeraCrypt să atribuie o etichetă partiției.</string>
+ <string lang="ro" key="SYSTEM_FAVORITE_NETWORK_PATH_ERR">Datorită unei limitări din Windows, un container stocat pe un sistem de fișiere la distanță, partajat într-o rețea, nu poate fi montat ca volum sistem favorit (totuși, el poate fi montat ca volum favorit non-sistem când utilizatorul se autentifică).</string>
+ <string lang="ro" key="ENTER_PASSWORD_FOR">Introduceți parola pentru %s</string>
+ <string lang="ro" key="ENTER_PASSWORD_FOR_LABEL">Introduceți parola pentru '%s'</string>
+ <string lang="ro" key="ENTER_NORMAL_VOL_PASSWORD">Introduceți parola pentru volumul normal/extern</string>
+ <string lang="ro" key="ENTER_HIDDEN_VOL_PASSWORD">Introduceți parola pentru volumul ascuns</string>
+ <string lang="ro" key="ENTER_HEADER_BACKUP_PASSWORD">Introduceți parola pentru antetul stocat în fișierul de rezervă</string>
+ <string lang="ro" key="KEYFILE_CREATED">Fișierele-cheie au fost create cu succes.</string>
+ <string lang="ro" key="KEYFILE_INCORRECT_NUMBER">Numărul de fișiere-cheie furnizate este invalid.</string>
+ <string lang="ro" key="KEYFILE_INCORRECT_SIZE">Dimensiunea fișierului cheie trebuie cuprinsă între 64 și 1048576 octeți.</string>
+ <string lang="ro" key="KEYFILE_EMPTY_BASE_NAME">Introduceți un nume pentru fișierele-cheie ce vor fi generate</string>
+ <string lang="ro" key="KEYFILE_INVALID_BASE_NAME">Numele de bază a fișierelor cheie este invalid</string>
+ <string lang="ro" key="KEYFILE_ALREADY_EXISTS">Fișierul cheie '%s' deja există.\nDoriți să-l suprascrieți ? Procesul de generare va fi oprit dacă răspundeți nu.</string>
+ <string lang="ro" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">AVERTISMENT: Antetul acestui volum este distrus ! VeraCrypt folosește automat rezerva antetului volumului inclus în volum.\n\nAr trebui să reparați antetul volumului selectând 'Unelte' > 'Restaurare antet volum'.</string>
+ <string lang="ro" key="VOL_HEADER_BACKED_UP">Rezerva antetului volumului a fost creată cu succes.\n\nIMPORTANT: Restaurarea antetului volumului utilizând această rezervă va restaura și parola volumului curent. În plus, dacă au fost necesare fișiere-cheie pentru a monta volumul, aceleași fișiere-cheie vor fi necesare pentru a monta din nou volumul când antetul volumului va fi restaurat.\n\nATENȚIE: Acest antet volum de rezervă poate fi utilizat pentru a restaura antetul NUMAI pentru acest volum. Dacă utilizați acest antet de rezervă pentru a restaura un volum diferit, veți putea monta volumul, dar NU veți putea să decriptați datele stocate în volum (deoarece veți modifica cheia principală).</string>
+ <string lang="ro" key="VOL_HEADER_RESTORED">Antetul volumului a fost restaurat cu succes.\n\nIMPORTANT: Vă rugăm rețineți că o parolă veche ar fi putut fi restaurată de asemenea. În plus, dacă au fost/sunt necesare fișiere-cheie pentru a monta volumul când a fost efectuată rezerva, aceleași fișiere-cheie sunt și acum necesare pentru a monta volumul.</string>
+ <string lang="ro" key="EXTERNAL_VOL_HEADER_BAK_FIRST_INFO">Din motive de securitate, va trebui să introduceți parola corectă (și/sau să furnizați fișierele-cheie corecte) pentru volum.\n\nNotă: Dacă volumul conține un volum ascuns, va trebui să introduceți parola corectă (și/sau să furnizați fișierele-cheie corecte) pentru volumul exterior mai întâi. După aceea, dacă alegeți să faceți o copie de rezervă a antetului volumului ascuns, va trebui să introduceți parola corectă (și/sau să furnizați fișierele-cheie corecte) pentru volumul ascuns.</string>
+ <string lang="ro" key="CONFIRM_VOL_HEADER_BAK">Sunteți sigur că doriți să creați o copie de rezervă a antetului pentru volumul %s?\n\nDupă ce veți da clic pe Da, vi se va solicita numele fișierului copiei de rezervă a antetului.\n\nNotă: atât antetul volumului standard cât și cel al volumului ascuns va fi recriptat folosind o nouă cheie și stocat în fișierul de rezervă. Dacă nu există un volum ascuns în acest volum, zona rezervată pentru antetul volumului ascuns în fișierul rezervă va fi completată cu date aleatoare (pentru a păstra negarea plauzibilă). Când restaurați un antet de volum dintr-un fișier rezervă, va trebui să introduceți parola corectă (și/sau să furnizați fișierele-cheie corecte) care au fost valide când a fost creată copia de rezervă a antetului volumului. Parola (și/sau fișierele-cheie) va determina, de asemeni, tipul antetului volumului ce va fi restaurat, adică standard sau ascuns (rețineți că VeraCrypt determină tipul printr-un proces de încercări repetate de decriptare).</string>
+ <string lang="ro" key="CONFIRM_VOL_HEADER_RESTORE">Sunteți sigur că doriți să restaurați antetul pentru volumul %s?\n\nATENȚIE: Restaurând antetul volumului se reastaurează și parola volumului care a fost validă când s-a efectuat copia de rezervă. În plus, dacă au fost necesare fișiere-cheie pentru a monta volumul, aceleași fișiere-cheie vor fi necesare pentru a monta din nou volumul când antetul volumului va fi restaurat.\n\nDupă ce veți da clic pe Da, veți selecta fișierul de rezervă al antetului.</string>
+ <string lang="ro" key="DOES_VOLUME_CONTAIN_HIDDEN">Volumul conține un volum ascuns ?</string>
+ <string lang="ro" key="VOLUME_CONTAINS_HIDDEN">Volumul conține un volum ascuns</string>
+ <string lang="ro" key="VOLUME_DOES_NOT_CONTAIN_HIDDEN">Volumul nu conține un volum ascuns</string>
+ <string lang="ro" key="HEADER_RESTORE_EXTERNAL_INTERNAL">Vă rugăm selectați tipul antetului volumului de rezervă pe care doriți să-l utilizați:</string>
+ <string lang="ro" key="HEADER_RESTORE_INTERNAL">Restaurare antet volum din rezerva inclusă în volum</string>
+ <string lang="ro" key="HEADER_RESTORE_EXTERNAL">Restaurare antet volum dintr-un fișier de rezervă extern</string>
+ <string lang="ro" key="HEADER_BACKUP_SIZE_INCORRECT">Dimensiunea fișierului de rezervă a antetului volumului nu este corectă.</string>
+ <string lang="ro" key="VOLUME_HAS_NO_BACKUP_HEADER">Nu există antet de rezervă inclus în acest volum (rețineți că numai volumele create de VeraCrypt 6.0 sau ulterior conțin antete de rezervă incluse).</string>
+ <string lang="ro" key="BACKUP_HEADER_NOT_FOR_SYS_DEVICE">Încercați să faceți o copie de rezervă a antetului unei unități/partiții sistem. Aceasta nu este permis. Operațiile de creare rezervă/recuperare referitoare la unități/partiții sistem pot fi efectuate numai folosind Discul de Recuperare VeraCrypt.\n\nDoriți să creați un Disc de Recuperare VeraCrypt ?</string>
+ <string lang="ro" key="RESTORE_HEADER_NOT_FOR_SYS_DEVICE">Încercați să restaurați un antet a unui volum VeraCrypt virtual, dar ați selectat discul/partiția sistem. Aceasta nu este permis. Operațiile de creare rezervă/recuperare referitoare la unități/partiții sistem pot fi efectuate numai folosind Discul de Recuperare VeraCrypt.\n\nDoriți să creați un Disc de Recuperare VeraCrypt ?</string>
+ <string lang="ro" key="RESCUE_DISK_NON_WIZARD_CREATION_SELECT_PATH">După ce veți da clic pe OK, veți selecta un nume de fișier pentru imaginea noului Disc de Recuperare VeraCrypt și locația unde doriți să o plasați.</string>
+ <string lang="ro" key="RESCUE_DISK_NON_WIZARD_CREATION_BURN">Imaginea Discului de Recuperare a fost creată și stocată în acest fișier:\n%s\n\nAcum trebuie să scrieți imaginea discului de recuperare pe un CD sau DVD.\n\nIMPORTANT: rețineți că fișierul trebuie scris pe CD/DVD ca o imagine disc ISO (nu ca și un fișier individual). Pentru informații despre cum să faceți asta, vă rugăm consultați documentația programului de înregistrare pentru CD/DVD.\n\nDupă ce ați scris Discul de Recuperare, selectați 'Sistem' > 'Verificare disc de recuperare' pentru a verifica dacă a fost scris corect.</string>
+ <string lang="ro" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">Imaginea Discului de Recuperare a fost creată și stocată în acest fișier:\n%s\n\nAcum trebuie să scrieți imaginea discului de recuperare pe un CD sau DVD.\n\nDoriți să lansați acum Microsoft Windows Disc Image Burner ?\n\nNotă: După ce ați scris Discul de Recuperare, selectați 'Sistem' > 'Verificare disc de recuperare' pentru a verifica dacă a fost scris corect.</string>
+ <string lang="ro" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Introduceți Discul de Recuperare VeraCrypt și apoi dați clic pe OK pentru a fi verificat.</string>
+ <string lang="ro" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">Discul de Recuperare VeraCrypt a fost verificat cu succes.</string>
+ <string lang="ro" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Nu se poate verifica dacă Discul de Recuperare a fost scris corect.\n\nDacă ați scris Discul de Recuperare, scoteți-l și reintroduceți-l în CD/DVD; apoi încercați din nou. Dacă tot nu funcționează, încercați alt program de înregistrare CD/DVD și/sau alt mediu inscriptibil.\n\nDacă ați încercat să verificați un Disc de Recuperare VeraCrypt creat pentru o cheie principală diferită, parolă, etc., vă rugăm rețineți că un astfel de disc de recuperare va eșua întotdeauna această verificare. Pentru a crea un nou disc de recuperare complet compatibil cu configurația curentă, selectați 'Sistem' > 'Creare disc de recuperare'.</string>
+ <string lang="ro" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">Imaginea Discului de Recuperare VeraCrypt a fost verificată cu succes.</string>
+ <string lang="ro" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">Verificarea Discului de Recuperare VeraCrypt a eșuat.\n\nDacă ați încercat să verificați o imagine a unui Disc de Recuperare VeraCrypt creată pentru o cheie principală, parolă, salt, etc. diferite, țineți minte că astfel de imagine va eșua întotdeaunua la pasul de verificare. Pentru a crea o nouă imagine a Discului de Recuperare complet compatibilă cu configurația curentă, selectați 'Sistem' > 'Creare disc de recuperare'.</string>
+ <string lang="ro" key="ERROR_CREATING_RESCUE_DISK">Eroare creare Disc de Recuperare VeraCrypt.</string>
+ <string lang="ro" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">Discul de Recuperare VeraCrypt nu poate fi creat când sistemul de operare ascuns rulează.\n\nPentru a crea un Disc de Recuperare VeraCrypt, porniți sistemul de operare momeală și apoi selectați 'Sistem' > 'Creare disc de recuperare'.</string>
+ <string lang="ro" key="RESCUE_DISK_CHECK_FAILED">Nu se poate verifica dacă Discul de Recuperare a fost scris corect.\n\nDacă ați scris Discul de Recuperare, scoateți-l și reintroduceți-l în CD/DVD; apoi încercați din nou. Dacă tot nu funcționează, încercați alt program de înregistrare CD/DVD și/sau alt mediu inscriptibil%s.\n\nDacă nu ați scris încă Discul de Recuperare, vă rugăm să o faceți și apoi dați clic pe Înainte.\n\nDacă ați încercat să verificați un Disc de Recuperare VeraCrypt creat înainte de a porni acest asistent, rețineți că un astfel de disc de recuperare nu poate fi utilizat, deoarece a fost creat pentru o cheie principală diferită. Trebuie să inscripționați noul disc de recuperare generat.</string>
+ <string lang="ro" key="RESCUE_DISK_CHECK_FAILED_SENTENCE_APPENDIX"> și/sau alt program de inscripționare CD/DVD</string>
+ <string lang="ro" key="SYSTEM_FAVORITES_DLG_TITLE">VeraCrypt - Volume sistem favorite</string>
+ <string lang="ro" key="SYS_FAVORITES_HELP_LINK">Ce sunt volumele sistem favorite ?</string>
+ <string lang="ro" key="SYS_FAVORITES_REQUIRE_PBA">Discul/partiția sistem nu pare să fie criptată.\n\nVolumele sistem favorite pot fi montate folosind doar parola de autentificare la pornirea sistemului. Prin urmare, pentru a activa utilizarea volumelor sistem favorite, va trebui să criptați mai întâi partiția/discul.</string>
+ <string lang="ro" key="DISMOUNT_FIRST">Vă rugăm demontați volumul înainte de a continua.</string>
+ <string lang="ro" key="CANNOT_SET_TIMER">Eroare: Nu se poate seta timpul.</string>
+ <string lang="ro" key="IDPM_CHECK_FILESYS">Verificare sistem de fișiere</string>
+ <string lang="ro" key="IDPM_REPAIR_FILESYS">Reparare sistem de fișiere</string>
+ <string lang="ro" key="IDPM_ADD_TO_FAVORITES">Adăugare la favorite</string>
+ <string lang="ro" key="IDPM_ADD_TO_SYSTEM_FAVORITES">Adăugare la favorite sistem</string>
+ <string lang="ro" key="IDPM_PROPERTIES">P&amp;roprietăți</string>
+ <string lang="ro" key="HIDDEN_VOL_PROTECTION">Volum ascuns protejat</string>
+ <string lang="ro" key="NOT_APPLICABLE_OR_NOT_AVAILABLE">N/A</string>
+ <string lang="ro" key="UISTR_YES">Da</string>
+ <string lang="ro" key="UISTR_NO">Nu</string>
+ <string lang="ro" key="UISTR_DISABLED">Dezactivat</string>
+ <string lang="ro" key="DIGIT_ONE">1</string>
+ <string lang="ro" key="TWO_OR_MORE">2 sau mai multe</string>
+ <string lang="ro" key="MODE_OF_OPERATION">Mod de operare</string>
+ <string lang="ro" key="LABEL_ITEM">Etichetă: </string>
+ <string lang="ro" key="SIZE_ITEM">Mărime: </string>
+ <string lang="ro" key="PATH_ITEM">Cale: </string>
+ <string lang="ro" key="DRIVE_LETTER_ITEM">Literă disc: </string>
+ <string lang="ro" key="UNSUPPORTED_CHARS_IN_PWD">Eroare: Parola trebuie să conțină numai caractere ASCII.\n\nCaracterele non-ASCII în parolă pot face imposibilă montarea volumului când configurația sistemului se modifică.\n\nUrmătoarele caractere sunt permise:\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 { | } ~</string>
+ <string lang="ro" key="UNSUPPORTED_CHARS_IN_PWD_RECOM">Avertisment: Parola conține caractere non-ASCII. Aceasta poate cauza ca volumul să fie imposibil de montat când configurația sistemului este modificată.\n\nAr trebui să înlocuiți toate caracterele non-ASCII din parolă cu caractere ASCII. Pentru a face asta, clic pe 'Volume' -&gt; 'Schimbare parolă volum'.\n\nUrmătoarele caractere sunt 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 { | } ~</string>
+ <string lang="ro" key="EXE_FILE_EXTENSION_CONFIRM">AVERTISMENT: Vă recomandăm cu insistență să evitați extensiile de fișiere care sunt folosite pentru fișiere executabile (cum sunt .exe, .sys sau .dll) și alte extensii de fișiere problematice. Utilizând astfel de extensii de fișiere determină ca Windows și programele antivirus să interfereze cu containerul, afectând în mod negativ performanța volumului și putând cauza și alte probleme serioase.\n\nVă recomandăm cu insistență să eliminați extensia fișierului sau să o schimbați (de ex. în '.vc').\n\nSunteți sigur că doriți să utilizați extensia problematică ?</string>
+ <string lang="ro" key="EXE_FILE_EXTENSION_MOUNT_WARNING">AVERTISMENT: Acest container are o extensie de fișier care este folosită pentru fișiere executabile (cum sunt .exe, .sys sau .dll) sau alte extensii care sunt de asemeni problematice. Cel mai probabil va determina ca Windows și programele antivirus să interfereze cu containerul, afectând în mod negativ performanța volumului și putând cauza și alte probleme serioase.\n\nVă recomandăm cu insistență să eliminați extensia containerului sau să o schimbați (de ex. în '.vc') după ce demontați volumul.</string>
+ <string lang="ro" key="HOMEPAGE">Pagina web</string>
+ <string lang="ro" key="LARGE_IDE_WARNING_XP">AVERTISMENT: Se pare că nu ați aplicat nici un Service Pack la instalarea Windows. Nu ar trebui să scrieți pe discuri IDE mai mari de 128 GB în Windows XP la care nu ați adăugat Service Pack 1 sau ulterior! Dacă o faceți, datele de pe disc (indiferent dacă e un volum VeraCrypt sau nu) ar putea fi corupte. Rețineți că aceasta este o limitare a sistemului Windows, nu o eroare din VeraCrypt.</string>
+ <string lang="ro" key="LARGE_IDE_WARNING_2K">AVERTISMENT: Se pare că nu ați aplicat Service Pack 3 sau ulterior la instalarea Windows. Nu ar trebui să scrieți pe discuri IDE mai mari de 128 GB în Windows 2000 la care nu ați adăugat Service Pack 3 sau ulterior! Dacă o faceți, datele de pe disc (indiferent dacă e un volum VeraCrypt sau nu) ar putea fi corupte. Rețineți că aceasta este o limitare a sistemului Windows, nu o eroare din VeraCrypt.\n\nNotă: Ar trebui să activați suportul LBA 48-biți în regiștri; pentru mai multe informații, consultați http://support.microsoft.com/kb/305098/EN-US</string>
+ <string lang="ro" key="LARGE_IDE_WARNING_2K_REGISTRY">AVERTISMENT: suportul ATAPI LBA 48-biți este dezactivat în acest sistem. Prin urmare, nu ar trebui să scrieți pe discuri IDE mai mari 128 GB! Dacă o faceți, datele de pe disk (indiferent dacă e un volum VeraCrypt sau nu) ar putea fi corupte. Rețineți că aceasta este o limitare a sistemului Windows, nu o eroare din VeraCrypt.\n\nPentru a activa suportul LBA 48-biți, adăugați valoarea registrului 'EnableBigLba' în cheia registrului HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\atapi\\Parameters și setați-o la 1.\n\nPentru mai multe informații, consultați http://support.microsoft.com/kb/305098</string>
+ <string lang="ro" key="VOLUME_TOO_LARGE_FOR_FAT32">Eroare: Fișierele mai mari de 4 GB nu pot fi stocate pe sistem de fișiere FAT32. Prin urmare, volumele VeraCrypt amplasate în fișiere (containere) stocate pe sistem de fișiere FAT32 nu pot fi mai mari de 4 GB.\n\nDacă aveți nevoie de un volum mai mare, creați-l pe un sistem de fișiere NTFS (sau, dacă utilizați Windows Vista SP1 sau ulterior, pe un sistem de fișiere exFAT) sau, în loc să creați un volum tip fișier, criptați întreaga partiție sau disc.</string>
+ <string lang="ro" key="VOLUME_TOO_LARGE_FOR_WINXP">Avertisment: Windows XP nu suportă fișiere mai mari de 2048 GB (va raporta eroarea "Not enough storage is available"). Prin urmare, nu puteți crea un volum VeraCrypt tip fișier (container) mai mare de 2048 GB îm Windows XP.\n\nRețineți că încă e posibil să criptați întregul disc sau să creați un volum VeraCrypt tip-partiție mai mare de 2048 GB în Windows XP.</string>
+ <string lang="ro" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">AVERTISMENT: Dacă doriți să puteți adăuga mai multe date/fișiere pe volumul exterior în viitor, ar trebui să luați în considerare alegerea unei dimensiuni mai mici pentru volumul ascuns.\n\nSunteți sigur că doriți să continuați cu dimensiunea specificată ?</string>
+ <string lang="ro" key="NO_VOLUME_SELECTED">Nu ați selectat volumul.\n\nClic pe 'Selectare partiție' sau 'Selectare fișier' pentru a selecta un volum VeraCrypt.</string>
+ <string lang="ro" key="NO_SYSENC_PARTITION_SELECTED">Nu ați selectat partiția.\n\nClic pe 'Selectare partiție' pentru a selecta o partiție demontată care în mod normal necesită autentificare la pornire (de exemplu, o partiție localizată pe discul sistem criptat a unui alt sistem de operare, care nu rulează sau partiția sistem criptată a altui sistem de operare).\n\nNotă: Partiția selectată va fi montată ca și un volum normal VeraCrypt fără autentificare la pornire. Aceasta este util de ex. pentru operații de reparare sau creare copii de rezervă.</string>
+ <string lang="ro" key="CONFIRM_SAVE_DEFAULT_KEYFILES">AVERTISMENT: Dacă fișierele-cheie sunt setate și activate, volumele care nu folosesc aceste fișiere-cheie vor fi imposibil de montat. Prin urmare, după ce activați fișierele-cheie implicite, asigurați-vă că deselectați caseta 'Utilizare fișiere-cheie' (de sub câmpul de introducere a parolei) de fiecare dată când montați astfel de volume.\n\nSunteți sigur că doriți să salvați fișierele-cheie/căile selectate ca implicite ?</string>
+ <string lang="ro" key="HK_AUTOMOUNT_DEVICES">Automontare toate</string>
+ <string lang="ro" key="HK_DISMOUNT_ALL">Demontare toate</string>
+ <string lang="ro" key="HK_WIPE_CACHE">Golire memorie</string>
+ <string lang="ro" key="HK_DISMOUNT_ALL_AND_WIPE">Demontare toate &amp; Golire memorie</string>
+ <string lang="ro" key="HK_FORCE_DISMOUNT_ALL_AND_WIPE">Forțare demontare toate &amp; Golire memorie</string>
+ <string lang="ro" key="HK_FORCE_DISMOUNT_ALL_AND_WIPE_AND_EXIT">Forțare demontare toate, Golire memorie &amp; Ieșire</string>
+ <string lang="ro" key="HK_MOUNT_FAVORITE_VOLUMES">Montare volume favorite</string>
+ <string lang="ro" key="HK_SHOW_HIDE_MAIN_WINDOW">Afișare/Ascundere fereastră VeraCrypt</string>
+ <string lang="ro" key="PRESS_A_KEY_TO_ASSIGN">(Clic aici și apăsați o tastă)</string>
+ <string lang="ro" key="ACTION">Acțiune</string>
+ <string lang="ro" key="SHORTCUT">Scurtătură</string>
+ <string lang="ro" key="CANNOT_USE_RESERVED_KEY">Eroare: Această scurtătură este rezervată. Alegeți alta diferită.</string>
+ <string lang="ro" key="SHORTCUT_ALREADY_IN_USE">Eroare: Scurtătura este deja folosită.</string>
+ <string lang="ro" key="HOTKEY_REGISTRATION_ERROR">AVERTISMENT: Una sau mai multe scurtături VeraCrypt la nivel de sistem nu va funcționa!\n\nVă rugăm asigurați-vă că alte aplicații și sistemul de operare nu folosesc aceleași scurtături ca și VeraCrypt.</string>
+ <string lang="ro" key="PAGING_FILE_CREATION_PREVENTED">Crearea fișierului de paginare a fost împiedicată.\n\nVă rugăm rețineți că, datorită unor probleme din Windows, fișierele de paginare nu pot fi localizate pe volume VeraCrypt non-sistem (inclusiv volumele sistem favorite). VeraCrypt suportă crearea fișierelor de paginare numai pe o partiție/disc sistem criptată.</string>
+ <string lang="ro" key="SYS_ENC_HIBERNATION_PREVENTED">O eroare sau incompatibilitate a împiedicat VeraCrypt să cripteze fișierul de hibernare. Prin urmare, hibernarea a fost împiedicată.\n\nNotă: Când un calculator hibernează (sau intră în modul salvare-energie), conținutul memoriei sistemului este scris într-un fișier de hibernare localizat pe discul sistem. VeraCrypt nu va putea împiedica salvarea necriptată a cheilor de criptare și a conținutului fișierelor senzitive din memoria RAM în fișierul de hibernare.</string>
+ <string lang="ro" key="HIDDEN_OS_HIBERNATION_PREVENTED">Hibernarea a fost împiedicată.\n\nVeraCrypt nu suportă hibernarea sistemelor de operare ascunse care folosesc o partiție suplimentară de pornire. Rețineți că partiția de pornire este partajată atât de sistemul momeală cât și de cel ascuns. Prin urmare, pentru a preveni scurgerile de date și problemele la revenirea din hibernare, VeraCrypt trebuie să împiedice sistemul ascuns să scrie în partiția de pornire partajată și să hiberneze.</string>
+ <string lang="ro" key="VOLUME_MOUNTED_AS_DRIVE_LETTER_X_DISMOUNTED">Volumul VeraCrypt montat ca %c: a fost demontat.</string>
+ <string lang="ro" key="MOUNTED_VOLUMES_DISMOUNTED">Volumele VeraCrypt au fost demontate.</string>
+ <string lang="ro" key="VOLUMES_DISMOUNTED_CACHE_WIPED">Volumele VeraCrypt au fost demontate și parola memorată a fost eliminată.</string>
+ <string lang="ro" key="SUCCESSFULLY_DISMOUNTED">Demontare reușită.</string>
+ <string lang="ro" key="CONFIRM_BACKGROUND_TASK_DISABLED">AVERTISMENT: Dacă este dezactivată opțiunea Pornire VeraCrypt în fundal, vor fi dezactivate următoarele funcții:\n\n1) Scurtăturile\n2) Autodemontarea (de ex. după deautentificare, eliminarea bruscă a unităților gazdă, expirare timp, etc.)\n3) Automontare toate favorite\n4) Notificări (de ex., când este împiedicată distrugerea volumelor ascunse)\n5) Pictograma sistem\n\nNotă: Puteți opri programul din fundal oricând, dând clic-dreapta pe pictograma sistem VeraCrypt și selectând 'Ieșire'.\n\nSunteți sigur că doriți să dezactivați permanent Pornire VeraCrypt în fundal ?</string>
+ <string lang="ro" key="CONFIRM_NO_FORCED_AUTODISMOUNT">AVERTISMENT: Dacă această opțiune este dezactivată, volumele conținând fișiere/foldere deschise NU vor putea fi autodemontate.\n\nSunteți sigur că doriți să dezactivați această opțiune ?</string>
+ <string lang="ro" key="WARN_PREF_AUTO_DISMOUNT">AVERTISMENT: Volumele conținând fișiere/foldere deschise NU vor putea fi autodemontate.\n\nPentru a împiedica aceasta, activați următoarele opțiuni din această fereastră: 'Forțare autodemontare chiar dacă volumul conține fișiere sau foldere deschise'</string>
+ <string lang="ro" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">AVERTISMENT: Când bateria sistemului este redusă, Windows poate omite trimiterea mesajelor potrivite pentru executarea aplicațiilor când computerul intră în modul de salvare a energiei. Prin urmare, VeraCrypt poate eșua autodemontarea volumelor în astfel de cazuri.</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_RESUME_PROMPT">Ați programat procesul de criptare a partiției/volumului. Procesul nu a fost încă completat.\n\nDoriți să reluați procesul acum ?</string>
+ <string lang="ro" key="SYSTEM_ENCRYPTION_RESUME_PROMPT">Ați programat procesul de criptare sau decriptare a partiției/discului sistem. Procesul nu a fost încă completat.\n\nDoriți să porniți (reluați) procesul acum ?</string>
+ <string lang="ro" key="ASK_NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL">Doriți să vi se solicite dacă doriți să reluați procesul programat de criptare a partițiilor/volumelor non-sistem ?</string>
+ <string lang="ro" key="KEEP_PROMPTING_ME">Da, continuă să mă întrebi</string>
+ <string lang="ro" key="DO_NOT_PROMPT_ME">Nu, nu mă mai întreba</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">IMPORTANT: Rețineți că puteți relua procesul de criptare a oricărei partiții/volum non-sistem selectând: 'Volume' &gt; 'Reluare proces întrerupt' din bara de meniu a ferestrei principale VeraCrypt.</string>
+ <string lang="ro" key="SYSTEM_ENCRYPTION_SCHEDULED_BUT_PBA_FAILED">Ați programat procesul de criptare sau decriptare a partiției/discului sistem. Totuși, autentificarea la pornire a eșuat (sau a fost evitată).\n\nNotă: Dacă ați decriptat partiția/discul sistem în mediul de autentificare la pornire, va trebui să finalizați procesul selectând 'Sistem' &gt; 'Decriptare permanentă partiție/disc sistem' din bara de meniu a ferestrei principale VeraCrypt.</string>
+ <string lang="ro" key="CONFIRM_EXIT">AVERTISMENT: Dacă VeraCrypt se închide acum, următoarele funcții vor fi dezactivate:\n\n1) Scurtăturile\n2) Autodemontarea (de ex. după reuatentificare, eliminarea bruscă a unității gazdă, expirare timp, etc.)\n3) Automontare toate favorite\n4) Notificări (de ex., când este împiedicată distrugerea volumelor ascunse)\n\nNotă: Dacă nu doriți ca VeraCrypt să ruleze în fundal, dezactivați opțiunea 'Pornire VeraCrypt în fundal' din Preferințe (și, dacă e necesar, dezactivați 'Pornire VeraCrypt în fundal' din secțiunea 'Acțiuni de executat după intrarea în Windows', din fereastra de Preferințe).\n\nSunteți sigur că doriți să închideți VeraCrypt ?</string>
+ <string lang="ro" key="CONFIRM_EXIT_UNIVERSAL">Ieșire ?</string>
+ <string lang="ro" key="CHOOSE_ENCRYPT_OR_DECRYPT">VeraCrypt nu are destule informații pentru a decide dacă trebuie să cripteze sau să decripteze.</string>
+ <string lang="ro" key="CHOOSE_ENCRYPT_OR_DECRYPT_FINALIZE_DECRYPT_NOTE">VeraCrypt nu are destule informații pentru a decide dacă trebuie să cripteze sau să decripteze.\n\nNotă: Dacă ați decriptat partiția/discul sistem în mediul de autentificare la pornire, ar trebui să finalizați procesul dând clic pe Decriptare.</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_REVERSE_INFO">Notă: Când criptați o partiție/volum non-sistem din mers și o eroare persistentă vă împiedică să finalizați procesul, nu veți putea să montați volumul (și să accesați datele de pe el) până când nu îl veți DECRIPTA în totalitate (adică să inversați procesul).\n\nDacă va trebui să faceți asta, executați pașii următori:\n1) Ieșiți din acest asistent.\n2) În fereastra principală a VeraCrypt, selecta 'Volume' &gt; 'Reluare proces întrerupt'.\n3) Selectați 'Decriptare'.</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_DEFER_CONFIRM">Doriți să întrerupeți și să amânați procesul de criptare a partiției/volumului ?\n\nNotă: Rețineți că volumul nu va putea fi montat până la finalizarea criptării complete a acestuia. Veți putea relua procesul de criptare care va continua de la punctul de unde a fost întrerupt. Veți putea face asta, de exemplu, selectând 'Volume' &gt; 'Reluare proces întrerupt' din bara de meniu a ferestrei VeraCrypt.</string>
+ <string lang="ro" key="SYSTEM_ENCRYPTION_DEFER_CONFIRM">Doriți să întrerupeți și să amânați procesul de criptare a partiției/discului sistem ?\n\nNotă: Veți putea relua procesul care va continua de la punctul de unde a fost întrerupt. Veți putea face asta, de exemplu, selectând 'Sistem' &gt; 'Reluare proces întrerupt' din bara de meniu a ferestrei VeraCrypt. Dacă doriți să opriți permanent criptarea sau să reveniți la starea inițială, selectați 'Sistem' &gt; 'Decriptare permanentă partiție/disc sistem'.</string>
+ <string lang="ro" key="SYSTEM_DECRYPTION_DEFER_CONFIRM">Doriți să întrerupeți și să amânați procesul de decriptare a partiției/discului sistem ?\n\nNotă: Veți putea relua procesul care va continua de la punctul de unde a fost întrerupt. Veți putea face asta, de exemplu, selectând 'Sistem' &gt; 'Reluare proces întrerupt' din bara de meniu a ferestrei VeraCrypt. Dacă doriți să inversați procesul de decriptare (și să înceapă criptarea), selectați 'Sistem' &gt; 'Criptare partiție/disc sistem'.</string>
+ <string lang="ro" key="FAILED_TO_INTERRUPT_SYSTEM_ENCRYPTION">Eroare: Eșuare întrerupere proces de criptare/decriptare a partiției/discului sistem.</string>
+ <string lang="ro" key="FAILED_TO_INTERRUPT_WIPING">Eroare: Eșuare întrerupere proces de ștergere.</string>
+ <string lang="ro" key="FAILED_TO_RESUME_SYSTEM_ENCRYPTION">Eroare: Eșuare reluare proces de criptare/decriptare a partiției/discului sistem.</string>
+ <string lang="ro" key="FAILED_TO_START_WIPING">Eroare: Eșuare începere proces de ștergere.</string>
+ <string lang="ro" key="INCONSISTENCY_RESOLVED">Inconsistență rezolvată.\n\n\n(Dacă raportați o eroare în legătură cu aceasta, vă rugăm includeți următoarele informații tehnice în raportul de erori:\n%hs)</string>
+ <string lang="ro" key="UNEXPECTED_STATE">Eroare: Stare neașteptată.\n\n\n(Dacă raportați o eroare în legătură cu aceasta, vă rugăm includeți următoarele informații tehnice în raportul de erori:\n%hs)</string>
+ <string lang="ro" key="NO_SYS_ENC_PROCESS_TO_RESUME">Nu există nici un proces întrerupt de criptare/decriptarea a partiției/unității sistem de reluat.\n\nNotă: Dacă doriți să reluați un proces întrerupt de criptare/decriptare a unei partiții/volum non-sistem, selectați 'Volume' &gt; 'Reluare proces întrerupt'.</string>
+ <string lang="ro" key="HIDVOL_PROT_BKG_TASK_WARNING">AVERTISMENT: Pornirea în fundal VeraCrypt este dezactivată. După ce veți închide VeraCrypt, nu veți fi notificat dacă a fost prevenită distrugerea volumului ascuns.\n\nNotă: Puteți opri programul din fundal oricând dând clic-dreapta pe pictograma VeraCrypt din zona sistem și selectând 'Ieșire'.\n\nActivați pornirea în fundal VeraCrypt ?</string>
+ <string lang="ro" key="LANG_PACK_VERSION">Versiune pachet lingvistic: %s</string>
+ <string lang="ro" key="CHECKING_FS">Verificare sistem de fișiere de pe volumul VeraCrypt montat ca %s...</string>
+ <string lang="ro" key="REPAIRING_FS">Încercare reparare sistem de fișiere de pe volumul VeraCrypt montat ca %s...</string>
+ <string lang="ro" key="WARN_64_BIT_BLOCK_CIPHER">Avertisment: Acest volum este criptat cu un algoritm cu bloc de 64 biți.\n\nToți algoritmii de criptare cu blocuri de 64 biți (de ex., Blowfish, CAST-128, sau Triple DES) sunt dezaprobați. Va fi posibilă montarea acestui volum utilizând versiuni viitoare ale VeraCrypt. Totuși, nu vor fi îmbunătățiri ale implementărilor acestor algoritmi de criptare depășiți. Vă recomandăm să creați un volum criptat VeraCrypt cu un algoritm cu bloc de 128 biți (de ex., AES, Serpent, Twofish, etc.) și să mutați toate fișierele de pe acest volum pe noul volum creat.</string>
+ <string lang="ro" key="SYS_AUTOMOUNT_DISABLED">Acest sistem nu este configurat să monteze automat noile volume. Ar putea fi imposibilă montarea volumelor VeraCrypt amplasate pe unități. Automontarea poate fi activată prin executarea următoarei comenzi și repornirea sistemului.\n\nmountvol.exe /E</string>
+ <string lang="ro" key="SYS_ASSIGN_DRIVE_LETTER">Vă rugăm atribuiți o literă de volum partiției/discului înainte de a continua ('Control Panel' > 'System and Maintenance' > 'Administrative Tools' - 'Create and format hard disk partitions').\n\nRețineți că este o cerință a sistemului de operare.</string>
+ <string lang="ro" key="MOUNT_TC_VOLUME">Montare volum VeraCrypt</string>
+ <string lang="ro" key="DISMOUNT_ALL_TC_VOLUMES">Demontare toate volumele VeraCrypt</string>
+ <string lang="ro" key="UAC_INIT_ERROR">VeraCrypt a eșuat în obținerea drepturilor de administrator.</string>
+ <string lang="ro" key="ERR_ACCESS_DENIED">Accesul a fost refuzat de sistemul de operare.\n\nPosibile cauze: Sistemul de operare trebuie să aibe drepturi de citire/scriere (sau drepturi de administrator) pentru anumite foldere, fișiere sau unități, pentru a vă putea permite să citiți și să scrieți date în/din ele. În mod normal, un utilizator fără drepturi de administrare are dreptul de a crea, citi și modifica fișiere în folderul său de Documente.</string>
+ <string lang="ro" key="SECTOR_SIZE_UNSUPPORTED">Eroare: Discul utilizează o dimensiune a sectoarelor nesuportate.\n\nÎn acest moment nu este posibilă crearea volumelor amplasate pe partiții/unități pe discuri care au sectoare mai mari de 4096 octeți. Totuși, rețineți că puteți crea volume amplasate în fișiere (containere) pe astfel de unități.</string>
+ <string lang="ro" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">În acest moment nu este posibilă criptarea sistemului instalat pe un disc care are altă dimensiune a sectoarelor decât 512 octeți.</string>
+ <string lang="ro" key="NO_SPACE_FOR_BOOT_LOADER">Programul de pornire VeraCrypt necesită cel puțin 32 KB de spațiu liber la începutul unității sistem (Programul de pornire VeraCrypt trebuie să fie stocat acolo). Din păcate, acest disc nu îndeplinește această condiție.\n\nVă rugăm NU raportați aceasta ca o eroare/problemă în VeraCrypt. Pentru a rezolva această problemă, va trebui să repartiționați discul și lăsați primii 32 KB ca spațiu liber (în multe cazuri, va trebui să ștergeți și să recreați prima partiție). Vă recomandăm să utilizați managerul de partiții Microsoft care este disponibil, de ex., când instalați Windows.</string>
+ <string lang="ro" key="FEATURE_UNSUPPORTED_ON_CURRENT_OS">Funcția nu este suportată în versiunea curentă a sistemului de operare.</string>
+ <string lang="ro" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">VeraCrypt nu suportă criptarea partiției/discului sistem în această versiune de sistem de operare.</string>
+ <string lang="ro" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Înainte de a putea cripta partiția/discul sistem în Windows Vista, trebuie să instalați Service Pack 1 sau ulterior pentru Windows Vista (nu s-au instalat astfel de Service Pack-uri în acest sistem).\n\nNotă: Service Pack 1 pentru Windows Vista a rezolvat o problemă care cauza o reducere a memoriei de bază libere la pornirea sistemului.</string>
+ <string lang="ro" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt nu mai suportă criptarea partiției/discului sistem în Windows Vista fără nici un Service Pack instalat. Înainte de a actualiza VeraCrypt, vă rugăm instalați Service Pack 1 sau ulterior pentru Windows Vista.</string>
+ <string lang="ro" key="FEATURE_REQUIRES_INSTALLATION">Eroare: Această funcție necesită ca VeraCrypt să fie instalat în sistem (acum executați VeraCrypt în mod portabil).\n\nVă rugăm instalați VeraCrypt și apoi încercați din nou.</string>
+ <string lang="ro" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">AVERTISMENT: Windows nu pare să fie instalat pe discul de pe care pornește. Această configurație nu este suportată.\n\nAr trebui să continuați numai dacă sunteți sigur că Windows este instalat pe discul de pe care pornește.\n\nDoriți să continuați ?</string>
+ <string lang="ro" key="TC_BOOT_LOADER_ALREADY_INSTALLED">CAUTION: Programul de pornire VeraCrypt este deja instalat pe discul sistem !\n\nEste posibil ca alt sistem din calculator să fie deja criptat.\n\nATENȚIE: CONTINUÂND CU CRIPTAREA SISTEMULUI CE RULEAZĂ ACUM AR PUTEA FACE IMPOSIBILĂA PORNIREA CELUILALT SISTEM SAU SISTEME ȘI DATELE ASOCIATE INACCESIBILE.\n\nSunteți sigur că doriți să continuați ?</string>
+ <string lang="ro" key="SYS_LOADER_RESTORE_FAILED">Eșuare restaurare program original încărcare sistem.\n\nVă rugăm utilizați Discul de Recuperare VeraCrypt ('Repair Options' > 'Restore original system loader') sau mediul de instalare Windows pentru a înlocui programul de încărcare VeraCrypt cu programul de încărcare Windows.</string>
+ <string lang="ro" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">Programul original de încărcare a sistemului nu va fi stocat pe Discul de restaurare (cauza probabilă: lipsește fișierul de rezervă).</string>
+ <string lang="ro" key="ERROR_MBR_PROTECTED">Eșuare scriere în sectorul MBR.\n\nProgramul BIOS ar putea fi configurat să protejeze sectorul MBR. Verificați setările din BIOS (apăsați F2, Delete sau Esc, după pornirea computerului) pentru protecția MBR/antivirus.</string>
+ <string lang="ro" key="BOOT_LOADER_FINGERPRINT_CHECK_FAILED">ATENȚIE: Verificarea amprentei programului de pornire VeraCrypt a eșuat !\nDiscul ar putea să fie modificat de un atacator (atacul "Servitoarei rele").\n\nAcest avertisment poate fi declanșat de asemeni dacă ați restaurat programul de pornire VeraCrypt folosind un Disc de recuperare generat de o versiune diferită VeraCrypt.\n\nEste recomandată schimbarea imediată a parolei ceea ce va reface versiunea corectă a programului de pornire VeraCrypt. Este recomandată reinstalarea VeraCrypt și luarea măsurilor de împiedicare a accesului la acest sistem a persoanelor de neîncredere.</string>
+ <string lang="ro" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">Versiunea programului de pornire VeraCrypt solicitată nu este instalată. Aceasta poate împiedica salvarea anumitor setări.</string>
+ <string lang="ro" key="CUSTOM_BOOT_LOADER_MESSAGE_HELP">Notă: În anumite situații, veți dori ca să împiedicați o persoană (adversară) care vă observă când porniți calculatorul să știe că folosiți VeraCrypt. Opțiunea de mai sus vă permite acest lucru prin opțiunea de personalizare a ecranului de pornire. Dacă activați prima opțiune, nu va fi afișat nici un fel de text de către programul de pornire (nici chiar când introduceți parola greșită). Calculatorul va părea că este "înghețat" în timp ce introduceți parola. În plus, un mesaj personal poate fi afișat pentru a induce în eroare adversarul. De exemplu, mesaje de eroare ca "Missing operating system" (care este în mod normal afișat de către programul de pornire Windows dacă nu găsește o partiție de pornire Windows). Este, totuși, important de notat că dacă adversarul poate analiza conținutul discului, el va putea afla că acesta conține programul de pornire VeraCrypt.</string>
+ <string lang="ro" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">AVERTISMENT: Vă rugăm rețineți că dacă activați această opțiune, programul de pornire VeraCrypt nu va afișa nici un text (nici chiar când introduceți parola greșită). Calculatorul va părea că este "înghețat" (nu răspunde) în timp ce introduceți parola (cursorul NU se va muta, nu vor apărea steluțe când tastați).\n\nSunteți sigur că doriți să activați această opțiune ?</string>
+ <string lang="ro" key="SYS_PARTITION_OR_DRIVE_APPEARS_FULLY_ENCRYPTED">Această partiție/disc pare să fie complet criptată.</string>
+ <string lang="ro" key="SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK">VeraCrypt nu suportă criptarea nui disc sistem care a fost convertit în disc dinamic.</string>
+ <string lang="ro" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">Discul sistem conține partiții extinse (logice).\n\nPuteți cripta un întreg disc sistem conținând partiții extinse (logice) numai pe Windows Vista și versiuni ulterioare de Windows. În Windows XP, puteți cripta un întreg disc sistem cu condiția să conțină numai partiții primare.\n\nNotă: În schimb, puteți cripta partiția sistem în loc de întregul disc sistem (și, în plus, puteți crea volume VeraCrypt amplasate pe partiții pe orice partiție non-sistem de pe disc).</string>
+ <string lang="ro" key="WDE_EXTENDED_PARTITIONS_WARNING">AVERTISMENT: Deoarece acum rulați Windows XP/2003, după ce veți începe criptarea unității, va trebui să NU mai creați partiții extinse (logice) pe aceasta (veți putea crea numai partiții primare). Orice partiție extinsă (logică) de pe disc va fi inaccesibiă după ce începeți criptarea (discul nu conține momentan nici o astfel de partiție).\n\nNotă: Dacă această limitare nu este acceptabilă, puteți să reveniți și să alegeți să criptați numai partiția sistem în loc de întregul disc (și, în plus, puteți crea volume VeraCrypt amplasate pe partiții pe orice partiție non-sistem de pe disc).\n\nAlternativ, dacă această limitare nu este acceptabilă, puteți lua în considerare actualizarea la Windows Vista sau o versiune ulterioară de Windows (puteți cripta un întreg disc sistem conținând partiții extinse/logice numai în Windows Vista sau ulterior).</string>
+ <string lang="ro" key="SYSDRIVE_NON_STANDARD_PARTITIONS">Acest disc sistem conține o partiție non/standard.\n\nDacă nu folosiți un calculator portabil, discul sistem probabil conține o partiție specială de recuperare. După ce întreagul disc sistem este criptat (inclusiv orice partiție de recuperare), sistemul ar putea să nu mai pornească dacă calculatorul folosesște un BIOS proiectat necorespunzător. Va fi de altfel imposibil să accesați partiția de recuperare până când discul sistem nu este decriptat. Prin urmare, vă recomandăm să criptați numai partiția sistem.</string>
+ <string lang="ro" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Doriți să criptați partiția sistem în loc de întregul disc ?\n\nRețineți că, puteți crea volume VeraCrypt amplasate pe partiții pe orice partiție non-sistem de pe disc (pe lângă criptarea partiției sistem).</string>
+ <string lang="ro" key="WHOLE_SYC_DEVICE_RECOM">Deoarece discul sistem conține numai o partiție care ocupă întregul disc, este de preferat (mult mai sigur) să criptați întregul disc, inclusiv spațiul liber care, de obicei, înconjoară o astfel de partiție.\n\nDoriți să criptați întregul disc sistem ?</string>
+ <string lang="ro" key="TEMP_NOT_ON_SYS_PARTITION">Acest sistem este configurat să stocheze fișierele temporare pe o partiție non-sistem.\n\nFișierele temporare pot fi stocate numai pe partiția sistem.</string>
+ <string lang="ro" key="USER_PROFILE_NOT_ON_SYS_PARTITION">Fișierele profilelor utilizatorilor nu sunt stocate pe partiția sistem.\n\nFișierele profilelor utilizatorilor pot fi stocate numai pe partiția sistem.</string>
+ <string lang="ro" key="PAGING_FILE_NOT_ON_SYS_PARTITION">Există un fișier sau fișiere de paginare pe partiții non-sistem.\n\nFișierele de paginare pot fi stocate numai pe partiția sistem.</string>
+ <string lang="ro" key="RESTRICT_PAGING_FILES_TO_SYS_PARTITION">Doriți să configurați Windows să creeze un fișier de paginare numai pe partiția sistem acum ?\n\nRețineți că dacă dați clic pe 'Da', calculatorul va fi repornit. Apoi porniți VeraCrypt și încercați să creați sistemul ascuns din nou.</string>
+ <string lang="ro" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> Altfel, negarea plauzibilă a sistemului de operare ascuns poate fi serios afectată.\n\nNotă: Dacă un adversar analizează conținutul unor astfel de fișiere (amplasate pe o partiție non-sistem), ar putea afla că ați utilizat acest asistent în modul de creare sistem ascuns (care ar putea indica existența unui sistem de operare ascuns în calculator). În plus, rețineți că astfel de fișiere stocate pe partiția sistem vor fi șterse în sigurață de către VeraCrypt în timpul procesului de creare a sistemului de operare ascuns.</string>
+ <string lang="ro" key="DECOY_OS_REINSTALL_WARNING">AVERTISMENT: În timpul procesului de creare a sistemului de operare ascuns, va trebui să reinstalați sistemul de operare curent (pentru a crea în siguranță un sistem momeală).\n\nNotă: Sistemul de operare ce rulează acum și întreg conținutul partiției sistem va fi copiat pe volumul ascuns (pentru a crea sistemul ascuns).\n\n\nSunteți sigur că veți putea instala din nou Windows folosind un mediu de instalare Windows (sau folosind o partiție cu copia de rezervă)?</string>
+ <string lang="ro" key="DECOY_OS_REQUIREMENTS">Din motive de securitate, dacă sistemul de operare curent necesită activarea, ar trebui activat înainte de a continua. Rețineți că sistemul de operare ascuns va fi creat prin copierea conținutului partiției sistem într-un volum ascuns (astfel că, dacă acest sistem de operare nu este activat, atunci nici sistemul de operare ascuns nu va fi activat). Pentru mai multe infomații, consultați secțiunea "Security Requirements and Precautions Pertaining to Hidden Volumes" în Ghidul de utilizare VeraCrypt.\n\nImportant: Înainte de a continua, vă rugăm să fiți siguri că ați citit secțiunea "Security Requirements and Precautions Pertaining to Hidden Volumes" din Ghidul de utilizare VeraCrypt.\n\n\nSistemul de operare curent îndeplinește condiția amintită mai sus ?</string>
+ <string lang="ro" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Acest sistem folosește o partiție suplimenatră pentru pornire. VeraCrypt nu suportă hibernarea pe sistemele de operare ascunse care folosesc o partiție suplimetară pentru pornire (sistemele momeală pot intra in hibernare fără probleme).\n\nReține că, partiția de pornire va fi partajată atât pentru sistemul momeală cât și pentru cel ascuns. Prin urmare, pentru a împiedica scurgerile de date și probleme la revenirea din hibernare, VeraCrypt trebuie să împiedice sistemul ascuns să scrie în partiția de pornire partajată și să intre în hibernare.\n\n\nDoriți să continuați ? Dacă selectați 'Nu', vor fi afișate instrucțiuni pentru eliminarea partiției de pornire suplimentare.</string>
+ <string lang="ro" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nPartiția de pornire suplimentară poate fi ștearsă înainte de instalarea Windows. Pentru aceasta, executați pașii următori: \n\n1) Porniți discul de instalare Windows.\n\n2) În ecranul de instalare Windows, clic pe 'Install now' > 'Custom (advanced)'.\n\n3) Clic pe 'Drive Options'.\n\n4) Selectați partiția sistemului principal și ștergeți-o dând clic pe 'Delete' și apoi 'OK'.\n\n5) Selectați partiția 'System Reserved', clic pe 'Extend' și creșteți dimensiunea acesteia astfel încât să se poată instala sistemul de operare pe ea.\n\n6) Clic pe 'Apply' și apoi 'OK'.\n\n7) Instalați Windows pe partiția 'System Reserved'.\n\n\nDacă un atacator v-ar întreba de ce ați șters partiția suplimentară de pornire, ați putea raspunde că ați vrut să împiedicați orice scurgere de date posibilă la partiția de pornire necriptată.\n\nNotă: Puteți tipări acest text dând clic pe butonul 'Tipărire' de mai jos. Dacă ați salvat o copie a acestui text sau l-ați tipărit (ceea ce vă recomandăm cu insistență, cu excepția cazului în care imprimanta stochează copiile documentelor tipărite pe un hard disc intern), ar trebui să distrugeți orice copie a sa după ștergerea partiției suplimentare (altfel, dacă o astfel de copie este găsită, ar putea da indicii că există un sistem de operare ascuns pe acest calculator).</string>
+ <string lang="ro" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Avertisment: Există spațiu nealocat între partiția sistem și prima partiție de după aceasta. După ce veți crea sistemul de operare ascuns, nu ar trebui să mai creați vreo partiție în acel spațiu nealocat. Altfel, sistemul de operare ascuns nu va putea să pornească (până când veți șterge noua partiție astfel creată).</string>
+ <string lang="ro" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Acest algoritm nu este momentan suportat pentru criptarea partiției sistem.</string>
+ <string lang="ro" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Acest algoritm nu este suportat pentru modul TrueCrypt.</string>
+ <string lang="ro" key="PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">MIP (Multiplicator Iterații Personal) nu este suportat în modul TrueCrypt.</string>
+ <string lang="ro" key="PIM_REQUIRE_LONG_PASSWORD">Parola trebuie să conțină 20 sau mai multe caractere pentru a putea folosi valoarea MIP specificată.\nParolele mai scurte pot fi folosite doar dacă MIP este 485 sau mai mare.</string>
+ <string lang="ro" key="BOOT_PIM_REQUIRE_LONG_PASSWORD">Parola de autentificare la pornire trebuie să conțină 20 sau mai multe caractere pentru a putea folosi valoarea MIP specificată.\nParolele mai scurte pot fi folosite doar dacă MIP este 98 sau mai mare.</string>
+ <string lang="ro" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Fișierele-cheie nu sunt momentan suportate pentru criptarea partiției sistem.</string>
+ <string lang="ro" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Avertisment: VeraCrypt nu a putut restaura formatul original al tastaturii. Aceasta au putea determina introducerea greșită a parolei.</string>
+ <string lang="ro" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Eroare: Nu se poate seta formatul de tastatură la standardul US pentru VeraCrypt.\n\nRețineți că parola trebuie introdusă în programul mediului de pornire (înainte de a porni Windows) unde formatele de tastaturi non-US Windows nu sunt disponibile. Prin urmare, parola trebuie introdusă întotdeauna folosind formatul de tastatură standard US.</string>
+ <string lang="ro" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">Deoarece VeraCrypt a schimbat temporar formatul tastaturii la cel standard US, nu este posibilă introducerea caracterelor în combinație cu tasta Alt din dreapta ținută apăsată. Totuși, puteți introduce majoritatea caracterelor cu tasta Shift apăsată.</string>
+ <string lang="ro" key="KEYB_LAYOUT_CHANGE_PREVENTED">VeraCrypt a împiedicat schimbarea formatului tastaturii.</string>
+ <string lang="ro" key="KEYB_LAYOUT_SYS_ENC_EXPLANATION">Notă: Parola va trebui introdusă în programul mediului de pornire (înainte de a porni Windows) unde formatele de tastaturi non-US Windows nu sunt disponibile. Prin urmare, parola trebuie introdusă întotdeauna folosind formatul de tastatură standard US . Totuși, e important de știut că nu aveți nevoie de o tastatură standard US reală. VeraCrypt se va asigura automat că introduceți în siguranță parola (chiar acum în programul mediului de pornire) chiar dacă NU aveți o tastatură reală în format US.</string>
+ <string lang="ro" key="RESCUE_DISK_INFO">Înainte de a putea cripta partiția/discul, trebuie să creați un Disc de Recuperare VeraCrypt (DRV), care deservește următoarelor scopuri:\n\n- Dacă programul de încărcare VeraCrypt, cheia principală sau alte date critice sunt distruse, DRV vă permite să-l refaceți (rețineți că, totuși, va trebui să introduceți parola corectă pentru această operație).\n\n- Dacă Windows este afectat și nu mai poate porni, DRV vă permite să decriptați permanent partiția/discul înainte de a porni Windows.\n\n- DRV va conține o copie de rezervă a conținutului actual al primei piste a discului (care în mod normal conține programul de încărcare a sistemului sau managerul de pornire a sistemului) și vă va permite să-l restaurați dacă este necesar.\n\nImaginea ISO a Discului de Recuperare VeraCrypt va fi creată în locația specificată mai jos.</string>
+ <string lang="ro" key="RESCUE_DISK_WIN_ISOBURN_PRELAUNCH_NOTE">După ce veți da clic pe OK, va fi lansat Microsoft Windows Disc Image Burner. Vă rugăm să-l folosiți pentru a scrie pe un CD sau DVD această imagine ISO ce conține Discul de Recuperare VeraCrypt.\n\nDupă aceasta, reveniți la 'Asistentul de creare volume VeraCrypt' și urmați instrucțiunile acestuia.</string>
+ <string lang="ro" key="RESCUE_DISK_BURN_INFO">Imaginea Discului de Recuperare VeraCrypt a fost creată și stocată în acest fișier:\n%s\n\nAcum va trebui să o scrieți pe un CD sau DVD.\n\n%lsDupă ce ați scris discul, clic pe Înainte pentru a verifica dacă a fost inscripționat corect.</string>
+ <string lang="ro" key="RESCUE_DISK_BURN_INFO_NO_CHECK">Imaginea Discului de Recuperare VeraCrypt a fost creată și stocată în acest fișier:\n%s\n\nAcum ar trebui fie să scrieți imaginea pe un CD/DVD, fie să o mutați într-o locație sigură pentru o utilizare ulterioară.\n\n%lsClic pe Înainte pentru a continua.</string>
+ <string lang="ro" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">IMPORTANT: Rețineți că fișierul trebuie scris pe un CD/DVD ca imagine disc ISO (nu ca fișier individual). Pentru informații despre cum se face asta, vă rugăm consultați documentația programului de înregistrare pe CD/DVD folosit. Dacă nu aveți un astfel de program care să poată scrie imagini ISO pe CD/DVD, clic pe legătura de mai jos pentru a descărca un astfel de program gratuit.\n\n</string>
+ <string lang="ro" key="LAUNCH_WIN_ISOBURN">Lansare Microsoft Windows Disc Image Burner</string>
+ <string lang="ro" key="RESCUE_DISK_BURN_NO_CHECK_WARN">AVERTISMENT: Dacă ați creat deja un Disc de Recuperare VeraCrypt în trecut, el nu va putea fi refolosit pentru această partiție/disc sistem deoarece a fost creat pentru o altă cheie principală! De fiecare dată când criptați o partiție/disc sistem trebuie să creați din nou un Disc de Recuperare VeraCrypt pentru aceasta chiar dacă utilizați aceeași parolă.</string>
+ <string lang="ro" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">Eroare: Nu se pot salva setările de criptare a sistemului.</string>
+ <string lang="ro" key="CANNOT_INITIATE_SYS_ENCRYPTION_PRETEST">Nu s-a putut porni pretestul de criptare a sistemului.</string>
+ <string lang="ro" key="CANNOT_INITIATE_HIDDEN_OS_CREATION">Nu s-a putut inițializa procesul de creare a sistemului de operare ascuns.</string>
+ <string lang="ro" key="WIPE_MODE_TITLE">Mod ștergere</string>
+ <string lang="ro" key="INPLACE_ENC_WIPE_MODE_INFO">Pe unele medii de stocare, când datele sunt suprascrise cu alte date, este posibilă recuperarea datelor suprascrise folosind tehnici ca microscopia forțelor magnetice. Aceasta se aplică și datelor care au fost înlocuite cu echivalentul lor criptat (care are loc atunci când VeraCrypt criptează inițial o partiție sau disc necriptat). Conform unor studii și publicații guvernamentale, recuperarea datelor suprascrise poate fi împiedicată (sau făcută foarte dificilă) prin suprascrierea de date aleatoare sau anumite date non-aleatoare de un anumit număr de ori. Prin urmare, dacă credeți că un adversar ar putea folosi astfel de tehnici pentru a recupera datele pe care inteționați să le criptați, ar trebui să alegeți unul din modurile de ștergere (datele existente NU vor fi pierdute). Rețineți că ștergerea NU va fi executată după criptarea completă a partiției/discului. Când partiția/discul este complet criptată, nu se mai scriu date necriptate pe ea. Orice date care vor fi scrise, vor fi mai întâi criptate din mers în memorie și doar apoi datele (criptate) vor fi scrise pe disc.</string>
+ <string lang="ro" key="WIPE_MODE_INFO">Pe unele medii de stocare, când datele sunt suprascrise cu alte date, (de ex. când datele sunt șterse), este posibilă recuperarea datelor suprascrise folosind tehnici ca microscopia forțelor magnetice. Conform unor studii și publicații guvernamentale, recuperarea datelor suprascrise poate fi împiedicată (sau făcută foarte dificilă) prin suprascrierea de date aleatoare sau anumite date non-aleatoare de un anumit număr de ori. Prin urmare, dacă credeți că un adversar ar putea folosi astfel de tehnici pentru a recupera datele pe care intenționați să le ștergeți, ar trebui să alegeți unul din modurile de ștergere în pași multipli.\n\nNotă: Cu cât alegeți mai mulți pași de ștergere, cu atât mai mult va dura procesul de ștergere a datelor.</string>
+ <string lang="ro" key="DEVICE_WIPE_PAGE_TITLE">Ștergere</string>
+ <string lang="ro" key="DEVICE_WIPE_PAGE_INFO_HIDDEN_OS">\nNotă: Puteți întrerupe procesul de ștergere, să opriți calculatorul, să porniți sistemul ascuns din nou și să reluați procesul (acest asistent va fi lansat automat). Totuși, dacă îl întrerupeți, întreg procesul de ștergere va trebui să pornească de la început.</string>
+ <string lang="ro" key="DEVICE_WIPE_PAGE_INFO">\n\nNotă: Dacă opriți procesul de ștergere și apoi încercați să-l reluați, întreg procesul de ștergere va trebui să pornească de la început.</string>
+ <string lang="ro" key="CONFIRM_WIPE_ABORT">Doriți să opriți procesul de ștergere ?</string>
+ <string lang="ro" key="CONFIRM_WIPE_START">Avertisment: Întreg conținutul partiției/discului selectat va fi șters și pierdut.</string>
+ <string lang="ro" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">Întreg conținutul partiției unde se află sistemul de operare original va fi șters.\n\nNotă: Întreg conținutul partiției ce va fi șters a fost copiat pe partiția sistemului ascuns.</string>
+ <string lang="ro" key="WIPE_MODE_WARN">AVERTISMENT: Rețineți că dacă alegeți de ex. mod ștergere în 3-pași, timpul necesar criptării paritiției/discului va fi de până la 4 ori mai mare. La fel, dacă alegeți modul de ștergere în 35-pași, va dura de până la 36 de ori mai mult (s-ar putea să dureze chiar câteva săptămâni).\n\nTotuși, vă rugăm să rețineți că ștergerea NU se va efectua după criptarea completă a partiției/discului. Când partiția/discul este complet criptată, nu se mai scriu date necriptate pe ea. Orice date care vor fi scrise, vor fi mai întâi criptate din mers în memorie și doar apoi datele (criptate) vor fi scrise pe disc (deci perfomanța NU va fi afectată).\n\nSunteți sigur că doriți să utilizați modul de ștergere ?</string>
+ <string lang="ro" key="WIPE_MODE_NONE">Fără (cel mai rapid)</string>
+ <string lang="ro" key="WIPE_MODE_1_RAND">1-pas (date aleatoare)</string>
+ <string lang="ro" key="WIPE_MODE_3_DOD_5220">3-pași (US DoD 5220.22-M)</string>
+ <string lang="ro" key="WIPE_MODE_7_DOD_5220">7-pași (US DoD 5220.22-M)</string>
+ <string lang="ro" key="WIPE_MODE_35_GUTMANN">35-pași ("Gutmann")</string>
+ <string lang="ro" key="WIPE_MODE_256">256-pași</string>
+ <string lang="ro" key="SYS_MULTI_BOOT_MODE_TITLE">Număr sisteme de operare</string>
+ <string lang="ro" key="MULTI_BOOT_FOR_ADVANCED_ONLY">AVERTISMENT: Utilizatorii neexperimentați nu ar trebui să încerce criptarea sistemului Windows în configurații de pornire cu multiple sisteme de operare.\n\nContinuați ?</string>
+ <string lang="ro" key="HIDDEN_OS_MULTI_BOOT">Când creați/utilizați un sistem de operare ascuns, VeraCrypt suportă configurații de pornire pentru mai multe sisteme de operare doar dacă sunt îndeplinite următoarele condiții:\n\n- Sistemul de operare actual trebuie să fie instalat pe discul de pornire, care nu trebuie să mai conțină vreun alt sistem de de operare.\n\n- Sistemele de operare instalate pe alte discuri nu trebuie să folosească programe de pornire care să fie pe același disc cu sistemul de operare actual instalat.\n\nSunt condițiile de mai sus îndeplinite ?</string>
+ <string lang="ro" key="UNSUPPORTED_HIDDEN_OS_MULTI_BOOT_CFG">VeraCrypt nu suportă această configurație de pornire de sisteme multiple când se crează/utilizează un sistem de operare ascuns.</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_TITLE">Disc pornire</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Este sistemul curent de operare instalat pe discul de pornire ?\n\nNotă: Uneori, Windows nu este instalat pe același disc unde este instalat programul de pornire Windows (partiția de pornire). Dacă acesta este cazul, atunci selectați 'Nu'.</string>
+ <string lang="ro" key="SYS_PARTITION_MUST_BE_ON_BOOT_DRIVE">VeraCrypt nu suportă în acest moment criptarea unui sistem de operare care nu pornește de pe discul pe care este instalat.</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_TITLE">Număr discuri sistem</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_HELP">Câte discuri conțin un sistem de operare ?\n\nNotă: De exemplu, dacă aveți vreun sistem de operare (cum ar fi Windows, Mac OS X, Linux, etc.) instalat pe discul primar și orice alt sistem de operare instalat pe un disc secundar, selectați '2 sau mai multe'.</string>
+ <string lang="ro" key="WDE_UNSUPPORTED_FOR_MULTIPLE_SYSTEMS_ON_ONE_DRIVE">VeraCrypt nu suportă în acest moment criptarea unui disc întreg care conține multiple sisteme de operare.\n\nSoluții posibile:\n\n- Puteți cripta unul din sisteme dacă reveniți și alegeți să criptați numai o partiție sistem (spre deosebire de alegerea criptării întregului disc sistem).\n\n- Alternativ, veți putea cripta întregul disc dacă mutați unele din sisteme pe alte discuri, lăsând numai un sistem pe discul pe care doriți să-l criptați.</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_TITLE">Sisteme multiple pe un singur disc</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_HELP">Mai sunt alte sisteme de operare instalate pe discul pe care se află sistemul de operare curent ?\n\nNotă: De exemplu, dacă sistemul de operare curent este instalat pe discul nr.0, care conține mai multe partiții, iar o partiție conține Windows și altă partiție conține un alt sistem de operare (cum ar fi Windows, Mac OS X, Linux, etc.), selectați 'Da'.</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_TITLE">Program pornire non-Windows</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_HELP">Este instalat un program de pornire non-Windows (sau manager de pornire) instalat în sectorul de pornire (MBR)?\n\nNotă: De exemplu, dacă prima pistă a discului de pornire conține GRUB, LILO, XOSL sau orice alt manager de pornire non-Windows (sau program de încărcare), selectați 'Da'.</string>
+ <string lang="ro" key="SYSENC_MULTI_BOOT_OUTCOME_TITLE">Sisteme multiple</string>
+ <string lang="ro" key="CUSTOM_BOOT_MANAGERS_IN_MBR_UNSUPPORTED">VeraCrypt nu suportă în acest moment configurațiile de sisteme multiple unde un program de pornire non-Windows este instalat în sectorul de pornire (MBR).\n\nSoluții posibile:\n\n- Dacă folosiți un program de pornire pentru a porni Windows și Linux, mutați programul de pornire (de obicei, GRUB) de pe sectorul de pornire MBR pe o partiție. Apoi porniți acest asistent din nou și criptați partiția/discul sistem. Rețineți că programul de pornire VeraCrypt va deveni principalul manager de pornire și vă va permite să lansați managerul de pornire original (de ex. GRUB) ca manager secundar (prin apăsarea tastei Esc în ecranul programului de pornire VeraCrypt) și astfel veți putea porni Linux.</string>
+ <string lang="ro" key="WINDOWS_BOOT_LOADER_HINTS">Dacă sistemul de operare curent este instalat pe partiția de pornire, atunci, după ce îl veți cripta, va trebui să introduceți parola corectă chiar dacă doriți să porniți oricare alt sistem Windows necriptat (deoarece ele vor partaja un singur program de pornire/manager de încărcare Windows.\n\nDacă în schimb, sistemul de operare curent nu este instalat pe o partiție de pornire (sau dacă programul de pornire/managerul de pornire Windows nu este folosit și de un alt sistem de operare), atunci, după ce veți cripta acest sistem, nu va trebui să introduceți parola corectă pentru a porni alt sistem necriptat -- va trebui doar să apăsați tasta Esc pentru a porni sistemul necriptat (dacă sunt mai multe sisteme necriptate, va trebui de asemeni să alegeți care din ele să pornească din meniul managerului de pornire VeraCrypt).\n\nNotă: În mod normal, primul sistem Windows instalat este instalat pe partiția de pornire.</string>
+ <string lang="ro" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Criptare a zonei protejate gazdă</string>
+ <string lang="ro" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">La sfârșitul multor discuri, există o zonă care este în mod normal ascunsă față de sistemul de operare (astfel de zone sunt cunoscute ca Zone protejate gazdă). Totuși, unele programe pot citi și scrie date de la/în astfel de zone.\n\nATENȚIE: Unii producători de calculatoare pot folosi astfel de zone pentru a stoca programe și date pentru RAID, recuperarea sistemului, setarea sistemului, diagnostic sau pentru alte scopuri. Dacă astfel de programe sau date trebuie să fie accesibile înainte de pornire, zona ascunsă NU ar trebui criptată (alegeți 'Nu' mai sus).\n\nDoriți ca VeraCrypt să detectze și să cripteze astfel de zone ascunse (dacă există) de la sfârșitul discului sistem ?</string>
+ <string lang="ro" key="SYSENC_TYPE_PAGE_TITLE">Tip criptare sistem</string>
+ <string lang="ro" key="SYSENC_NORMAL_TYPE_HELP">Selectați această opțiune numai dacă doriți să criptați partiția sistem sau întregul disc sistem.</string>
+ <string lang="ro" key="SYSENC_HIDDEN_TYPE_HELP">S-ar putea să fiți forțat de cineva să decriptați sistemul de operare. Sunt multe sistuații când nu puteți refuza să o faceți (de exemplu, datorită extorcării). Dacă selectați această opțiune, veți crea un sistem de operare ascuns a cărui existență ar trebui să fie imposibil de dovedit (cu condiția să fie urmate anumite reguli). Astfel, nu va trebui să decriptați sau să furnizați parola sistemului de operare ascuns. Pentru explicații detaliate, dați clic pe legătura de mai jos.</string>
+ <string lang="ro" key="HIDDEN_OS_PREINFO">S-ar putea să fiți forțat de cineva să decriptați sistemul de operare. Sunt multe situații când nu puteți refuza să o faceți (de exemplu, datorită extorcării).\n\nFolosind acest asistent, puteți crea un sistem de operare ascuns a cărui existență ar trebui să fie imposibil de dovedit (cu condiția să fie urmate anumite reguli). Astfel, nu va trebui să decriptați sau să furnizați parola sistemului de operare ascuns.</string>
+ <string lang="ro" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_TITLE">Sistem de operare ascuns</string>
+ <string lang="ro" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">În pașii următori, veți crea două volume VeraCrypt (exterior și ascuns) pe prima partiție de după partiția sistem. Volumul ascuns va conține sistemul de operare ascuns (SO). VeraCrypt va crea SO ascuns prin copierea conținutului partiției sistem (unde este instalat actualul SO) în volumul ascuns. Pe volumul exterior, veți copia câteva fișiere aparent importante dar pe care NU doriți să le ascundeți. Acestea vor fi acolo pentru oricine vă va forța să dezvăluiți parola pentru partiția SO ascuns. Puteți dezvălui parola pentru volumul exterior din partiția SO ascuns (existența SO ascuns rămâne secretă).\n\nLa sfârșit, pe partiția sistem a actualului SO ce rulează, veți instala un nou SO, așa-zis SO momeală și să-l criptați. Acesta nu va trebui să conțină date importante, acestea fiind acolo pentru oricine va încerca să vă forțeze să dezvăluiți parola de autentificare la pornire. În total, vor fi trei parole. Două din ele pot fi dezvăluite (cea pentru SO momeală și pentru volumul exterior). Dacă folosiți a treia parolă, SO ascuns va porni.</string>
+ <string lang="ro" key="SYSENC_DRIVE_ANALYSIS_TITLE">Detectarea sectoarelor ascunse</string>
+ <string lang="ro" key="SYSENC_DRIVE_ANALYSIS_INFO">Vă rugăm așteptați până când VeraCrypt detectează posibile sectoare ascunse la sfârșitul discului. Rețineți că ar putea dura mult timp până la finalizare.\n\nNotă: În cazuri foarte rare, pe unele calculatoare, sistemul poate să nu răspundă pe durata procesului de detectare. Dacă se întâmplă asta, reporniți calculatorul, porniți VeraCrypt, repetați pașii anteriori dar săriți peste procesul de detectare. Rețineți că această situație nu se datorează unei erori din VeraCrypt.</string>
+ <string lang="ro" key="SYS_ENCRYPTION_SPAN_TITLE">Zona de criptat</string>
+ <string lang="ro" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Selectați această opțiune dacă doriți să criptați întregul disc pe care se află instalat actualul sistem Windows. Întregul disc, inclusiv toate partițiile sale, vor fi criptate cu excepția primei piste unde va fi stocat programul de pornire VeraCrypt. Oricine va dori să acceseze un sistem instalat pe disc sau fișiere stocate pe el, va trebui să introducă parola corectă de fiecare dată când sistemul pornește. Această opțiune nu poate fi utilizată pentru criptarea unui disc secundar sau disc extern dacă Windows nu este instalat pe el și nu pornește de pe el.</string>
+ <string lang="ro" key="COLLECTING_RANDOM_DATA_TITLE">Colectare date aleatoare</string>
+ <string lang="ro" key="KEYS_GEN_TITLE">Chei generate</string>
+ <string lang="ro" key="CD_BURNER_NOT_PRESENT">VeraCrypt nu a găsit vreo unitate de inscripționat CD/DVD conectată la calculator. VeraCrypt are nevoie de ea pentru a scrie pe un CD/DVD un Disc de Recuperare VeraCrypt care conține o copie de rezervă a cheilor de criptare, a programului de pornire VeraCrypt, programul de încărcare original al sistemului, etc.\n\nVă recomandăm cu insistență să inscripționați un Disc de Recuperare VeraCrypt.</string>
+ <string lang="ro" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO">NU am unitate de inscripționat pe CD/DVD, dar voi stoca imaginea ISO a Discului de Recuperare pe o unitate portabilă (de ex. unitate de memorie USB).</string>
+ <string lang="ro" key="CD_BURNER_NOT_PRESENT_WILL_CONNECT_LATER">Voi conecta o unitate de inscripționare CD/DVD la calculator mai târziu. Încheie procesul acum.</string>
+ <string lang="ro" key="CD_BURNER_NOT_PRESENT_CONNECTED_NOW">O unitate de inscripționare CD/DVD este acum conectată la calculator. Continuare și scriere Disc de Recuperare.</string>
+ <string lang="ro" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Vă rugăm urmați pașii următori:\n\n1) Conectați o unitate portabilă la calculator, cum ar fi o unitate de memorie USB, .\n\n2) Copiați fișierul imaginii Discului de Recuperare VeraCrypt (%s) pe unitatea portabilă.\n\nÎn cazul în care pe viitor va trebui să utilizați Discul de Recuperare VeraCrypt, veți putea conecta unitatea portabilă (ce conține imaginea Discului de Recuperare VeraCrypt) la un calculator ce are o unitate de inscripționare CD/DVD și să creați un Disc de Recuperare VeraCrypt prin inscripționarea imaginii pe un CD sau DVD. IMPORTANT: Rețineți că fișierul imaginii cu Discul de Recuperare VeraCrypt trebuie să fie inscripționat pe CD/DVD ca imagine disc ISO (nu ca fișier individual).</string>
+ <string lang="ro" key="RESCUE_DISK_RECORDING_TITLE">ÃŽnregistrare Disc de Recuperare</string>
+ <string lang="ro" key="RESCUE_DISK_CREATED_TITLE">Disc de Recuperare creat</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_TITLE">Pretestare criptare sistem</string>
+ <string lang="ro" key="RESCUE_DISK_DISK_VERIFIED_TITLE">Disc de Recuperare verificat</string>
+ <string lang="ro" key="RESCUE_DISK_VERIFIED_INFO">\nDiscul de Recuperare VeraCrypt a fost verificat cu succes. Vă rugăm să-l scoateți din unitate și să-l păstrați într-un loc sigur..\n\nClic pe Înainte pentru a continua.</string>
+ <string lang="ro" key="REMOVE_RESCUE_DISK_FROM_DRIVE">AVERTISMENT: În timpul următorilor pași, Discul de Recuperare VeraCrypt nu trebuie să fie în unitate. Altfel, nu va fi posibilă completarea corectă a pașilor.\n\nVă rugăm scoateți-l din unitate acum și păstrați-l într-un loc sigur. Apoi dați clic pe OK.</string>
+ <string lang="ro" key="PREBOOT_NOT_LOCALIZED">Avertisment: datorită unor limitări tehnice a mediului de pre-pornire, textul afișat de către VeraCrypt în mediul de pre-pornire (adică înainte de pornirea Windows) nu poate fi localizat. Interfața programului de pornire VeraCrypt este numai în engleză.\n\nContinuați ?</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_INFO">Înainte de a cripta partiția sau discul sistem, VeraCrypt trebuie să verifice că totul funcționează corect.\n\nDupă ce veți da clic pe Testare, toate componentele necesare (de exemplu, componenta de autentificare la pre-pornire, adică programul de pornire VeraCrypt) va fi instalat, iar apoi calculatorul va fi repornit. Apoi va trebui să introduceți parola în ecranul programului de pornire VeraCrypt care va apărea înainte de pornirea Windows. După ce Windows pornește, veți fi automat informat despre rezultatul acestui pretest.\n\nUrmătorul disc va fi modificat: Discul #%d\n\n\nDacă dați clic pe Anulare acum, nimic nu va fi instalat și operația de pretestare nu va fi executată.</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_1">INFORMAȚII IMPORTANTE -- VĂ RUGĂM SĂ LE CITIȚI sau TIPĂRIȚI (clic pe 'Tipărie'):\n\nRețineți că niciun fișier nu va fi criptat înainte de a reporni cu succes calculatorul și veți intra în Windows. Astfel, dacă ceva eșuează, datele NU vor fi afectate. Totuși, dacă ceva nu merge bine, ați putea întâmpina dificultăți la pornirea Windows. Prin urmare, vă rugăm citiți (și dacă e posibil, tipăriți) următoarele indicații despre ce să faceți dacă Windows nu poate porni după repornirea calculatorului.\n\n</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_2">Ce trebuie făcut dacă Windows nu poate porni\n------------------------------------------------\n\nNotă: Aceste instrucțiuni sunt valide numai dacă nu ați început criptarea.\n\n- Dacă Windows nu poate porni după ce ați introdus parola corectă (sau dacă ați introdus în mod repetat parola corectă, dar VeraCrypt spune că parola nu este corectă), nu vă panicați. Reporniți (opriți curentul și apoi alimentați din nou) calculatorul, iar în ecranul programului de pornire VeraCrypt, apăsați tasta Esc de pe tastatură (și, dacă aveți mai multe sisteme de operare, alegeți-l pe cel care să pornească). Apoi, Windows ar trebui să pornească (cu condiția să nu fie criptat), iar VeraCrypt vă va întreba automat dacă doriți să dezinstalați componenta de autentificare de la pre-pornire. Rețineți că pașii anteriori NU funcționează dacă partiția/discul sistem este criptat (nimeni nu poate porni Windows sau accesa fișierele criptate de pe disc fără parola corectă chiar dacă se urmează pașii descriși anterior).\n\n</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_3">- Dacă pașii anteriori nu sunt de ajutor sau dacă ecranul programului de pornire VeraCrypt nu apare (înainte de a porni Windows), introduceți Discul de Recuperare VeraCrypt în unitatea CD/DVD și reporniți calculatorul. Dacă ecranul Discului de Recuperare VeraCrypt nu apare (sau dacă nu vedeți opțiunea 'Repair Options' din secțiunea 'Keyboard Controls' a ecranului Discului de Recuperare VeraCrypt), este posibil ca în BIOS să fie configurată opțiunea de pornire de pe disc înaintea celei de pe unitățile CD/DVD. Dacă acesta este cazul, reporniți calculatorul, apăsați tasta F2 sau Delete (imediat ce vedeți ecranul de inițializare din BIOS) și așteptați până când apare ecranul de configurare pentru BIOS. Dacă nu apare niciun astfel de ecran, reporniți (resetați) din nou calculatorul și apăsați din nou tasta F2 sau Delete în mod repetat imediat ce ați repornit (resetat) calculatorul. Când apare ecranul de configurare pentru BIOS, configurați-l să pornească prima dată de pe unitatea CD/DVD (pentru informații despre cum se face asta, vă rugăm consultați documentația pentru BIOS/placa de bază sau contactați echipa de suport tehnic a furnizorului echipamentului pentru asistență). Apoi reporniți calculatorul. Ecranul Discului de Recuperare VeraCrypt ar trebui acum să apară. În acest ecran, selectați 'Repair Options' apăsând pe tasta F8 de pe tastatură. Din meniul 'Repair Options', selectați 'Restore original system loader'. Apoi scoateți Discul de Recuperare din unitatea CD/DVD și reporniți calculatorul. Windows ar trebui să pornească în mod normal (cu condiția să nu fie criptat).\n\n</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_4">Rețineți că pașii anteriori NU funcționează dacă partiția/discul sistem este criptat (nimeni nu poate porni Windows sau accesa fișierele criptate de pe disc fără parola corectă chiar dacă se urmează pașii descriși anterior).\n\n\nRețineți că chiar dacă vă pierdeți Discul de Recuperare VeraCrypt și un atacator potențial îl găsește, acesta NU va putea decripta partiția sau discul sistem fără parola corectă.</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_RESULT_TITLE">Pretestare completată</string>
+ <string lang="ro" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">Pretestarea a fost finalizată cu succes.\n\nATENȚIE: Vă rugăm rețineți că dacă alimentarea cu curent este întreruptă în timpul procesului de criptare din mers a datelor sau dacă sistemul de operare se blochează datorită unor erori din programe sau componente hardware defecte în timp ce VeraCrypt criptează datele din mers, porțiuni din date vor fi corupte sau vor fi pierdute. Prin urmare, înainte de a începe criptarea, vă rugăm să vă asigurați că aveți copii de rezervă a fișierelor pe care doriți să le criptați. Dacă nu aveți, vă rugăm să faceți o copie de rezervă acum (puteți da clic pe Amânare, efectuați copia de rezervă a fișierelor, apoi lansați din nou VeraCrypt oricând și selectați 'Sistem' &gt; 'Reluare proces întrerupt' pentru a începe criptarea).\n\nCând sunteți gata, clic pe Criptare pentru a începe criptarea.</string>
+ <string lang="ro" key="SYSENC_ENCRYPTION_PAGE_INFO">Puteți da clic pe Pauză sau Amânare oricând pentru a întrerupe procesul de criptare sau decriptare, să ieșiți din acest asistent, să restartați sau să opriți calculatorul și apoi să reluați procesul, care va continua din punctul de unde a fost oprit. Pentru a preveni încetinirea când sistemul sau aplicațiile scriu sau citesc date de pe discul sistem, VeraCrypt va aștepta automat până când datele sunt scrise sau citite (vezi Starea de mai sus) și apoi va continua automat criptarea sau decriptarea.</string>
+ <string lang="ro" key="NONSYS_INPLACE_ENC_ENCRYPTION_PAGE_INFO">\n\nPuteți da clic pe Pauză sau Amânare oricând pentru a întrerupe procesul de criptare, să ieșiți din acest asistent, să restartați sau să opriți calculatorul și apoi să reluați procesul, care va continua din punctul de unde a fost oprit. Rețineți că volumul nu va putea fi montat până când acesta nu va fi criptat în întregime.</string>
+ <string lang="ro" key="NONSYS_INPLACE_DEC_DECRYPTION_PAGE_INFO">\n\nPuteți da clic pe Pauză sau Amânare oricând pentru a întrerupe procesul de decriptare, să ieșiți din acest asistent, să restartați sau să opriți calculatorul și apoi să reluați procesul, care va continua din punctul de unde a fost oprit. Rețineți că volumul nu va putea fi montat până când acesta nu va fi decriptat în întregime.</string>
+ <string lang="ro" key="SYSENC_HIDDEN_OS_INITIAL_INFO_TITLE">Sistem ascuns pornit</string>
+ <string lang="ro" key="SYSENC_HIDDEN_OS_WIPE_INFO_TITLE">Sistem original</string>
+ <string lang="ro" key="SYSENC_HIDDEN_OS_WIPE_INFO">Windows crează (în mod normal, fără știrea sau consimțământul dvs.) diferite fișiere jurnal, fișiere temporare, etc., pe partiția sistem. Pe deasupra, el salvează conținutului memoriei RAM în fișierele de paginare și de hibernare localizate pe partiția sistemului. Prin urmare, dacă un adversar analizează fișierele stocate pe partiția sistemului original (sistemul ascuns fiind clona acestuia), el ar putea afla, de exemplu, că ați folosit asistentul VeraCrypt în modul de creare a unui sistem ascuns (ceea ce ar putea indica existența unui sistem de operare ascuns pe calculator).\n\nPentru a preveni astfel de situații VeraCrypt șterge în siguranță, în pașii următori, întregul conținut al partiției unde se află sistemul original. După care, pentru a obține negarea plauzibilă, va trebui să instalați un nou sistem pe partiție și să-l criptați. Astfel veți crea un sistem momeală și întreg procesul de creare a unui sistem de operare ascuns va fi finalizat.</string>
+ <string lang="ro" key="OS_WIPING_NOT_FINISHED_ASK">Sistemul de operare ascuns a fost creat cu succes. Totuși, înainte de a începe să-l folosiți (și pentru a obține negarea plauzibiă), trebuie să ștergeți în siguranță (folosind VeraCrypt) întregul conținut al partiției de unde rulează și este instalat actualul sistem de operare. Înainte de a putea face acest lucru, trebuie să reporniți calculatorul și în ecranul programului de pornire VeraCrypt (care apare înainte de a porni Windows), introduceți parola de autentificare la pre-pornire pentru sistemul de operare ascuns. Apoi, după ce sistemul de operare ascuns pornește, asistentul VeraCrypt va fi lansat automat.\n\nNotă: Dacă alegeți să opriți procesul de creare a sistemului de operare ascuns acum, NU veți putea relua procesul, iar sistemul ascuns NU va putea fi accesibil (deoarece programul de pornire VeraCrypt va fi eliminat).</string>
+ <string lang="ro" key="HIDDEN_OS_CREATION_NOT_FINISHED_ASK">Ați programat un proces de creare a unui sistem de operare ascuns. Procesul nu a fost încă finalizat. Pentru a-l completa, va trebui să reporniți calculatorul și, în ecranul programului de pornire VeraCrypt (care apare înainte de a porni Windows), introduceți parola pentru sistemul de operare ascuns.\n\nNotă: Dacă alegeți să opriți procesul de creare a sistemului de operare ascuns acum, NU veți putea relua procesul.</string>
+ <string lang="ro" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_RETRY">Restartare calculator și continuare</string>
+ <string lang="ro" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_TERMINATE">Oprire permanentă proces de creare sistem de operarea ascuns</string>
+ <string lang="ro" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_ASK_LATER">Nu executa nimic acum și întreabă-mă mai târziu</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_1">\nDACĂ E POSIBIL, VĂ RUGĂM TIPĂRIȚI ACEST TEXT (clic pe 'Tipărire' mai jos).\n\n\nCum și când se utilizează Discul de Recuperare VeraCrypt (După criptare )\n-----------------------------------------------------------------------------------\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_2">I. Cum se pornește Discul de Recuperare VeraCrypt\n\nPentru a porni Discul de Recuperare VeraCrypt, introduceți-l în unitatea CD/DVD și reporniți calculatorul. Dacă ecranul Discului de Recuperare VeraCrypt nu apare (sau dacă nu vedeți opțiunea 'Repair Options' în secțiunea 'Keyboard Controls'), este posibil ca în BIOS să fie configurată pornirea de pe hard disc înainte de unitatea CD/DVD. Dacă acesta este cazul, reporniți calculatorul, apăsați tasta F2 sau Delete (imediat ce vedeți ecranul de pornire BIOS) și așteptați să apară ecranul de configurare pentru BIOS. Dacă ecranul de configurare BIOS nu apare, reporniți (resetați) din nou calculatorul și începeți să apăsați în mod repetat tasta F2 sau Delete imediat ce ați repornit (resetat) calculatorul. Când apare ecranul de configurare pentru BIOS, configurați setările din BIOS pentru a porni unitatea CD/DVD prima dată (pentru informații despre cum se face asta, vă rugăm consultați documentația pentru acest BIOS/placă de bază sau contactați echipa de suport tehnic a furnizorului echipamentului pentru asistență). Apoi reporniți calculatorul. Ecranul Discului de Recuperare VeraCrypt ar trebui acum să apară. Notă: În ecranul Discului de Recuperare VeraCrypt, puteți selecta 'Repair Options' apăsând tasta F8 de pe tastatură.\n\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_3">II. Când și cum se utilizează Discul de Recuperare VeraCrypt (după criptare)\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_4">1) Dacă ecranul programului de pornire Veracrypt nu apare după ce porniți calculatorul (sau dacă Windows nu pornește), programul de pornire VeraCrypt poate fi afectat. Discul de Recuperare VeraCrypt vă permite să-l restaurați și astfel să recăpătați accesul la sistemul criptat și la date (totuși, rețineți că încă va trebui să introduceți parola corectă). În ecranul Discului de Recuperare, selectați 'Repair Options' > 'Restore VeraCrypt Boot Loader'. Apoi introduceți parola și apăsați 'Y' pentru a confirma acțiunea, eliminați Discul de Recuperare din unitatea CD/DVD și reporniți calculatorul.\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_5">2) Dacă ați introdus în mod repetat parola corectă, dar VeraCrypt spune că parola este incorectă, cheia principală sau alte date critice ar putea fi afectate. Discul de Recuperare VeraCrypt vă permite să le restaurați și astfel să recăpătați accesul la sistemul criptat și la date (totuși, rețineți că încă va trebui să introduceți parola corectă). În ecranul Discului de Recuperare, selectați 'Repair Options' > 'Restore key data'. Apoi introduceți parola și apăsați 'Y' pentru a confirma acțiunea, eliminați Discul de Recuperare din unitatea CD/DVD și reporniți calculatorul.\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_6">3) Dacă programul de pornire VeraCrypt este distrus, puteți evita executarea acestuia prin pornirea directă de pe Discul de Recuperare VeraCrypt. Introduceți Discul de Recuperare în unitatea CD/DVD și apoi introduceți parola în ecranul Discului de Recuperare.\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_7">4) Dacă Windows este distrus și nu poate porni, Discul de Recuperare VeraCrypt vă permite să decriptați partiția/discul înainte de a porni Windows. În ecranul Discului de Recuperare, selectați 'Repair Options' > 'Permanently decrypt system partition/drive'. Introduceți parola corectă și așteptați până când este complet decomprimat. Apoi veți putea de ex. porni programul de instalare MS Windows de pe CD/DVD pentru a repara instalarea Windows.\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_8">Notă: Alternativ, dacă Windows este afectat (nu poate porni) și aveți nevoie să-l reparați (sau să accesați fișiere de pe el), puteți evita să decriptați partiția/discul sistem executând pașii următori: Dacă aveți multiple sisteme de operare instalate în calculator, porniți unul care nu necesită autentificare la pre-pornire. Dacă nu aveți multiple sisteme de operare instalate în calculator, puteți porni un CD/DVD WinPE sau BartPE sau puteți conecta discul sistem ca un disc secundar sau disc extern la un alt calculator și apoi porniți sistemul de operare instalat pe calculator. După ce porniți un sistem, executați VeraCrypt, clic pe 'Selectare partiție/disc', selectați partiția sistem afectată, clic pe 'OK', selectați 'Sistem' > 'Montare fără autentificare la pornire', introduceți parola de autentifcare și dați clic pe 'OK'. Partiția va fi montată ca un volum normal VeraCrypt (datele vor fi decriptate/criptate din mers în memoria RAM, ca de obicei).\n\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_HELP_PORTION_9">Rețineți că chiar dacă veți pierdere Discul de Recuperare VeraCrypt și un posibil adversar îl găsește, acesta NU va fi capabil să decripteze partiția sau discul sistem fără parola corectă.</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_1">\n\nI M P O R T A N T -- VĂ RUGĂM TIPĂRIȚI ACEST TEXT DACĂ ESTE POSIBIL (clic pe 'Tipărire' mai jos).\n\n\nNotă: Acest text va fi afișat automat de fiecare dată când pornește sistemul ascuns până când începeți să creați sistemul momeală.\n\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_2">Cum se crează în siguranță și în mod sigur sistemul momeală\n----------------------------------------------------------------------------\n\nPentru a obține negarea plauzibilă, va trebui să creați acum un sistem de operare momeală. Pentru aceasta, executați următorii pași:\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_3">1) Din motive de securitate, oprriți calculatorul și lăsați-l oprit pentru cel puțin câteva minute (cu cât mai mult, cu atât mai mult). Aceasta este necesar pentru a goli memoria, care conține date importante. Apoi porniți calculatorul, dar nu porniți sistemul ascuns.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_4">2) Instalați Windows pe o partiție a cărui conținut a fost șters (adică pe partiția unde s-a aflat sistemul de operare original, a cărui clonă este sistemul ascuns).\n\nIMPORTANT: CÂND PORNIȚI INSTALAREA SISTEMULUI MOMEALĂ, SISTEMUL ASCUNS *NU* VA FI POSIBIL DE PORNIT (deoarece programul de pornire VeraCrypt va fi șters de programul de instalare Windows). ACEASTA ESTE NORMAL ȘI DE AȘTEPTAT. VĂ RUGĂM NU VĂ PANICAȚI. VEȚI PUTEA SĂ PORNIȚI SISTEMUL ASCUNS DIN NOU IMEDIAT CE ÎNCEPEȚI CRIPTAREA SISTEMULUI MOMEALĂ (deoarece VeraCrypt va instala atunci programul de pornire VeraCrypt pe discul sistem).\n\nImportant: Dimensiunea partiției sistemului momeală trebuie să rămână la fel cu cea a volumului ascuns (această condiție este acum îndeplinită). În plus, nu trebuie să creați vreo partiție între partiția sistemului momeală și partiția unde se află sistemul ascuns.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_5">3) Porniți sistemul momeală (pe care l-ați instalat în pasul 2 și instalați pe el VeraCrypt).\n\nRețineți că sistemul momeală nu trebuie să conțină date importante.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_6">4) Pe sistemul momeală, executați VeraCrypt și selectați 'Sistem' &gt; 'Criptare partiție/disc sistem'. Ar trebui să apară fereastra Asistentului de creare volum VeraCrypt.\n\nUrmătorii pași se aplică Asistentului de creare volum VeraCrypt.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_7">5) În Asistentul de creare volum VeraCrypt, NU selectați opțiunea 'Ascuns'. Lăsați opțiunea 'Normal' selectată și dați clic pe 'Înainte'.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_8">6) Selectați opțiunea 'Criptare partiție sistem Windows' și apoi dați clic pe 'Înainte'.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_9">7) Dacă există numai un sistem ascuns și unul momeală instalate în calculator, selectați opțiunea 'Sistem unic' (dacă există mai multe sisteme decât cele două sisteme instalate în calculator, selectați 'Sisteme multiple'). Clic pe 'Înainte'.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_10">8) IMPORTANT: În acest pas, PENTRU SISTEMUL MOMEALĂ, TREBUIE SĂ SELECTAȚI ACELAȘI ALGORITM DE CRIPTARE ȘI ALGORITM DE AMESTECARE PE CARE LE-AȚI SELECTAT PENTRU SISTEMUL ASCUNS! ALTFEL, SISTEMUL ASCUNS NU VA FI ACCESIBIL! Cu alte cuvinte, sistemul momeală va trebui criptat cu același algoritm de criptare ca și volumul ascuns. Notă: Aceasta se datorează faptului că cele două sisteme, momeală și ascuns, partajează același program de pornire, care suportă numai un singur algoritm, selectat de către utilizator (pentru fiecare algoritm, există o versiune specială de program de încărcare VeraCrypt).\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_11">9) În acest pas, stabiliți o parolă pentru sistemul de operare momeală. Aceasta va fi parola pe care o veți putea dezvălui unui adversar dacă sunteți întrebat sau forțat să dezvăluiți parola de autentificare la pre-pornire (cealaltă parolă pe care o puteți dezvălui este cea a volumului exterior). Existența celei de-a treia parole (adică parola de autentificare la pre-pornire pentru sistemul de operare ascuns) va rămâne secretă.\n\nImportant: Parola aleasă pentru sistemul momeală trebuie să fie semnificativ diferită de cea aleasă pentru volumul ascuns (adică pentru sistemul de operare ascuns).\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_12">10) Urmați restul instrucțiunilor din asistent pentru a cripta sistemul de operare momeală.\n\n\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_13">După crearea sistemului momeală\n------------------------------------------------\n\nDupă ce veți cripta sistemul momeală, întregul proces de creare a sistemului de operare ascuns va fi finalizat și veți putea folosi aceste trei parole:\n\n1) Parola de autentificare la pre-pornire pentru sistemul de operare ascuns.\n\n2) Parola de autentificare la pre-pornire pentru sistemul de operare momeală.\n\n3) Parola pentru volumul exterior.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_14">Dacă doriți să porniți sistemul de operare ascuns, va trebui doar să introduceți parola pentru sistemul de operare ascuns în ecranul programului de pornire VeraCrypt (care apare după ce porniți sau reporniți calculatorul).\n\nDacă doriți să porniți sistemul de operare momeală, va trebui doar să introduceți parola pentru sistemul de operare momeală în ecranul programului de pornire VeraCrypt.\n\nParola pentru sistemul momeală poate fi dezvăluită oricui vă forțează să dezvăluiți parola de autentificare la pre-pornire. Existența volumului ascuns (și deci a sistemului de operare ascuns) va rămâne secretă.\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_15">A treia parolă (pentru volumul exterior) poate fi dezvăluită oricui vă forțează să dezvăluiți parola pentru prima partiție de după partiția sistem, unde se află atât volumul exterior cât și cel ascuns (conținând sistemul de operare ascuns). Existența volumului ascuns (și implicit a sistemului de operare ascuns) va rămâne secretă.\n\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_16">Dacă ați dezvăluit parola pentru sistemul momeală unui adversar și acesta vă întreabă de ce spațiul liber de pe partiția sistemului (momeală) conține date aleatoare, ați putea răspunde, de exemplu: "Partiția a conținut anterior un sistem criptat cu VeraCrypt, dar am uitat parola de autentificcare la pre-pornire (sau sistemul a fost afectat și nu a mai pornit), astfel încât a trebuit să reinstalez Windows și să criptez din nou partiția."\n\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_17">Dacă sunt urmate toate instrucțiunile, precauțiile și recomandările afișate în secțiunea "Security Requirements and Precautions Pertaining to Hidden Volumes" din Ghidul de utilizare VeraCrypt, ar trebui să fie imposibil de dovedit că există un volum ascuns și un sistem de operare ascuns, chiar dacă este montat un volum exterior sau când este decriptat și pornit sistemul de operare momeală.\n\nDacă salvați o copie a acestui text sau îl tipăriți (ceea ce vă rugăm insistent, cu excepția cazului în care imprimanta stochează copii ale documentelor tipărite pe un disc intern), ar trebui să distrugeți orice copie a acestuia după ce ați creat sistemul de operare momeală și după ce ați înțeles toate informațiile conținute în acesta (altfel, dacă o astfel de copie va fi găsită, ar putea da indicii că există un sistem de operare ascuns pe acest calculator).\n\n</string>
+ <string lang="ro" key="DECOY_OS_INSTRUCTIONS_PORTION_18">AVERTISMENT: DACĂ NU PROTEJAȚI VOLUMUL ASCUNS (pentru informații despre cum se face asta, consultați secțiunea "Protection of Hidden Volumes Against Damage" din Ghidul de utilizare VeraCrypt), NU SCRIEȚI DATE ÎN VOLUMUL EXTERIOR (rețineți că sistemul de operare ascuns NU este instalat în volumul exterior). ALTFEL, S-AR PUTEA SĂ SUPRASCRIEȚI ȘI SĂ DISTRUGEȚI VOLUMUL ASCUNS (ȘI SISTEMUL DE OPERARE ASCUNS DE PE EL)!</string>
+ <string lang="ro" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Executare clonare sistem</string>
+ <string lang="ro" key="HIDDEN_OS_CREATION_PREINFO_HELP">În pașii următori, VeraCrypt va crea sistemul de operare ascuns prin copierea conținutului partiției sistem în volumul ascuns (datele copiate vor fi criptate din mers cu o cheie de criptare diferită de cea folosită pentru sistemul de operare momeală).\n\nVă rugăm rețineți că procesul va fi executat în mediul de pre-pornire (înainte de pornirea Windows) și ar putea dura mai mult până la finalizare; câteva ore sau zile (în funcție de dimensiunea partiției sistem și de performanțele calculatorului).\n\nVeți putea întrerupe procesul, să închideți calculatorul, să porniți sistemul de operare și apoi să reluați procesul. Totuși, dacă îl întrerupeți, întregul proces de copiere va trebui să fie reluat de la început (deoarece conținutul partiției sistem nu trebuie modificat pe durata clonării).</string>
+ <string lang="ro" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Doriți să anulați întregul proces de creare a sistemului de operare ascuns ?\n\nNotă: NU veți putea continua procesul dacă îl anulați acum.</string>
+ <string lang="ro" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Doriți să anulați pretestarea criptării sistemului ?</string>
+ <string lang="ro" key="BOOT_PRETEST_FAILED_RETRY">Pretestul VeraCrypt de criptare a sistemului a eșuat. Doriți să încercați din nou ?\n\nDacă selectați 'Nu', componenta de autentificare la pre-pornire va fi dezinstalată.\n\nNote:\n\n- Dacă rogramul de pornire VeraCrypt nu v-a solicitat să introduceți parola înainte de a porni Windows, este posibil ca sistemul de operare să nu pornească de pe discul pe care este instalat. Această situație nu e suportată.\n\n- Dacă ați utilizat un algoritm de criptare altul decât AES și testul a eșuat (și ați introdus parola), s-ar putea să fie datorită unui driver impropriu proiectat. Selectați 'Nu' și încercați criptarea partiției/discului sistem din nou, dar folosiți algoritmul de criptare AES (care solicită cele mai mici resurse de memorie).\n\n- Pentru mai multe cauze posibile și soluții, vizitați: http://www.idrix.fr</string>
+ <string lang="ro" key="SYS_DRIVE_NOT_ENCRYPTED">Partiția/discul sistem nu pare să fie criptată (nici parțial nici în întregime).</string>
+ <string lang="ro" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Partiția/discul sistem este criptată (complet sau parțial).\n\nVă rugăm decriptați partiția/discul sistem în întregime înainte de a continua. Pentru aceasta, selectați 'Sistem' &gt; 'Decriptare permanentă partiție/disc sistem' din bara meniului ferestrei principale VeraCrypt.</string>
+ <string lang="ro" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Când partiția/discul sistem este criptată (complet sau parțial), nu puteți reveni la o versiune anterioară VeraCrypt (dar puteți instala una mai nouă sau reinstala aceeași versiune).</string>
+ <string lang="ro" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Partiția/discul sistem este în acest moment în proces de criptare, decriptare sau modificare. Vă rugăm să întrerupeți procesul de criptare/decriptare/modificare (sau așteptați până la finalizarea acestuia) înainte de a continua.</string>
+ <string lang="ro" key="SYSTEM_ENCRYPTION_IN_PROGRESS_ELSEWHERE">O instanță a Asistentului de creare volume VeraCrypt este pornită acum pe acest sistem și execută sau se pregătește criptarea/decriptarea partiției/discului sistem. Înainte de a continua, vă rugăm așteptați să se finalizeze sau închideți-l. Dacă nu-l puteți închide, vă rugăm reporniți calculatorul înainte de a continua.</string>
+ <string lang="ro" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">Procesul de criptare sau decriptare a partiției/discului sistem nu a fost finalizat. Vă rugăm așteptați până la finalizarea acestuia înainte de a continua.</string>
+ <string lang="ro" key="ERR_ENCRYPTION_NOT_COMPLETED">Eroare: Procesul de criptare a partiției/discului sistem nu a fost finalizat. Trebuie mai întrâi finalizat.</string>
+ <string lang="ro" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">Eroare: Procesul de criptare a partiției/volumului nu a fost finalizat. Trebuie mai întrâi finalizat.\n\nNotă: Pentru a relua procesul, selectați 'Volume' &gt; 'Reluare proces întrerupt' din bara meniului ferestrei principale VeraCrypt.</string>
+ <string lang="ro" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Parola este corectă, VeraCrypt a decriptat cu succes antetul volumului și a detectat că acest volum este un volum sistem ascuns. Totuși, nu puteți modifica antetul volumului sistem ascuns în acest mod.\n\nPentru a modifica parola pentru un volum sistem ascuns, porniți sistemul de operare aflat pe volumul ascuns și apoi selectați 'Sistem' &gt; 'Schimbare parolă' din bara meniului ferestrei principale VeraCrypt.\n\nPentru a stabili algoritmul cheii de derivare, porniți sistemul de operare ascuns și apoi selectați 'Sistem' &gt; 'Setare algoritm derivare cheie antet'.</string>
+ <string lang="ro" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt nu suportă decriptarea din mers a partiției sistemului ascuns.\n\nNotă: Dacă doriți decriptarea partiției sistemului momeală, porniți sistemul momeală și apoi selectați 'Sistem' &gt; 'Decriptare permanentă partiție/disc sistem' din bara meniului ferestrei principale VeraCrypt.</string>
+ <string lang="ro" key="ERR_PARAMETER_INCORRECT">Eroare: Parametru incorect/nevalid.</string>
+ <string lang="ro" key="DEVICE_SELECTED_IN_NON_DEVICE_MODE">Ați selectat o partiție sau disc dar tipul de asistent selectat este protrivit numai pentru fișiere container.\n\nDoriți să schimbați tipul asistentului ?</string>
+ <string lang="ro" key="CONFIRM_CHANGE_WIZARD_MODE_TO_FILE_CONTAINER">Doriți să creați în schimb un fișier container VeraCrypt ?</string>
+ <string lang="ro" key="CONFIRM_SYSTEM_ENCRYPTION_MODE">Ați selectat partiția/discul sistem (sau partiția de pornire), dar tipul de asistent selectat este potrivit numai pentru partiții/discuri non-sistem.\n\nDoriți să instalați autentificarea la pre-pornire (ceea ce înseamnă că va trebui să introduceți parola de fiecare dată înainte de a porni/reporni Windows) și să criptați partiția/discul sistem ?</string>
+ <string lang="ro" key="CONFIRM_DECRYPT_SYS_DEVICE">Sunteți sigur că doriți decriptarea permanentă a partiției/discului sistem ?</string>
+ <string lang="ro" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">AVERTISMENT: dacă decriptați permanent partiția/discul sistem, datele scrise pe acesta vor fi necriptate.\n\nSunteți sigur că doriți decriptarea permanentă a partiției/discului sistem ?</string>
+ <string lang="ro" key="CONFIRM_DECRYPT_NON_SYS_DEVICE">Sunteți sigur că doriți decriptarea permanentă a următorului volum?</string>
+ <string lang="ro" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">AVERTISMENT: Dacă veți decripta permanent volumul VeraCrypt, datele scrise pe acesta vor fi necriptate.\n\nSunteți sigur că doriți decriptarea permanentă a volumului selectat ?</string>
+ <string lang="ro" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Avertisment: Dacă folosiți pentru criptarea sistemului o criptare în cascadă, ați putea întâlni următoarele probleme:\n\n1) Programul de pornire este mai mare decât normal și, prin urmare, nu va exista suficient spațiu pe prima pistă a discului pentru copia de rezervă a programului de pornire VeraCrypt. Deci, atunci când va fi distrus (ceea ce se poate întâmpla deseori, de exemplu, în timpul procedurilor de activare anti-piraterie a anumitor programe proiectate necorespunzător), va trebui să utilizați Discul de Recuperare VeraCrypt pentru a porni sau repara programul de pornire VeraCrypt.\n\n2) Pe unele calculatoare, revenirea din hibernare poate dura mai mult.\n\nAceste potențiale probleme pot fi prevenite prin alegerea unui singur algoritm de criptare (de ex. AES).\n\nSunteți sigur că doriți să folosiți criptarea în cascadă ?</string>
+ <string lang="ro" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">Dacă întâlniți una din problemele menționate anterior, decriptați partiția/discul sistem (dacă e criptat) și apoi încercați să o criptați din nou folosind un singur algoritm (de ex. AES).</string>
+ <string lang="ro" key="UPDATE_TC_IN_DECOY_OS_FIRST">AVERTISMENT: Din motive de siguranță și securitate, ar trebui să actualizați VeraCrypt pe sistemul momeală înainte de a-l actualiza pe sistemul de operare ascuns.\n\nPentru a face asta, porniți sistemul momeală și executați programul de instalare VeraCrypt de pe el. Apoi, porniți sistemul ascuns și executați de asemenea programul de instalare de pe el.\n\nNotă: Sistemul momeală și sistemul ascuns partajează același program de încărcare. Dacă ați actualizat VeraCrypt numai pe sistemul ascuns (dar nu și pe sistemul momeală), sistemul momeală va conține un driver și aplicații VeraCrypt a căror număr de versiune sunt diferite de cea a programului de pornire VeraCrypt. O astfel de discrepanță poate indica faptul că există un sistem de operare ascuns în calculator.\n\n\nDoriți să continuați ?</string>
+ <string lang="ro" key="UPDATE_TC_IN_HIDDEN_OS_TOO">Numărul versiunii programului de pornire VeraCrypt care a pornit acest sistem de operare este diferit de cel al driver-ului VeraCrypt (și a aplicațiilor VeraCrypt) instalat pe acest sistem.\n\nAr trebui să porniți programul de instalare VeraCrypt (a cărui versiune este aceeași ca și a programului de pornire VeraCrypt) pentru a actualiza VeraCrypt pe acest sistem de operare.</string>
+ <string lang="ro" key="BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION">Numărul versiunii programului de pornire VeraCrypt care a pornit acest sistem de operare este diferit de cel al driver-ului VeraCrypt (și a aplicațiilor VeraCrypt) instalat pe acest sistem. Rețineți că versiunile vechi pot conține erori care au fost fixate în versiunile mai noi.\n\nDacă nu ați pornit de pe Discul de Recuperare VeraCrypt, ar trebui să reinstalați VeraCrypt sau să-l actualizați la ultima versiune stabilă (programul de încărcare va fi de asemeni actualizat).\n\nDacă ați pornit de pe Discul de Recuperare VeraCrypt, ar trebui să-l actualizați ('Sistem' > 'Creare disc de recuperare').</string>
+ <string lang="ro" key="BOOT_LOADER_UPGRADE_OK">Programul de pornire VeraCrypt a fost actualizat.\n\nEste foarte important să creați un nou Disc de Recuperare VeraCrypt (care va conține noua versiune a programului de încărcare VeraCrypt) selectând 'Sistem' > 'Creare disc de recuperare', după ce veți reporni calculatorul.</string>
+ <string lang="ro" key="BOOT_LOADER_UPGRADE_OK_HIDDEN_OS">Programul de pornire VeraCrypt a fost actualizat.\n\nEste foarte important să porniți sistemul de operare momeală și să creați un nou Disc de Recuperare VeraCrypt (care va conține noua versiune a programului de încărcare VeraCrypt) selectând 'Sistem' > 'Creare disc de recuperare'.</string>
+ <string lang="ro" key="BOOT_LOADER_UPGRADE_FAILED">Actualizare eșuată a programului de pornire VeraCrypt.</string>
+ <string lang="ro" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt nu a putut detecta dimensiunea reală a discului sistem și, prin urmare, va fi folosită dimensiunea raportată de sistemul de operare (care ar putea fi mai mică decât cea reală). De reținut că aceasta nu este o eroare din VeraCrypt.</string>
+ <string lang="ro" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">AVERTISMENT: Se pare că VeraCrypt a încercat deja să detecteze sesctoarele ascunse ale acestui disc sistem. Dacă ați întâmpinat vreo problemă în timpul procesului de detectție anterior, puteți evita problemele ignorând detectarea sectoarelor acum. Rețineți că dacă o faceți, VeraCrypt va folosi dimensiunea raportată de către sistemul de operare (care ar putea fi mai mică decât cea reală a discului).\n\nRețineți că această situație nu este datorată unei erori din VeraCrypt.</string>
+ <string lang="ro" key="SKIP_HIDDEN_SECTOR_DETECTION">Ignorare detectare sectoare ascunse (utilizare dimensiune rapoartată de către sistemul de operare)</string>
+ <string lang="ro" key="RETRY_HIDDEN_SECTOR_DETECTION">Reîncercare detectare sectoare ascunse</string>
+ <string lang="ro" key="ENABLE_BAD_SECTOR_ZEROING">Eroare: Conținutul unuia sau mai multor sectoare de pe disc nu poate fi citit (probabil datorită unui defect fizic).\n\nProcesul de criptare din mers poate continua numai când sectoarele pot fi citite din nou. VeraCrypt poate încerca să facă aceste sectoare accesibile scriindu-le cu valori zero (ulterior astfel de blocuri ce conțin valori zero vor fi criptate). Totuși, rețineți că orice date stocate pe sectoarele neaccesibile vor fi pierdute. Dacă doriți să evitați acest lucru, puteți încerca să recuperați porțiunile datelor corupte folosind programe terțe specializate pentru aceasta.\n\nNotă: În cazul sectoarelor defecte fizic (spre deosebire de cazul coruperii datelor sau erorilor de paritate) majoritatea tipurilor de discuri realocă intern aceste sectoare când se încearcă scrierea pe acestea (astfel încât datele corupte existente pe sectoarele defecte pot rămâne necriptate).\n\nDoriți ca VeraCrypt să scrie valori zero pe sectoarele care nu se pot citi ?</string>
+ <string lang="ro" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">Eroare: Conținutul unuia sau mai multor sectoare de pe disc nu poate fi citit (probabil datorită unui defect fizic).\n\nPentru a putea continua decriptarea, VeraCrypt va trebui să ignore conținutul sectoarelor neaccesibile (conținutul va fi înlocuit cu date aleatoare). Rețineți că înainte de a continua, puteți încerca recuperarea porțiunilor de date corupte folosind programe terțe specializate pentru aceasta.\n\nDoriți ca VeraCrypt să ignore datele de pe sectoarele neaccesibile acum ?</string>
+ <string lang="ro" key="ZEROED_BAD_SECTOR_COUNT">Note: VeraCrypt a înlocuit conținutul a %I64d sectoare neaccesibile (%s) cu blocuri de text zero criptate.</string>
+ <string lang="ro" key="SKIPPED_BAD_SECTOR_COUNT">Notă: VeraCrypt a înlocuit conținutul a %I64d sectoare defecte (%s) cu date aleatoare.</string>
+ <string lang="ro" key="ENTER_TOKEN_PASSWORD">Introduceți parola/PIN pentru dispozitivul '%s':</string>
+ <string lang="ro" key="PKCS11_LIB_LOCATION_HELP">Pentru a permite ca VeraCrypt să acceseze un dispozitiv de securitate sau card inteligent, trebuie să instalați mai întâi librăria software PKCS #11 pentru dispozitive de securitate sau card inteligent. O astfel de librărie poate fi furnizată cu unitatea respectivă sau poate fi disponibilă pentru descărcare de pe pagina web a producătorului sau o altă terță parte.\n\nDupă ce veți instala librăria, puteți fie să o selectați manual dând clic pe 'Selectare librărie' sau puteți lăsa ca VeraCrypt să o găsească și să o selecteze automat dând clic pe 'Autodetectare librărie' (va fi căutată doar în folderul de sistem Windows).</string>
+ <string lang="ro" key="SELECT_PKCS11_MODULE_HELP">Note: Pentru numele fișierului și locația librăriei PKCS #11 instalată pentru dispozitivul de securitate sau cardul inteligent, vă rugăm consultați documentația primită cu dispozitivul, cardul sau programul terței părți.\n\nClic pe 'OK' pentru a selecta calea și numele fișierului.</string>
+ <string lang="ro" key="NO_PKCS11_MODULE_SPECIFIED">Pentru a permite ca VeraCrypt să acceseze un dispozitiv de securitate sau card inteligent, trebuie mai întâi să selectați o librărie software PKCS #11 pentru dispozitiv sau card inteligent. Pentru aceasta, selectați 'Setări' > 'Dispozitive de securitate'.</string>
+ <string lang="ro" key="PKCS11_MODULE_INIT_FAILED">Eșuare inițializare librărie PKCS #11 a dispozitivului de securitate.\n\nVerificați dacă calea și numele fișierului specificate se referă la o librărie PKCS #11 validă. Pentru a specifica calea și numele fișierului unei librării PKCS #11, selectați 'Setări' > 'Dispozitive de securitate'.</string>
+ <string lang="ro" key="PKCS11_MODULE_AUTO_DETECTION_FAILED">Nu a fost găsită nici o librărie PKCS #11 în folderul de sistem Windows.\n\nAsigurați-vă că pentru dispozitivul de securitate (sau pentru cardul inteligent) există instalată o librărie PKCS #11 (o astfel de librărie poate fi primită cu dispozitivul/cardul sau poate fi disponibilă pentru descărcare de pe pagina de web a producătorului sau a unei terțe părți). Dacă e instalată într-un alt folder decât folderul de sistem Windows, clic pe 'Selectare librărie' pentru a localiza librăria (de ex. în folderul unde este instalat programul pentru dispozitiv/card).</string>
+ <string lang="ro" key="NO_TOKENS_FOUND">Nu există dispozitiv de securitate.\n\nAsigurați-vă că dispozitiv-ul de securitate este conectat la calculator și este instalat driver-ul corect pentru acesta.</string>
+ <string lang="ro" key="TOKEN_KEYFILE_NOT_FOUND">Fișierul cheie al dispozitivului de securitate lipsește.</string>
+ <string lang="ro" key="TOKEN_KEYFILE_ALREADY_EXISTS">Deja există un fișier-cheie al dispozitivului de securitate cu același nume.</string>
+ <string lang="ro" key="CONFIRM_SEL_FILES_DELETE">Doriți să ștergeți fișierele selectate ?</string>
+ <string lang="ro" key="INVALID_TOKEN_KEYFILE_PATH">Cale nevalidă spre fișierul cheie al dispozitivului de securitate.</string>
+ <string lang="ro" key="SECURITY_TOKEN_ERROR">Eroare dispozitiv de securitate</string>
+ <string lang="ro" key="CKR_PIN_INCORRECT">Parola pentru dispozitivul de securitate este incorectă.</string>
+ <string lang="ro" key="CKR_DEVICE_MEMORY">Dispozitivul de securitate nu are destulă memorie/spațiu pentru a executa operația solicitată.\n\nDacă încercați să importați un fișier-cheie, ar trebui să selectați un fișier mai mic generat de VeraCrypt (selectați 'Unelte' > 'Generator fișiere-cheie').</string>
+ <string lang="ro" key="ALL_TOKEN_SESSIONS_CLOSED">Toate sesiunile deschise ale dispozitivului de securitate au fost închise.</string>
+ <string lang="ro" key="SELECT_TOKEN_KEYFILES">Selectare fișiere-cheie dispozitiv de securitate</string>
+ <string lang="ro" key="TOKEN_SLOT_ID">Slot</string>
+ <string lang="ro" key="TOKEN_NAME">Nume dispozitiv</string>
+ <string lang="ro" key="TOKEN_DATA_OBJECT_LABEL">Nume fișier</string>
+ <string lang="ro" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">IMPORTANT: Rețineți că parolele de autentificare la pre-pornire sunt tipărite întotdeauna folosind formatul de tastatură stnadard US. Prin urmare, un volum care utilizează o parolă introdusă folosind alt format de tastatură ar putea fi imposibil de montat folosind parola de autentificare la pre-pornire (de reținut că aceasta nu este o eroare din VeraCrypt). Pentru a permite unui astfel de volum să fie montat folosind o parolă de autentificare la pre-pornire, executați următorii pași:\n\n1) Clic pe 'Selectare fișier' sau 'Selectare partiție/disc' și selectați volumul.\n2) Selectați 'Volume' > 'Schimbare parolă volum'.\n3) Introduceți parola curentă pentru volum.\n4) Schimbați formatul tastaturii la English (US) dând clic pe bara de limbi din bara de sarcini Windows și selectați 'EN English (United States)'.\n5) În VeraCrypt, în câmpul pentru parola nouă, scrieți parola de autentificare la pre-pornire.\n6) Confirmați noua parolă prin reintroducerea ei în câmpul de confirmare și apoi dați clic pe 'OK'.\nATENȚIE: Rețineți că dacă urmați acești pași, parola volumului va trebui introdusă întotdeauna folosind formatul de tastatură US (care este automat asigurat numai în mediul de pre-pornire).</string>
+ <string lang="ro" key="SYS_FAVORITES_KEYBOARD_WARNING">Volumele sistem favorite vor fi montate folosind parola de autentificare la pre-pornire. Dacă vreunul din ele folosește o parolă diferită, acesta nu va fi montat.</string>
+ <string lang="ro" key="SYS_FAVORITES_ADMIN_ONLY_INFO">Rețineți că dacă doriți să împiedicați acțiunile obișnuite pentru un volum VeraCrypt (cum ar fi 'Demontare toate', autodemontare, etc.) să afecteze volumele sistem favorite, ar trebui să activați opțiunea 'Permite numai administratorilor să vadă și să demonteze volume sistem favorite în VeraCrypt'. În plus, când VeraCrypt rulează fără drepturi de administrator (implicit în Windows Vista și ulterior), volumele sistem favorite nu vor fi afișate în lista cu literele unităților din fereastra principală a programului VeraCrypt.</string>
+ <string lang="ro" key="SYS_FAVORITES_ADMIN_ONLY_WARNING">IMPORTANT: Rețineți că dacă această opțiune este activată și VeraCrypt nu are drepturi de administrator, volumele sistem favorite montate NU sunt afișate în fereastra principală a programului VeraCrypt și acestea nu pot fi demontate. Prin urmare, dacă aveți nevoie de ex. să demontați un volum sistem favorit, mai întâi dați clic-dreapta pe pictograma VeraCrypt (din meniul Start) și selectați 'Run as administrator'. Aceeași limitare se aplică și la funcțiile 'Demontare toate', 'Autodemontare', scurtăturile pentru 'Demontare toate', etc.</string>
+ <string lang="ro" key="SETTING_REQUIRES_REBOOT">Rețineți că această setare se aplică numai după repornirea sistemului.</string>
+ <string lang="ro" key="COMMAND_LINE_ERROR">Eroare la interpretarea liniei de comandă.</string>
+ <string lang="ro" key="RESCUE_DISK">Disc recuperare</string>
+ <string lang="ro" key="SELECT_FILE_AND_MOUNT">Selectare &amp;fișier și montare</string>
+ <string lang="ro" key="SELECT_DEVICE_AND_MOUNT">Selectare &amp;partiție/disc și montare</string>
+ <string lang="ro" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Permite numai administratorilor să vadă și să demonteze volume sistem favorite în VeraCrypt</string>
+ <string lang="ro" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Montare volume sistem favorite la pornirea Windows (în faza inițială a procedurii de pornire)</string>
+ <string lang="ro" key="MOUNTED_VOLUME_DIRTY">Avertisment: Sistemul de fișiere de pe volumul montat '%s' nu a fost demontat în sigurață și deci poate conține erori. Folosirea unui sistem de fișiere corupt poate determina pierderea datelor sau coruperea acestora.\n\nNotă: Înainte de a îndepărta fizic sau opri alimentarea unității (cum ar fi o unitate de memorie USB sau hard disc extern) unde se află un volum VeraCrypt montat, întotdeauna ar trebui ca mai întâi să demontați volumul VeraCrypt din programul VeraCrypt.\n\n\nDoriți ca Windows să încerce să detecteze și să fixeze (dacă e cazul) erorile din sistemul de fișiere ?</string>
+ <string lang="ro" key="SYS_FAVORITE_VOLUME_DIRTY">Avertisment: Unul sau mai multe volume sistem favorite nu a fost demontat în siguranță și deci poate conține erori în sistemul de fișiere. Verificați jurnalul evenimentelor de sistem pentru mai multe detalii.\n\nUtilizarea un sistem de fișiere corupt poate determina pierderea sau coruprea datelor. Ar trebui să verificați dacă volumele sistem favorite afectate au erori (clic-dreapta pe fiecare din ele în fereastra VeraCrypt și selectați 'Reparare sistem de fișiere').</string>
+ <string lang="ro" key="FILESYS_REPAIR_CONFIRM_BACKUP">Avertisment: Repararea unui sistem de fișiere defect folosind comanda Microsoft 'chkdsk' poate cauza pierderea fișierelor în zonele afectate. Prin urmare, este recomandat să faceți mai întâi o copie a fișierelor stocate în volumul VeraCrypt pe un alt volum VeraCrypt, sănătos.\n\nDoriți să reparați sistemul de fișiere acum ?</string>
+ <string lang="ro" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Volumul '%s' a fost montat ca doar-citire deoarece dreptul de scriere nu a fost permis.\n\nVerificați dacă permisiunile de securitate ale fișierului container permit scrierea în el (clic-dreapta pe fișierul container și selectare Properties > Security).\n\nRețineți că, datorită unei probleme în Windows, ați putea vedea acest mesaj de avertizare chiar și după ce ați setat permisiunile de securitate adecvate. Aceasta nu este cauzată de o eroare din VeraCrypt. O soluție posibilă este să mutați containerul, de ex. în folderul 'Documents'.\n\nDacă intenționați să păstrați volumul ca doar-citire, setați atributul containerului ca doar-citire (clic-drepta pe container și selectați Properties > Read-only), ceea ce va determina evitarea acestui avertisment.</string>
+ <string lang="ro" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Volumul '%s' trebuie să fie montat ca doar-citire deoarece dreptul de scriere nu a fost permis.\n\nAsigurați-vă că nici o altă aplicație (de ex. programe antivirus) nu accesează partiția/discul pe care este găzduit volumul.</string>
+ <string lang="ro" key="MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION">Volumul '%s' a fost montat ca doar-citire deoarce sistemul de operare a raportat că unitatea gazdă este protejată la scriere.\n\nRețineți că unele drivere de cipset particularizate au fost raportate ca și cauză a falsei raportări de protejare la scriere a unor medii inscriptibile. Această problemă nu se datorează lui VeraCrypt. Ea poate fi rezolvată prin actualizarea sau dezinstalarea oricăror drivere de cipset particularizate (non-Microsoft) care sunt instalate acum în sistem.</string>
+ <string lang="ro" key="LIMIT_ENC_THREAD_POOL_NOTE">Rețineți că tehnologia Hyper-Threading (fire de execuție) pune la dispoziție mai multe nuclee logice la un singur nucleu fizic din procesor. Când este activată funcția de Hyper Threading, numărul selectat mai sus reprezintă numărul de procesoare/nuclee logice.</string>
+ <string lang="ro" key="NUMBER_OF_THREADS">%d nuclee logice</string>
+ <string lang="ro" key="DISABLED_HW_AES_AFFECTS_PERFORMANCE">Rețineți că accelerarea hardware AES este dezactivată, ceea ce va afecta rezultatele evaluării (performanțe mai slabe).\n\nPentru a activa accelerarea hardware, selectați 'Setări' > 'Performanță' și activați opțiunea respectivă.</string>
+ <string lang="ro" key="LIMITED_THREAD_COUNT_AFFECTS_PERFORMANCE">Rețineți că numărul firelor de execuție este în acest moment limitat, ceea ce va afecta rezultatele evalurii (performanțe mai slabe).\n\nPentru a utiliza întregul potențial al procesorului, selectați 'Setări' > 'Performață' și dezactivați opțiunea de limitare respectivă.</string>
+ <string lang="ro" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Doriți ca VeraCrypt să încerce să elimine protejarea la scriere a partiției/discului ?</string>
+ <string lang="ro" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">AVERTISMENT: Această setare ar putea degrada performanța.\n\nSunteți sigur că doriți să folosiți această setare ?</string>
+ <string lang="ro" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">Avertisment: volum VeraCrypt autodemontat</string>
+ <string lang="ro" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Înainte de a elimina fizic sau opri alimentarea unei unități ce conține un volum montat, întotdeauna ar trebui să demontați volumul mai întâi din VeraCrypt.\n\nDemontarea spontană neașteptată este de obicei cauzată de instabilitatea intermitentă a cablurilor, unitate (carcasa), etc.</string>
+ <string lang="ro" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt suportă numai volume TrueCrypt create cu seria de versiuni TrueCrypt 6.x</string>
+ <string lang="ro" key="TEST">Testare</string>
+ <string lang="ro" key="KEYFILE">Fișier-cheie</string>
+ <string lang="ro" key="VKEY_08">Backspace</string>
+ <string lang="ro" key="VKEY_09">Tab</string>
+ <string lang="ro" key="VKEY_0C">Clear</string>
+ <string lang="ro" key="VKEY_0D">Enter</string>
+ <string lang="ro" key="VKEY_13">Pause</string>
+ <string lang="ro" key="VKEY_14">Caps Lock</string>
+ <string lang="ro" key="VKEY_20">Bară spațiu</string>
+ <string lang="ro" key="VKEY_21">Page Up</string>
+ <string lang="ro" key="VKEY_22">Page Down</string>
+ <string lang="ro" key="VKEY_23">End</string>
+ <string lang="ro" key="VKEY_24">Home</string>
+ <string lang="ro" key="VKEY_25">Săgeată stânga</string>
+ <string lang="ro" key="VKEY_26">Săgeată sus</string>
+ <string lang="ro" key="VKEY_27">Săgeată dreapta</string>
+ <string lang="ro" key="VKEY_28">Săgeată jos</string>
+ <string lang="ro" key="VKEY_29">Tastă selectare</string>
+ <string lang="ro" key="VKEY_2A">Tastă tipărire</string>
+ <string lang="ro" key="VKEY_2B">Tastă executare</string>
+ <string lang="ro" key="VKEY_2C">Print Screen</string>
+ <string lang="ro" key="VKEY_2D">Insert</string>
+ <string lang="ro" key="VKEY_2E">Delete</string>
+ <string lang="ro" key="VKEY_5D">Tastă aplicații</string>
+ <string lang="ro" key="VKEY_5F">Sleep</string>
+ <string lang="ro" key="VKEY_90">Num Lock</string>
+ <string lang="ro" key="VKEY_91">Scroll Lock</string>
+ <string lang="ro" key="VKEY_A6">Navigator înapoi</string>
+ <string lang="ro" key="VKEY_A7">Navigator înainte</string>
+ <string lang="ro" key="VKEY_A8">Navigator actualizare</string>
+ <string lang="ro" key="VKEY_A9">Navigator stop</string>
+ <string lang="ro" key="VKEY_AA">Navigator căutare</string>
+ <string lang="ro" key="VKEY_AB">Navigator favorite</string>
+ <string lang="ro" key="VKEY_AC">Navigator Acasă</string>
+ <string lang="ro" key="VKEY_AD">Oprire volum</string>
+ <string lang="ro" key="VKEY_AE">Reducere volum</string>
+ <string lang="ro" key="VKEY_AF">Creștere volum</string>
+ <string lang="ro" key="VKEY_B0">Pista următoare</string>
+ <string lang="ro" key="VKEY_B1">Pista anterioară</string>
+ <string lang="ro" key="VKEY_B2">Oprire media</string>
+ <string lang="ro" key="VKEY_B3">Redare/Pauză media</string>
+ <string lang="ro" key="VKEY_B4">Tastă pornire e-mail</string>
+ <string lang="ro" key="VKEY_B5">Tastă selectare media</string>
+ <string lang="ro" key="VKEY_B6">Aplicația 1</string>
+ <string lang="ro" key="VKEY_B7">Applicația 2</string>
+ <string lang="ro" key="VKEY_F6">Attn</string>
+ <string lang="ro" key="VKEY_F7">CrSel</string>
+ <string lang="ro" key="VKEY_F8">ExSel</string>
+ <string lang="ro" key="VKEY_FA">Redare</string>
+ <string lang="ro" key="VKEY_FB">Zoom</string>
+ <string lang="ro" key="VK_NUMPAD">NumPad</string>
+ <string lang="ro" key="VK_SHIFT">Shift</string>
+ <string lang="ro" key="VK_CONTROL">Control</string>
+ <string lang="ro" key="VK_ALT">Alt</string>
+ <string lang="ro" key="VK_WIN">Win</string>
+ <string lang="ro" key="BYTE">B</string>
+ <string lang="ro" key="KB">KB</string>
+ <string lang="ro" key="MB">MB</string>
+ <string lang="ro" key="GB">GB</string>
+ <string lang="ro" key="TB">TB</string>
+ <string lang="ro" key="PB">PB</string>
+ <string lang="ro" key="B_PER_SEC">B/s</string>
+ <string lang="ro" key="KB_PER_SEC">KB/s</string>
+ <string lang="ro" key="MB_PER_SEC">MB/s</string>
+ <string lang="ro" key="GB_PER_SEC">GB/s</string>
+ <string lang="ro" key="TB_PER_SEC">TB/s</string>
+ <string lang="ro" key="PB_PER_SEC">PB/s</string>
+ <string lang="ro" key="TRIPLE_DOT_GLYPH_ELLIPSIS">…</string>
+ <control lang="ro" key="IDC_BOOT_LOADER_CACHE_PIM">Include și MI&ampP; la salvarea parolei de autentificare la pornire</control>
+ <control lang="ro" key="IDC_PREF_CACHE_PIM">Include MIP când se salvează o parolă</control>
+ <control lang="ro" key="IDC_SHOW_DISCONNECTED_NETWORK_DRIVES">Fă unitățile de rețea deconectate disponibile pentru montare</control>
+ <string lang="ro" key="PASSWORD_UTF8_TOO_LONG">Parola introdusă este prea lungă: reprezentarea sa în UTF-8 depășește 64 de baiți.</string>
+ <string lang="ro" key="PASSWORD_UTF8_INVALID">Parola introdusă conține caractere în Unicode care nu s-au putut converti în UTF-8.</string>
+ <string lang="ro" key="INIT_DLL">Eroare: Eșuare încărcare a unei librării de sistem.</string>
+ <string lang="ro" key="ERR_EXFAT_INVALID_VOLUME_SIZE">Mărimea fișierului volumului specificată în linia de comandă este incompatibilă cu sistemul de fișiere exFAT.</string>
+ <control lang="ro" key="IDT_ENTROPY_BAR">Entropia colectată din mișcările mausului</control>
+ <control lang="ro" key="IDT_VOLUME_ID">ID volum:</control>
+ <string lang="ro" key="VOLUME_ID">ID volum</string>
+ <control lang="ro" key="IDC_FAVORITE_USE_VOLUME_ID">Folosire ID volume pentru montare favorite</control>
+ <string lang="ro" key="VOLUME_ID_INVALID">Valoarea ID a volumului este invalidă</string>
+ <string lang="ro" key="VOLUME_ID_NOT_FOUND">Nu s-a găsit niciun volum în sistem cu valoarea ID specificată</string>
+ <string lang="ro" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Copiere valoare în memorie...</string>
+ <control lang="ro" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Nu solicita MIP în ecranul de autentificare la pornire (valoarea MIP este stocată necriptată pe disc)</control>
+ <string lang="ro" key="DISABLE_BOOT_LOADER_PIM_PROMPT">ATENȚIONARE: Rețineți că, dacă activați această opțiune, valoarea MIP va fi stocată necriptată pe disc.\n\nSunteți sigur că doriți activarea acestei opțiuni?</string>
+ <string lang="ro" key="PIM_TOO_BIG">Valoarea maximă pentru Multiplicatorul Iterațiilor Personal (MIP) este 2147468.</string>
+ <control lang="ro" key="IDC_SKIP_RESCUE_VERIFICATION">Ignoră verificarea Discului de Recuperare</control>
+ <control lang="ro" key="IDC_HIDE_WAITING_DIALOG">NU afișa dialogul cu mesajul de așteptare la efecturarea operațiilor</control>
+ <control lang="ro" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Nu solicita algoritmul Hash la ecranul de autentificare la pornirea</control>
+ <string lang="ro" key="KUZNYECHIK_HELP">Kuznyechik este un cifru de blocuri prima data publicat în 2015 și definit în Standardul Național al Federației Ruse GOST R 34.12-2015 și în RFC 7801. Chei de 256 biți, blocuri de 128 biți. Modul de operare este XTS.</string>
+ <string lang="ro" key="CAMELLIA_HELP">Dezvoltat în comun de Mitsubishi Electric și NTT din Japonia. Publicat prima oară în 2000. Cheie de 256 biți, blocuri de 128 biți. Modul de operare este XTS. A fost aprobat pentru utilizare de către ISO/IEC, proiectul NESSIE al Uniunii Europene și de proiectul japonez CRYPTREC.</string>
+ <string lang="ro" key="TIME">Timp</string>
+ <string lang="ro" key="ITERATIONS">Iterații</string>
+ <string lang="ro" key="PRE-BOOT">Pornire</string>
+ <string lang="ro" key="RESCUE_DISK_EFI_INFO">Înainte de a putea cripta partiția, trebuie să creați un Disc de Recuperare VeraCrypt (DRV), ce va servi următoarelor scopuri:\n\n- Dacă VeraCrypt Boot Loader, cheia principală sau alte date critice sunt distruse, DRV vă va permite să le restaurați(cu toate acestea, reținți că, încă va trebui să introduceți parola corectă).\n\n- Dacă Windows este corupt și nu poate porni, DRV permite decriptarea permanentă a partiției înainte de pornirea Windows.\n\n- DRV va conține o copie a EFI boot loader și vă va permite să-l restaurați dacă e necesar.\n\nFișierul ZIP al imaginii Discului de Recuperare VeraCrypt va fi creat la destinația specificată mai jos.</string>
+ <string lang="ro" key="RESCUE_DISK_EFI_EXTRACT_INFO">Fișierul ZIP al imaginii Discului de recuperare a fost creat și stocat în acest fișier:\n%s\n\nAcum va trebui să-l extrageți pe o dispozitiv USB care este formatat ca FAT/FAT32.\n\n%lsDupă ce ați creat Discul de Recuperare, dați clic pe Înainte pentru a verifica dacă a fost creat corect.</string>
+ <string lang="ro" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">Fișierul ZIP al imaginii Discului de recuperare a fost creat și stocat în acest fișier:\n%s\n\nAcum va trebui fie să-l extrageți pe o unitate USB care este formatată ca FAT/FAT32 sau să-l mutați într-un loc sigur pentru o utilizare ulterioară.\n\n%lsClic pe Înainte pentru a continua.</string>
+ <string lang="ro" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">IMPORTANT: Rețineți că fișierul zip trebuie extras direct în rădăcina unității USB. De exemplu, dacă litera unității USB este E:, atunci extrăgând arhiva zip ar trebui să fie creat un folder E:\\EFI pe unitatea USB.\n\n</string>
+ <string lang="ro" key="RESCUE_DISK_EFI_CHECK_FAILED">Nu se poate verifica dacă Discul de Recuperare a fost extras corect.\n\nDacă ați extras Discul de Recuperare, scoateți și reintroduceți dispozitivul USB; apoi dați clic pe Înainte pentru a reîncerca. Dacă nici acum nu funcționează, încercați cu alt dispozitiv USB sau alt program de dezarhivare.\n\nDacă nu ați extras încă Discul de Recuperare, atunci extrageți-l acum și apoi dați clic pe Înainte.\n\nDacă ați încercat să verificați un Disc de Recuperare VeraCrypt creat înainte de a porni acest asistent, rețineți că un astfel de disc nu poate fi utilizat, deoarece a fost creat pentru o cheie principală diferită. Trebuie să extrageți noua imagine ZIP a Discului de Recuperare generat.</string>
+ <string lang="ro" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Nu se poate verifica dacă Discul de Recuperare a fost extras corect.\n\nDacă ați extras imaginea Discului de Recuperare pe un dispozitiv USB, scoteți-l și reintroduceți-l; apoi reîncercați. Dacă nici acum nu funcționează, încercați cu alt dispozitiv USB sau program de dezarhivare.\n\nDacă ați încercat să verificați un Disc de Recuperare VeraCrypt creat pentru o cheie principală, parolă, etc. diferite, rețineți că un astfel de disc va eșua întotdeauna la verificare. Pentru a crea un nou Disc de Recuperare complet compatibil cu configurația curentă, selectați 'Sistem' > 'Creare disc de recuperare'.</string>
+ <string lang="ro" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Imaginea Discului de Recuperare a fost creată și stocată în acest fișier:\n%s\n\nAcum va trebui să extrageți imaginea pe un dispozitiv USB care este formatat ca FAT/FAT32.\n\nIMPORTANT: Rețineți că fișierul zip trebuie extras direct în rădăcina unității USB. De exemplu, dacă litera unității USB este E:, atunci extrăgând arhiva zip ar trebui să fie creat un folder E:\\EFI pe unitatea USB.\n\nDupă ce ați creat Discul de Recuperare, selectați 'Sistem' > 'Verificare disc de recuperare' pentru a verifica dacă a fost creat corect.</string>
+ <control lang="ro" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Folosire ecran securizat pentru introducerea parolei</control>
+ <string lang="ro" key="ERR_REFS_INVALID_VOLUME_SIZE">Dimensiunea volumului specificată în linia de comandă este incompatibilă cu sistemul de fișiere ReFS selectat.</string>
+ <control lang="ro" key="IDC_EDIT_DCSPROP">Editare configurație încărcător sistem</control>
+ <control lang="ro" key="IDC_SHOW_PLATFORMINFO">Afișare informații platformă EFI</control>
+ <string lang="ro" key="BOOT_LOADER_CONFIGURATION_FILE">Fișier configurație încărcător sistem</string>
+ <string lang="ro" key="EFI_PLATFORM_INFORMATION">Informații platformă EFI</string>
+ <string lang="ro" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">ATENȚIE: Utilizatorii neexperimentați nu ar trebui să încerce editarea manuală a configurației încărcătorului de sistem.\n\nContinuați?</string>
+ <string lang="ro" key="DCSPROP_XML_VALIDATION_FAILED">ATENȚIE: Eșuare la validarea formatului XML al încărcătorului de sistem. Verificați modificările efectuate.</string>
+ <control lang="ro" key="IDT_ADVANCED_OPTIONS">Opțiuni avansate</control>
+ </localization>
+ <!-- XML Schema -->
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="VeraCrypt">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="localization">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="language">
+ <xs:complexType>
+ <xs:attribute name="langid" type="xs:string" use="required" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="en-name" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" use="required" />
+ <xs:attribute name="translators" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="4" maxOccurs="4" name="font">
+ <xs:complexType>
+ <xs:attribute name="lang" type="xs:string" use="required" />
+ <xs:attribute name="class" type="xs:string" use="required" />
+ <xs:attribute name="size" type="xs:unsignedByte" use="required" />
+ <xs:attribute name="face" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element maxOccurs="unbounded" name="control">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="lang" type="xs:string" use="required" />
+ <xs:attribute name="key" type="xs:string" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element maxOccurs="unbounded" name="string">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="lang" type="xs:string" use="required" />
+ <xs:attribute name="key" type="xs:string" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="prog-version" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+</VeraCrypt>
diff --git a/Translations/Language.ru.xml b/Translations/Language.ru.xml
index 99e1a52..a288e74 100644
--- a/Translations/Language.ru.xml
+++ b/Translations/Language.ru.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version="1.19">
+ <localization prog-version="1.21">
<!-- Languages -->
- <language langid="ru" name="РуÑÑкий" en-name="Russian" version="1.0.0" translators="Dmitry Yerokhin" />
+ <language langid="ru" name="РуÑÑкий" en-name="Russian" version="1.0.3" translators="Dmitry Yerokhin" />
<!-- Fonts -->
<font lang="ru" class="normal" size="11" face="default" />
<font lang="ru" class="bold" size="13" face="Arial" />
@@ -99,7 +99,7 @@
<control lang="ru" key="IDT_SINGLE_BOOT">Выберите Ñту опцию, еÑли в ПК уÑтановлена только одна ОС (даже еÑли она Ñ Ð½ÐµÑколькими пользователÑми).</control>
<control lang="ru" key="IDT_SPEED">СкороÑÑ‚ÑŒ</control>
<control lang="ru" key="IDT_STATUS">СтатуÑ</control>
- <control lang="ru" key="IDT_SYSENC_KEYS_GEN_INFO">Ключи, Ñоль и другие данные уÑпешно Ñозданы. ЕÑли вы хотите Ñгенерировать новые ключи, нажмите 'Ðазад', а затем 'Далее'. ЕÑли же нет, то нажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</control>
+ <control lang="ru" key="IDT_SYSENC_KEYS_GEN_INFO">Ключи, Ñоль и другие данные уÑпешно Ñозданы. ЕÑли вы хотите Ñоздать новые ключи, нажмите 'Ðазад', а затем 'Далее'. ЕÑли же нет, то нажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</control>
<control lang="ru" key="IDT_SYS_DEVICE">Зашифровать раздел/диÑк, где уÑтановлена Windows. Перед каждой загрузкой Windows нужно будет вводить пароль Ð´Ð»Ñ Ð´Ð¾Ñтупа к ОС, ÑÑ‡Ð¸Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð¸ запиÑи файлов и т.д. Дополнительно - Ñоздать Ñкрытую ОС.</control>
<control lang="ru" key="IDT_SYS_PARTITION">Выберите Ñту опцию, чтобы зашифровать раздел, где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Windows.</control>
<control lang="ru" key="IDT_VOLUME_LABEL">Метка тома в Windows:</control>
@@ -121,13 +121,13 @@
<control lang="ru" key="IDC_CREATE">Создать</control>
<control lang="ru" key="IDC_CREATE_VOLUME">С&amp;оздать том</control>
<control lang="ru" key="IDC_DISABLE_BOOT_LOADER_OUTPUT">ПуÑто&amp;й Ñкран аутентификации (только указанный ниже текÑÑ‚)</control>
- <control lang="ru" key="IDC_DISABLE_EVIL_MAID_ATTACK_DETECTION">Ðе обнаруживать атаку "Evil Maid"</control>
+ <control lang="ru" key="IDC_DISABLE_EVIL_MAID_ATTACK_DETECTION">Ðе обнаруживать атаку 'Evil Maid'</control>
<control lang="ru" key="IDC_ENABLE_HARDWARE_ENCRYPTION">УÑкорÑÑ‚ÑŒ (де)шифрование AES Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ AES-инÑтрукций процеÑÑора (еÑли возможно)</control>
<control lang="ru" key="IDC_ENABLE_KEYFILES">Ключ. файлы</control>
<control lang="ru" key="IDC_ENABLE_NEW_KEYFILES">Ключ. файлы</control>
<control lang="ru" key="IDC_EXIT">В&amp;ыход</control>
<control lang="ru" key="IDC_FAVORITES_HELP_LINK">Об избранных томах</control>
- <control lang="ru" key="IDC_FAVORITE_DISABLE_HOTKEY">Ð&amp;е монтировать выбранный том, еÑли нажата клавиша Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… томов</control>
+ <control lang="ru" key="IDC_FAVORITE_DISABLE_HOTKEY">Ð&amp;е монтировать выбранный том, еÑли нажата клавиша Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… томов</control>
<control lang="ru" key="IDC_FAVORITE_MOUNT_ON_ARRIVAL">Монт&amp;ировать выбранный том при подключении уÑтройÑтва, на котором он раÑположен</control>
<control lang="ru" key="IDC_FAVORITE_MOUNT_ON_LOGON">Монтировать выбранный том при в&amp;ходе в ÑиÑтему</control>
<control lang="ru" key="IDC_FAVORITE_MOUNT_READONLY">Монтировать выбранный том как предназначенный &amp;только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ</control>
@@ -171,7 +171,7 @@
<control lang="ru" key="IDC_PREF_MOUNT_REMOVABLE">Монтировать тома как Ñменные ноÑители</control>
<control lang="ru" key="IDC_PREF_OPEN_EXPLORER">Открывать Проводник Ð´Ð»Ñ ÑƒÑпешно Ñмонтированного тома</control>
<control lang="ru" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Временно кÑшировать пароль при монтировании избранных томов</control>
- <control lang="ru" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Другой значок в ÑиÑтемном лотке, еÑли еÑÑ‚ÑŒ Ñмонтированные тома</control>
+ <control lang="ru" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Другой значок в облаÑти уведомлений при Ñмонтированных томах</control>
<control lang="ru" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Очищать кÑш паролей при авторазмонтировании</control>
<control lang="ru" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Очищать кÑш паролей при выходе</control>
<control lang="ru" key="IDC_PRESERVE_TIMESTAMPS">СохранÑÑ‚ÑŒ дату Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñƒ файл-контейнеров</control>
@@ -321,8 +321,8 @@
<control lang="ru" key="IDC_KEYFILES_HIDVOL_PROT">К&amp;люч.файлы...</control>
<control lang="ru" key="IDC_KEYREMOVE">&amp;Удалить</control>
<control lang="ru" key="IDC_KEYREMOVEALL">Удалить &amp;вÑе</control>
- <control lang="ru" key="IDC_LINK_HIDVOL_PROTECTION_INFO">Что такое 'Защита Ñкрытых томов'?</control>
- <control lang="ru" key="IDC_LINK_KEYFILES_INFO">Что такое 'ключевой файл'?</control>
+ <control lang="ru" key="IDC_LINK_HIDVOL_PROTECTION_INFO">О защите Ñкрытых томов</control>
+ <control lang="ru" key="IDC_LINK_KEYFILES_INFO">О ключевых файлах</control>
<control lang="ru" key="IDC_MOUNT_REMOVABLE">Монтировать том как &amp;Ñменный ноÑитель</control>
<control lang="ru" key="IDC_MOUNT_SYSENC_PART_WITHOUT_PBA">Монтировать раздел Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ ОС &amp;без дозагр. аутентификации</control>
<control lang="ru" key="IDC_PARALLELIZATION_LABEL_LINK">Потоки:</control>
@@ -335,15 +335,15 @@
<control lang="ru" key="IDC_USE_EMBEDDED_HEADER_BAK">По возможноÑти применÑÑ‚ÑŒ копию заголовка, вÑтроенну&amp;ÑŽ в том</control>
<control lang="ru" key="IDC_XTS_MODE_ENABLED">XTS-режим</control>
<control lang="ru" key="IDD_ABOUT_DLG">О программе VeraCrypt</control>
- <control lang="ru" key="IDD_BENCHMARK_DLG">ТеÑÑ‚ ÑкороÑти алгоритмов ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ VeraCrypt</control>
- <control lang="ru" key="IDD_CIPHER_TEST_DLG">ТеÑÑ‚ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¾Ð² VeraCrypt</control>
+ <control lang="ru" key="IDD_BENCHMARK_DLG">ТеÑÑ‚ ÑкороÑти алгоритмов шифрованиÑ</control>
+ <control lang="ru" key="IDD_CIPHER_TEST_DLG">ТеÑÑ‚ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¾Ð²</control>
<control lang="ru" key="IDD_COMMANDHELP_DLG">Справка по командной Ñтроке</control>
- <control lang="ru" key="IDD_KEYFILES">Ключевые файлы VeraCrypt</control>
- <control lang="ru" key="IDD_KEYFILE_GENERATOR">Генератор ключевых файлов VeraCrypt</control>
+ <control lang="ru" key="IDD_KEYFILES">Ключевые файлы</control>
+ <control lang="ru" key="IDD_KEYFILE_GENERATOR">Генератор ключевых файлов</control>
<control lang="ru" key="IDD_LANGUAGE">Язык интерфейÑа VeraCrypt</control>
- <control lang="ru" key="IDD_MOUNT_OPTIONS">Параметры Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ VeraCrypt</control>
+ <control lang="ru" key="IDD_MOUNT_OPTIONS">Параметры монтированиÑ</control>
<control lang="ru" key="IDD_NEW_TOKEN_KEYFILE">СвойÑтва ключевого файла нового токена безопаÑноÑти</control>
- <control lang="ru" key="IDD_RANDOM_POOL_ENRICHMENT">Обогащение Ñлучайного пула VeraCrypt</control>
+ <control lang="ru" key="IDD_RANDOM_POOL_ENRICHMENT">Обогащение Ñлучайного пула</control>
<control lang="ru" key="IDD_RAWDEVICES_DLG">Выберите раздел или уÑтройÑтво</control>
<control lang="ru" key="IDD_STATIC_MODELESS_WAIT_DLG">VeraCrypt</control>
<control lang="ru" key="IDD_TOKEN_KEYFILES">Ключевые файлы токена безопаÑноÑти</control>
@@ -359,8 +359,8 @@
<control lang="ru" key="IDT_KEYFILE_WARNING">!!! При утере ключевого файла или повреждении его первых 1024 килобайт монтирование иÑпользующих Ñтот файл томов невозможно!</control>
<control lang="ru" key="IDT_KEY_UNIT">бит</control>
<control lang="ru" key="IDT_NUMBER_KEYFILES">ЧиÑло ключевых файлов:</control>
- <control lang="ru" key="IDT_KEYFILES_SIZE">Размер ключевых файлов (в Байтах):</control>
- <control lang="ru" key="IDT_KEYFILES_BASE_NAME">Ð˜Ð¼Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ñ… файлов:</control>
+ <control lang="ru" key="IDT_KEYFILES_SIZE">Размер файлов (в байтах):</control>
+ <control lang="ru" key="IDT_KEYFILES_BASE_NAME">Базовое Ð¸Ð¼Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ñ… файлов:</control>
<control lang="ru" key="IDT_LANGPACK_AUTHORS">Ðвтор перевода:</control>
<control lang="ru" key="IDT_PLAINTEXT">Размер:</control>
<control lang="ru" key="IDT_PLAINTEXT_SIZE_UNIT">бит</control>
@@ -371,7 +371,7 @@
<control lang="ru" key="IDT_SECURITY_TOKEN">Токен:</control>
<control lang="ru" key="IDT_SORT_METHOD">Сортировка:</control>
<control lang="ru" key="IDT_STATIC_MODELESS_WAIT_DLG_INFO">Этот процеÑÑ Ð¼Ð¾Ð¶ÐµÑ‚ быть долгим, подождите...</control>
- <control lang="ru" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Подождите...\nПроцеÑÑ Ð¼Ð¾Ð¶ÐµÑ‚ оказатьÑÑ Ð´Ð»Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼,\nпри Ñтом VeraCrypt переÑтанет реагировать на запроÑÑ‹.</control>
+ <control lang="ru" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Подождите...\nПроцеÑÑ Ð¼Ð¾Ð¶ÐµÑ‚ быть долгим,\nа VeraCrypt переÑтанет реагировать на запроÑÑ‹.</control>
<control lang="ru" key="IDT_TEST_BLOCK_NUMBER">ЧиÑло блоков:</control>
<control lang="ru" key="IDT_TEST_CIPHERTEXT">Зашифрованный текÑÑ‚ (16-ричное)</control>
<control lang="ru" key="IDT_TEST_DATA_UNIT_NUMBER">ЧиÑло единиц Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ (64-бит 16-ричное, размер единицы Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ - 512 байт)</control>
@@ -389,33 +389,33 @@
<!-- Strings -->
<string lang="ru" key="ABOUTBOX">&amp;О программе...</string>
<string lang="ru" key="ACCESSMODEFAIL">Ðевозможно ÑнÑÑ‚ÑŒ атрибут 'только чтение' Ñо Ñтарого тома. Проверьте, разрешён ли доÑтуп к файлу.</string>
- <string lang="ru" key="ACCESS_DENIED">Ошибка! Ðет доÑтупа.\n\nРаздел, к которому вы пытаетеÑÑŒ получить доÑтуп, имеет длину 0 Ñекторов, либо Ñто загрузочное уÑтройÑтво.</string>
+ <string lang="ru" key="ACCESS_DENIED">ОШИБКÐ: Ðет доÑтупа.\n\nРаздел, к которому вы пытаетеÑÑŒ получить доÑтуп, имеет длину 0 Ñекторов, либо Ñто загрузочное уÑтройÑтво.</string>
<string lang="ru" key="ADMINISTRATOR">ÐдминиÑтратор</string>
<string lang="ru" key="ADMIN_PRIVILEGES_DRIVER">Ð”Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ драйвера VeraCrypt нужно войти в ÑиÑтему Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора.</string>
<string lang="ru" key="ADMIN_PRIVILEGES_WARN_DEVICES">Ð”Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ/дешифрованиÑ/Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°/уÑтройÑтва нужно войти в ÑиÑтему Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора.\n\nК томам на оÑнове файлов Ñто не отноÑитÑÑ.</string>
<string lang="ru" key="ADMIN_PRIVILEGES_WARN_HIDVOL">Чтобы Ñоздать Ñкрытый том, нужно войти в ÑиÑтему Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора.\n\nПродолжить?</string>
- <string lang="ru" key="ADMIN_PRIVILEGES_WARN_NTFS">Чтобы форматировать тома как NTFS, нужно войти в ÑиÑтему Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора.\n\nБез привилегий админиÑтратора можно форматировать тома только как FAT.</string>
- <string lang="ru" key="AES_HELP">Утверждённый FIPS (СШÐ) алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (Rijndael, опубликован в 1998 г.), разрешён к применению в федеральных Ñтруктурах Ð¡Ð¨Ð Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ важнейшей информации. 256-бит ключ, 128-бит блок, 14 раундов (AES-256). Режим работы: XTS.</string>
+ <string lang="ru" key="ADMIN_PRIVILEGES_WARN_NTFS">Чтобы форматировать тома как NTFS/exFAT, нужно войти в ÑиÑтему Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора.\n\nБез привилегий админиÑтратора можно форматировать тома только как FAT.</string>
+ <string lang="ru" key="AES_HELP">Утверждённый FIPS (СШÐ) алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (Rijndael, опубликован в 1998 г.), разрешён к применению в федеральных Ñтруктурах Ð¡Ð¨Ð Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ важнейшей информации. Ключ: 256 бит, блок: 128 бит, раундов: 14 (AES-256). Режим работы: XTS.</string>
<string lang="ru" key="ALREADY_MOUNTED">Том уже Ñмонтирован.</string>
- <string lang="ru" key="ERR_SELF_TESTS_FAILED">ОСТОРОЖÐО: По крайней мере один алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÂ Ð¿Ñ€Ð¾ÑˆÑ‘Ð» автоматичеÑкое ÑамотеÑтирование.\n\nВозможно, повреждена уÑтановка VeraCrypt.</string>
- <string lang="ru" key="ERR_NOT_ENOUGH_RANDOM_DATA">ОСТОРОЖÐО: Ð’ пуле генератора Ñлучайных чиÑел недоÑтаточно данных Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾Ð³Ð¾ объёма Ñлучайной информации.\n\nПродолжать дальше не Ñледует. Выберите в меню 'Справка' пункт 'Сообщить об ошибке' и извеÑтите авторов.</string>
- <string lang="ru" key="ERR_HARDWARE_ERROR">Повреждён диÑк (на нём физичеÑкий дефект) или кабель, либо Ñбоит памÑÑ‚ÑŒ компьютера.\n\nЭто проблема аппаратной чаÑти вашего ПК, а не VeraCrypt. ПожалуйÑта, ÐЕ Ñообщайте нам о ней как об ошибке/проблеме в работе VeraCrypt и ÐЕ проÑите о помощи в форумах VeraCrypt. ОбратитеÑÑŒ за конÑультацией к изготовителю Ñвоего компьютера. СпаÑибо.\n\nПримечание: еÑли ошибка проиÑходит регулÑрно в одном и том же меÑте, наиболее вероÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð° - в повреждённом блоке на диÑке, который можно попытатьÑÑ Ð¸Ñправить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтороннего ПО (учтите, что во многих ÑлучаÑÑ… команда 'chkdsk /r' беÑполезна, так как она работает лишь на уровне файловой ÑиÑтемы; иногда chkdsk не может даже обнаружить наличие ошибки).</string>
+ <string lang="ru" key="ERR_SELF_TESTS_FAILED">Ð’ÐИМÐÐИЕ: По крайней мере один алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÂ Ð¿Ñ€Ð¾ÑˆÑ‘Ð» автоматичеÑкое ÑамотеÑтирование.\n\nВозможно, повреждена уÑтановка VeraCrypt.</string>
+ <string lang="ru" key="ERR_NOT_ENOUGH_RANDOM_DATA">Ð’ÐИМÐÐИЕ: Ð’ пуле генератора Ñлучайных чиÑел недоÑтаточно данных Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾Ð³Ð¾ объёма Ñлучайной информации.\n\nПродолжать дальше не Ñледует. ИзвеÑтите об ошибке авторов, выбрав ÑоответÑтвующий пункт в меню 'Справка'.</string>
+ <string lang="ru" key="ERR_HARDWARE_ERROR">Повреждён диÑк (на нём физичеÑкий дефект) или кабель, либо Ñбоит памÑÑ‚ÑŒ компьютера.\n\nЭто проблема аппаратной чаÑти вашего ПК, а не VeraCrypt. ПожалуйÑта, ÐЕ Ñообщайте нам о ней как об ошибке/проблеме в работе VeraCrypt и ÐЕ проÑите о помощи в форумах VeraCrypt. СвÑжитеÑÑŒ Ñ Ð¸Ð·Ð³Ð¾Ñ‚Ð¾Ð²Ð¸Ñ‚ÐµÐ»ÐµÐ¼ Ñвоего ПК. СпаÑибо.\n\nПримечание: еÑли ошибка проиÑходит регулÑрно в одном и том же меÑте, наиболее вероÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð° - в повреждённом блоке на диÑке, который можно попытатьÑÑ Ð¸Ñправить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтороннего ПО (учтите, что команда 'chkdsk /r' зачаÑтую беÑполезна, так как работает лишь на уровне файловой ÑиÑтемы; иногда chkdsk не может даже обнаружить наличие ошибки).</string>
<string lang="ru" key="DEVICE_NOT_READY_ERROR">ЕÑли вы обращаетеÑÑŒ к накопителю на Ñменных ноÑителÑÑ…, удоÑтоверьтеÑÑŒ, что в накопителе еÑÑ‚ÑŒ ноÑитель. Также возможно повреждение накопителÑ/ноÑÐ¸Ñ‚ÐµÐ»Ñ (физичеÑкий дефект) или повреждение/отключение кабелÑ.</string>
- <string lang="ru" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Драйверы аппаратуры в вашей ÑиÑтеме Ñодержат ошибку, препÑÑ‚Ñтвующую шифрованию вÑего ÑиÑтемного диÑка.\n\nПопробуйте обновить или удалить Ñторонние драйверы чипÑета (ÐМС). ЕÑли Ñто не поможет, попробуйте зашифровать только ÑиÑтемный раздел.</string>
+ <string lang="ru" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Драйверы аппаратуры в вашей ÑиÑтеме Ñодержат ошибку, препÑÑ‚Ñтвующую шифрованию вÑего ÑиÑтемного диÑка.\n\nПопробуйте обновить или удалить Ñторонние (не Microsoft) драйверы чипÑета. ЕÑли Ñто не поможет, попробуйте зашифровать только ÑиÑтемный раздел.</string>
<string lang="ru" key="BAD_DRIVE_LETTER">ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð±ÑƒÐºÐ²Ð° диÑка.</string>
<string lang="ru" key="INVALID_PATH">Ðеверный путь.</string>
<string lang="ru" key="CANCEL">Отмена</string>
- <string lang="ru" key="CANNOT_CALC_SPACE">Ðет доÑтупа к уÑтройÑтву. Проверьте, имеетÑÑ Ð»Ð¸ выбранное уÑтройÑтво и не занÑто ли оно.</string>
+ <string lang="ru" key="CANNOT_CALC_SPACE">Ðет доÑтупа к уÑтройÑтву. Проверьте, ÑущеÑтвует ли выбранное уÑтройÑтво и не занÑто ли оно.</string>
<string lang="ru" key="CAPSLOCK_ON">Внимание! Ðажата клавиша Caps Lock. Это может привеÑти к неправильному вводу паролÑ.</string>
<string lang="ru" key="VOLUME_TYPE_TITLE">Тип тома</string>
- <string lang="ru" key="HIDDEN_VOLUME_TYPE_HELP">Может так ÑлучитьÑÑ, что кто-то вынудит Ð²Ð°Ñ Ñообщить пароль от зашифрованного тома. Ð’ Ñ€Ñде Ñитуаций вы проÑто не Ñможете отказатьÑÑ Ð²Ñ‹Ð´Ð°Ñ‚ÑŒ пароль (например при вымогательÑтве). Ð’ подобных ÑлучаÑÑ… поможет так называемый 'Ñкрытый том', позволÑющий не выдавать Ð¿Ð°Ñ€Ð¾Ð»Ñ Ðº дейÑтвительно ценным данным.</string>
+ <string lang="ru" key="HIDDEN_VOLUME_TYPE_HELP">Может так ÑлучитьÑÑ, что кто-то вынудит Ð²Ð°Ñ Ñообщить пароль от зашифрованного тома. Ð’ Ñ€Ñде Ñитуаций вы проÑто не Ñможете отказатьÑÑ Ð²Ñ‹Ð´Ð°Ñ‚ÑŒ пароль (например при вымогательÑтве). Ð’ подобных ÑлучаÑÑ… поможет так называемый 'Ñкрытый том', позволÑющий не выдавать пароль к дейÑтвительно ценным данным.</string>
<string lang="ru" key="NORMAL_VOLUME_TYPE_HELP">Выберите Ñту опцию, чтобы Ñоздать обычный том VeraCrypt.</string>
<string lang="ru" key="HIDDEN_OS_PRECLUDES_SINGLE_KEY_WDE">Внимание! ЕÑли вы хотите, чтобы Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема была уÑтановлена на Ñкрытом томе на оÑнове раздела, то веÑÑŒ ÑиÑтемный диÑк Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ лишь одного ключа.</string>
<string lang="ru" key="CIPHER_HIDVOL_HOST_TITLE">Шифрование внешнего тома</string>
<string lang="ru" key="CIPHER_HIDVOL_TITLE">Шифрование Ñкрытого тома</string>
<string lang="ru" key="CIPHER_TITLE">ÐаÑтройки шифрованиÑ</string>
<string lang="ru" key="CLEAN_WINMRU_FAILED">Ð’ÐИМÐÐИЕ: Ошибка очиÑтки пути к поÑледнему выбранному тому/ключевому файлу (запомненному Ñелектором файлов).</string>
- <string lang="ru" key="COMPRESSION_NOT_SUPPORTED">ОШИБКÐ: Контейнер был Ñжат на уровне файловой ÑиÑтемы. VeraCrypt не поддерживает Ñжатые контейнеры (Ñжатие зашифрованных данных неÑффективно и избыточно).\n\nОтключите Ñжатие контейнера, выполнив Ñледующие шаги: 1) Щёлкните правой кнопкой мыши в Проводнике Windows (не в VeraCrypt). 2) Выберите пункт 'СвойÑтва'. 3) Ð’ окне 'СвойÑтва' нажмите кнопку 'Дополнительно'. 4) Ð’ окне 'Дополнительные атрибуты' выключите параметр 'Сжимать Ñодержимое Ð´Ð»Ñ Ñкономии меÑта на диÑке' и нажмите OK. 5) Ðажмите OK в окне 'СвойÑтва'.</string>
+ <string lang="ru" key="COMPRESSION_NOT_SUPPORTED">ОШИБКÐ: Контейнер был Ñжат на уровне файловой ÑиÑтемы. VeraCrypt не поддерживает Ñжатые контейнеры (Ñжатие зашифрованных данных неÑффективно и избыточно).\n\nОтключите Ñжатие контейнера, выполнив Ñледующее: 1) Щёлкните правой кнопкой мыши в Проводнике Windows (не в VeraCrypt). 2) Выберите пункт 'СвойÑтва'. 3) Ð’ окне 'СвойÑтва' нажмите кнопку 'Дополнительно'. 4) Ð’ окне 'Дополнительные атрибуты' выключите параметр 'Сжимать Ñодержимое Ð´Ð»Ñ Ñкономии меÑта на диÑке' и нажмите OK. 5) Ðажмите OK в окне 'СвойÑтва'.</string>
<string lang="ru" key="CREATE_FAILED">Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° %s</string>
<string lang="ru" key="DEVICE_FREE_BYTES">Размер %s - %.2f байт</string>
<string lang="ru" key="DEVICE_FREE_KB">Размер %s - %.2f КБ</string>
@@ -434,10 +434,10 @@
<string lang="ru" key="AFTER_FORMAT_DRIVE_LETTER_WARN">Ð’ÐЖÐО: Учтите, что Ñтот том ÐЕЛЬЗЯ Ñмонтировать и получить к нему доÑтуп по букве диÑка %c:, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐµÐ¼Ñƒ назначена!\n\nЧтобы Ñмонтировать Ñтот том, нажмите 'Ðвтомонтирование' в главном окне VeraCrypt (или нажмите кнопку 'УÑтройÑтво', выберите Ñтот раздел/диÑк и нажмите 'Смонтировать'). Том будет Ñмонтирован на другую букву диÑка, выбираемую из ÑпиÑка в главном окне VeraCrypt.\n\nИÑходную букву диÑка %c: Ñледует применÑÑ‚ÑŒ только когда нужно удалить шифрование Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°/уÑтройÑтва (например еÑли шифрование больше не требуетÑÑ). Ð’ Ñтом Ñлучае щёлкните правой кнопкой мыши по диÑку %c: в окне 'Компьютер' (или 'Мой компьютер') и выберите пункт 'Форматировать'. Во вÑех иных ÑитуациÑÑ… букву диÑка %c: иÑпользовать не Ñледует (еÑли только вы не удалили её, как Ñто опиÑано, например, в FAQ VeraCrypt, и не приÑвоили затем другому разделу/уÑтройÑтву).</string>
<string lang="ru" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Ð’ иÑпользуемой вами ОС шифрование неÑиÑтемных томов 'на меÑте' не поддерживаетÑÑ (Ð´Ð»Ñ Ñтого требуетÑÑ Windows Vista или более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Windows).\n\nПричина: Ñта верÑÐ¸Ñ Windows не допуÑкает Ñжатие файловой ÑиÑтемы (что требуетÑÑ Ð´Ð»Ñ Ð²Ñ‹ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑта под заголовок тома и его резервную копию).</string>
<string lang="ru" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Выбранный раздел не Ñодержит файловой ÑиÑтемы NTFS. Ð”Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ 'на меÑте' подходÑÑ‚ только разделы Ñ NTFS.\n\nПричина: Windows не поддерживает Ñжатие файловых ÑиÑтем других типов (что требуетÑÑ Ð´Ð»Ñ Ð²Ñ‹ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑта под заголовок тома и его резервную копию).</string>
- <string lang="ru" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Выбранный раздел не Ñодержит файловой ÑиÑтемы NTFS. Ð”Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ 'на меÑте' подходÑÑ‚ только разделы Ñ NTFS.\n\nЕÑли вы хотите Ñоздать зашифрованный том VeraCrypt внутри Ñтого раздела, выберите "Создать и отформатировать зашифрованный том" (а не "Зашифровать раздел на меÑте").</string>
+ <string lang="ru" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Выбранный раздел не Ñодержит файловой ÑиÑтемы NTFS. Ð”Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ 'на меÑте' подходÑÑ‚ только разделы Ñ NTFS.\n\nЕÑли вы хотите Ñоздать зашифрованный том VeraCrypt внутри Ñтого раздела, выберите 'Создать и отформатировать зашифрованный том' (а не "Зашифровать раздел на меÑте").</string>
<string lang="ru" key="PARTITION_TOO_SMALL_FOR_NONSYS_INPLACE_ENC">ОШИБКÐ: Раздел Ñлишком мал. VeraCrypt не может зашифровать его 'на меÑте'.</string>
- <string lang="ru" key="INPLACE_ENC_ALTERNATIVE_STEPS">Чтобы зашифровать данные на Ñтом разделе, Ñделайте Ñледующее:\n\n1) Создайте том VeraCrypt на пуÑтом разделе/уÑтройÑтве и Ñмонтируйте его.\n\n2) Скопируйте вÑе файлы Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°, который вы хотите зашифровать, на Ñмонтированный том VeraCrypt (Ñозданный на Ñтапе 1). Так вы Ñоздадите зашифрованную резервную копию данных.\n\n3) Создайте том VeraCrypt на разделе, который хотите зашифровать, и убедитеÑÑŒ (в маÑтере VeraCrypt), что выбрали опцию "Создать зашифрованный том и отформатировать его" (а не опцию "Зашифровать раздел на меÑте"). Учтите, что вÑе данные на Ñтом разделе будут удалены. Создав том, Ñмонтируйте его.\n\n4) Скопируйте вÑе файлы Ñо Ñмонтированного тома VeraCrypt Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ данных (Ñозданного на Ñтапе 1) на Ñмонтированный том VeraCrypt, Ñозданный на Ñтапе 3.\n\nПо окончании Ñтих операций данные будут зашифрованы, Ð¿Ð»ÑŽÑ Ñ Ð½Ð¸Ñ… будет Ñделана Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ.</string>
- <string lang="ru" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">Шифрование 'на меÑте' возможно только Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°, динамичеÑкого тома или вÑего ÑиÑтемного диÑка.\n\nЕÑли вы хотите Ñоздать зашифрованный том VeraCrypt на выбранном неÑиÑтемном уÑтройÑтве, выберите опцию "Создать зашифрованный том и отформатировать его" (а не опцию "Зашифровать раздел на меÑте").</string>
+ <string lang="ru" key="INPLACE_ENC_ALTERNATIVE_STEPS">Чтобы зашифровать данные на Ñтом разделе, Ñделайте Ñледующее:\n\n1) Создайте том VeraCrypt на пуÑтом разделе/уÑтройÑтве и Ñмонтируйте его.\n\n2) Скопируйте вÑе файлы Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°, который вы хотите зашифровать, на Ñмонтированный том VeraCrypt (Ñозданный на Ñтапе 1). Так вы Ñоздадите зашифрованную резервную копию данных.\n\n3) Создайте том VeraCrypt на разделе, который хотите зашифровать, и убедитеÑÑŒ (в маÑтере VeraCrypt), что выбрали опцию 'Создать зашифрованный том и отформатировать его' (а не опцию 'Зашифровать раздел на меÑте'). Учтите, что вÑе данные на Ñтом разделе будут удалены. Создав том, Ñмонтируйте его.\n\n4) Скопируйте вÑе файлы Ñо Ñмонтированного тома VeraCrypt Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ данных (Ñозданного на Ñтапе 1) на Ñмонтированный том VeraCrypt, Ñозданный на Ñтапе 3.\n\nПо окончании Ñтих операций данные будут зашифрованы, Ð¿Ð»ÑŽÑ Ñ Ð½Ð¸Ñ… будет Ñделана Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ.</string>
+ <string lang="ru" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">Шифрование 'на меÑте' возможно только Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°, динамичеÑкого тома или вÑего ÑиÑтемного диÑка.\n\nЕÑли вы хотите Ñоздать зашифрованный том VeraCrypt на выбранном неÑиÑтемном уÑтройÑтве, выберите опцию 'Создать зашифрованный том и отформатировать его' (а не опцию 'Зашифровать раздел на меÑте').</string>
<string lang="ru" key="INPLACE_ENC_INVALID_PATH">ОШИБКÐ: Шифрование 'на меÑте' возможно только Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°, динамичеÑкого тома или вÑего ÑиÑтемного диÑка. УбедитеÑÑŒ в правильноÑти указанного пути.</string>
<string lang="ru" key="CANNOT_RESIZE_FILESYS">ОШИБКÐ: Ðевозможно уменьшить файловую ÑиÑтему (Ñто необходимо Ð´Ð»Ñ Ð²Ñ‹ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑта под заголовок тома и резервную копию заголовка).\n\nВозможные причины и решениÑ:\n\n- ÐедоÑтаточно Ñвободного меÑта на томе. Проверьте, чтобы никакие другие программы не выполнÑли запиÑÑŒ в файловую ÑиÑтему.\n\n- Повреждена Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема. Попробуйте иÑправить её (щёлкните ПКМ на букве ÑоответÑтвующего диÑка в окне '(Мой) Компьютер', выберите 'СвойÑтва' &gt; 'СервиÑ' &gt; 'Выполнить проверку', включите опцию 'ÐвтоматичеÑки иÑправлÑÑ‚ÑŒ ÑиÑтемные ошибки' и нажмите 'ЗапуÑк').\n\nЕÑли ничего не помогает, Ñледуйте рекомендациÑм ниже.</string>
<string lang="ru" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">ОШИБКÐ: ÐедоÑтаточно Ñвободного меÑта на томе, невозможно уменьшить файловую ÑиÑтему (Ñто необходимо Ð´Ð»Ñ Ð²Ñ‹ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÑта под заголовок тома и резервную копию заголовка).\n\nУдалите ненужные файлы и очиÑтите Корзину, выÑвободив Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ 256 КБ, поÑле чего повторите попытку. Из-за оÑобенноÑтей Windows, объём Ñообщаемого Проводником Ñвободного меÑта может быть неверным до перезагрузки ОС. ЕÑли перезагрузка не помогает, возможно, повреждена Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема. Попробуйте иÑправить её (щёлкните ПКМ на букве ÑоответÑтвующего диÑка в окне '(Мой) Компьютер', выберите 'СвойÑтва' &gt; 'СервиÑ' &gt; 'Выполнить проверку', включите опцию 'ÐвтоматичеÑки иÑправлÑÑ‚ÑŒ ÑиÑтемные ошибки' и нажмите 'ЗапуÑк').\n\nЕÑли ничего не помогает, Ñледуйте рекомендациÑм ниже.</string>
@@ -447,49 +447,49 @@
<string lang="ru" key="DISK_FREE_GB">Ðа диÑке %s Ñвободно %.2f ГБ</string>
<string lang="ru" key="DISK_FREE_TB">Ðа диÑке %s Ñвободно %.2f ТБ</string>
<string lang="ru" key="DISK_FREE_PB">Ðа диÑке %s Ñвободно %.2f ПБ</string>
- <string lang="ru" key="DRIVELETTERS">Ðевозможно получить доÑтупные буквы диÑков.</string>
- <string lang="ru" key="DRIVER_NOT_FOUND">ОШИБКÐ: Ðе найден драйвер VeraCrypt.\n\nСкопируйте файлы 'veracrypt.sys' и 'veracrypt-x64.sys' в папку, где находитÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° VeraCrypt (файл VeraCrypt.exe).</string>
- <string lang="ru" key="DRIVER_VERSION">ОШИБКÐ: Запущен драйвер VeraCrypt неÑовмеÑтимой верÑии.\n\nЕÑли вы пытаетеÑÑŒ запуÑтить VeraCrypt в переноÑном режиме (Ñ‚.е. без уÑтановки в ÑиÑтему), и в Ñто Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ Ð´Ñ€ÑƒÐ³Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ VeraCrypt, Ñначала удалите её (или обновите Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ уÑтановщика VeraCrypt). Чтобы удалить VeraCrypt, проделайте Ñледующее: в Windows Vista и новее выберите меню 'ПуÑк' &gt; 'Компьютер' &gt; 'Удалить или изменить программу' &gt; VeraCrypt &gt; Удалить; в Windows XP выберите меню 'ПуÑк' &gt; 'ÐаÑтройка' &gt; 'Панель управлениÑ' &gt; 'УÑтановка и удаление программ' &gt; VeraCrypt &gt; Удалить.\n\nÐналогично, еÑли вы пытаетеÑÑŒ запуÑтить VeraCrypt в переноÑном режиме (Ñ‚.е. без уÑтановки в ÑиÑтему), и в Ñто Ð²Ñ€ÐµÐ¼Ñ Ð² переноÑном режиме уже выполнÑетÑÑ Ð´Ñ€ÑƒÐ³Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ VeraCrypt, Ñначала нужно перезагрузить ÑиÑтему, и лишь затем запуÑтить Ñту новую верÑию.</string>
+ <string lang="ru" key="DRIVELETTERS">Ðе удалоÑÑŒ получить доÑтупные буквы диÑков.</string>
+ <string lang="ru" key="DRIVER_NOT_FOUND">ОШИБКÐ: Ðе найден драйвер VeraCrypt.\n\nСкопируйте файлы veracrypt.sys и veracrypt-x64.sys в папку Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¾Ð¹ VeraCrypt (файлом VeraCrypt.exe).</string>
+ <string lang="ru" key="DRIVER_VERSION">ОШИБКÐ: ИÑпользуетÑÑ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€ VeraCrypt неÑовмеÑтимой верÑии.\n\nЕÑли вы пытаетеÑÑŒ запуÑтить VeraCrypt в переноÑном режиме (Ñ‚.е. без уÑтановки в ÑиÑтему), и в Ñто Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ Ð´Ñ€ÑƒÐ³Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ VeraCrypt, то Ñначала удалите её (или обновите Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ уÑтановщика VeraCrypt). Чтобы удалить VeraCrypt, проделайте Ñледующее: в Windows Vista и новее выберите меню 'ПуÑк' &gt; 'Компьютер' &gt; 'Удалить или изменить программу' &gt; VeraCrypt &gt; Удалить; в Windows XP выберите меню 'ПуÑк' &gt; 'ÐаÑтройка' &gt; 'Панель управлениÑ' &gt; 'УÑтановка и удаление программ' &gt; VeraCrypt &gt; Удалить.\n\nÐналогично, еÑли вы пытаетеÑÑŒ запуÑтить VeraCrypt в переноÑном режиме (Ñ‚.е. без уÑтановки в ÑиÑтему), и в Ñто Ð²Ñ€ÐµÐ¼Ñ Ð² переноÑном режиме уже выполнÑетÑÑ Ð´Ñ€ÑƒÐ³Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ VeraCrypt, то Ñначала перезагрузите ÑиÑтему, а затем запуÑтите Ñту новую верÑию.</string>
<string lang="ru" key="ERR_CIPHER_INIT_FAILURE">Ошибка инициализации шифра.</string>
<string lang="ru" key="ERR_CIPHER_INIT_WEAK_KEY">Ошибка: Ñлабый или потенциально Ñлабый ключ! Этот ключ не принÑÑ‚. Повторите попытку.</string>
- <string lang="ru" key="EXCEPTION_REPORT">Произошла критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°, работа VeraCrypt прервана. ЕÑли Ñто ÑледÑтвие ошибки в VeraCrypt, мы бы хотели её иÑправить. Чтобы помочь нам в Ñтом, отправьте автоматичеÑки Ñозданный отчёт об ошибках Ñо Ñледующими данными:\n\n- ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹\n- ВерÑÐ¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы\n- Тип ЦП\n- Ð˜Ð¼Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð° VeraCrypt\n- ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма иÑполнÑемого файла VeraCrypt\n- СимволичеÑкое Ð¸Ð¼Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¾Ð²Ð¾Ð³Ð¾ окна\n- ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸\n- ÐÐ´Ñ€ÐµÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¸\n- Стековый вызов VeraCrypt\n\nПри выборе 'Да' в вашем браузере будет открыт Ñледующий URL-Ð°Ð´Ñ€ÐµÑ Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ отчётом об ошибке.\n\n%hs\n\nОтправить отчёт об ошибке?</string>
+ <string lang="ru" key="EXCEPTION_REPORT">КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°, работа VeraCrypt прервана. ЕÑли Ñто ÑледÑтвие ошибки в VeraCrypt, мы бы хотели её иÑправить. Чтобы помочь нам в Ñтом, отправьте автоматичеÑки Ñозданный отчёт об ошибках Ñо Ñледующими данными:\n\n- ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹\n- ВерÑÐ¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы\n- Тип ЦП\n- Ð˜Ð¼Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð° VeraCrypt\n- ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма иÑполнÑемого файла VeraCrypt\n- СимволичеÑкое Ð¸Ð¼Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¾Ð²Ð¾Ð³Ð¾ окна\n- ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸\n- ÐÐ´Ñ€ÐµÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¸\n- Стековый вызов VeraCrypt\n\nПри выборе 'Да' в вашем браузере будет открыт Ñледующий URL-Ð°Ð´Ñ€ÐµÑ Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ отчётом об ошибке.\n\n%hs\n\nОтправить отчёт об ошибке?</string>
<string lang="ru" key="EXCEPTION_REPORT_EXT">КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в ÑиÑтеме, работа VeraCrypt будет прервана.\n\nЭта ошибка произошла не по вине VeraCrypt (поÑтому разработчики VeraCrypt не могут её иÑправить). Проверьте Ñвою ÑиÑтему на предмет возможных проблем (например ÑиÑтемную конфигурацию, подключение к Ñети, Ñбои аппаратуры).</string>
- <string lang="ru" key="EXCEPTION_REPORT_EXT_FILESEL">КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в ÑиÑтеме, работа VeraCrypt будет прервана.\n\nЕÑли Ñта проблема возникает регулÑрно, попробуйте отключить или удалить приложениÑ, которые могут быть как-то Ñ Ð½ÐµÐ¹ ÑвÑзаны, например антивируÑное ПО, ÑиÑтемные "улучшатели", "оптимизаторы", "твикеры" и т.п. ЕÑли Ñто не поможет, попробуйте переуÑтановить ОС (Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° также может быть вызвана вредительÑким ПО).</string>
+ <string lang="ru" key="EXCEPTION_REPORT_EXT_FILESEL">КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в ÑиÑтеме, работа VeraCrypt будет прервана.\n\nЕÑли Ñта проблема возникает регулÑрно, попробуйте отключить или удалить приложениÑ, которые могут быть как-то Ñ Ð½ÐµÐ¹ ÑвÑзаны, например антивируÑное ПО, ÑиÑтемные 'улучшатели', 'оптимизаторы', 'твикеры' и т.п. ЕÑли Ñто не поможет, попробуйте переуÑтановить ОС (проблема также может быть вызвана вредительÑким ПО).</string>
<string lang="ru" key="EXCEPTION_REPORT_TITLE">КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° VeraCrypt</string>
- <string lang="ru" key="SYSTEM_CRASHED_ASK_REPORT">По ÑведениÑм VeraCrypt, Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема недавно потерпела Ñбой. Потенциальных причин Ñтому множеÑтво (например отказ аппаратуры, ошибка в драйвере уÑтройÑтва и т.д.)\n\nХотите проверить, был ли вызван ÑиÑтемный Ñбой ошибкой в VeraCrypt?</string>
- <string lang="ru" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Хотите, чтобы VeraCrypt и дальше отÑлеживал ÑиÑтемные Ñбои?</string>
+ <string lang="ru" key="SYSTEM_CRASHED_ASK_REPORT">По ÑведениÑм VeraCrypt, в операционной ÑиÑтеме недавно произошёл Ñбой. Потенциальных причин Ñтому множеÑтво (например отказ аппаратуры, ошибка в драйвере уÑтройÑтва и т.д.)\n\nХотите проверить, был ли вызван ÑиÑтемный Ñбой ошибкой в VeraCrypt?</string>
+ <string lang="ru" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Следует ли VeraCrypt и дальше отÑлеживать ÑиÑтемные Ñбои?</string>
<string lang="ru" key="NO_MINIDUMP_FOUND">VeraCrypt не удалоÑÑŒ обнаружить файл Ñ Ð¼Ð¸Ð½Ð¸-дампом ÑиÑтемных Ñбоев.</string>
- <string lang="ru" key="ASK_DELETE_KERNEL_CRASH_DUMP">Ð’Ñ‹ хотите удалить дамп-файл Windows Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ о Ñбое, чтобы выÑвободить меÑто на диÑке?</string>
- <string lang="ru" key="ASK_DEBUGGER_INSTALL">Чтобы проанализировать ÑиÑтемный Ñбой, VeraCrypt Ñначала нужно\nуÑтановить Microsoft Debugging Tools Ð´Ð»Ñ Windows.\n\nПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ OK начнётÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° и уÑтановка пакета\nMicrosoft Debugging Tools (16 МБ) Ñ Ñервера Microsoft\n(программа уÑтановки Windows перенаправит Ð²Ð°Ñ Ð½Ð° Ñервер\nMicrosoft Ñ Ñервера veracrypt.org, тем Ñамым Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ€ÑƒÑ ÑƒÑпех операции,\nдаже еÑли Microsoft изменит меÑтоположение пакета уÑтановки).</string>
+ <string lang="ru" key="ASK_DELETE_KERNEL_CRASH_DUMP">Удалить дамп-файл Windows Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ о Ñбое, чтобы выÑвободить меÑто на диÑке?</string>
+ <string lang="ru" key="ASK_DEBUGGER_INSTALL">Чтобы проанализировать ÑиÑтемный Ñбой, VeraCrypt Ñначала нужно\nуÑтановить Microsoft Debugging Tools Ð´Ð»Ñ Windows.\n\nПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ OK начнётÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° и уÑтановка\nÑтого пакета (16 МБ) Ñ Ñервера Microsoft\n(программа уÑтановки Windows перенаправит Ð²Ð°Ñ Ð½Ð° Ñервер\nMicrosoft Ñ Ñервера veracrypt.org, тем Ñамым Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ€ÑƒÑ ÑƒÑпех операции,\nдаже еÑли Microsoft изменит меÑтоположение пакета уÑтановки).</string>
<string lang="ru" key="SYSTEM_CRASH_ANALYSIS_INFO">ПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ OK начнётÑÑ Ð°Ð½Ð°Ð»Ð¸Ð· ÑиÑтемного ÑбоÑ. Эта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ занÑÑ‚ÑŒ неÑколько минут.</string>
- <string lang="ru" key="DEBUGGER_NOT_FOUND">УбедитеÑÑŒ, что в переменной Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ 'PATH' указан путь к файлу отладчика Ñдра 'kd.exe' (Kernel Debugger).</string>
- <string lang="ru" key="SYSTEM_CRASH_NO_VERACRYPT">Ð¡ÑƒÐ´Ñ Ð¿Ð¾ вÑему, причина ÑиÑтемного ÑÐ±Ð¾Ñ ÐЕ в VeraCrypt. Потенциальных причин ÑÐ±Ð¾Ñ ÑиÑтемы множеÑтво (например отказ аппаратуры, ошибка в драйвере уÑтройÑтва и т.д.)</string>
- <string lang="ru" key="SYSTEM_CRASH_UPDATE_DRIVER">Как показал анализ, данную проблему может решить обновление Ñледующего драйвера: </string>
- <string lang="ru" key="SYSTEM_CRASH_REPORT">Чтобы помочь определить, имеетÑÑ Ð»Ð¸ ошибка в VeraCrypt, отправьте нам автоматичеÑки Ñозданный отчёт об ошибках, Ñодержащий Ñледующие данные:\n- ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹\n- ВерÑÐ¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы\n- Тип ЦП\n- ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸\n- Ðазвание и верÑÐ¸Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°\n- Стек ÑиÑтемных вызовов\n\nПри выборе 'Да' в вашем интернет-браузере будет открыт Ñледующий URL-Ð°Ð´Ñ€ÐµÑ (Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ отчётом об ошибках).</string>
+ <string lang="ru" key="DEBUGGER_NOT_FOUND">УбедитеÑÑŒ, что в переменной Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ PATH указан путь к файлу отладчика Ñдра kd.exe (Kernel Debugger).</string>
+ <string lang="ru" key="SYSTEM_CRASH_NO_VERACRYPT">Ð¡ÑƒÐ´Ñ Ð¿Ð¾ вÑему, причина ÑиÑтемного ÑÐ±Ð¾Ñ - ÐЕ в VeraCrypt. Потенциальных причин ÑÐ±Ð¾Ñ ÑиÑтемы множеÑтво (например отказ аппаратуры, ошибка в драйвере уÑтройÑтва и т.д.)</string>
+ <string lang="ru" key="SYSTEM_CRASH_UPDATE_DRIVER">Как показал анализ, проблему может решить обновление Ñледующего драйвера: </string>
+ <string lang="ru" key="SYSTEM_CRASH_REPORT">Чтобы помочь определить, имеетÑÑ Ð»Ð¸ ошибка в VeraCrypt, отправьте нам автоматичеÑки Ñозданный отчёт об ошибках Ñо Ñледующими данными:\n- ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹\n- ВерÑÐ¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы\n- Тип ЦП\n- ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸\n- Ð˜Ð¼Ñ Ð¸ верÑÐ¸Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°\n- Стек ÑиÑтемных вызовов\n\nПри выборе 'Да' в вашем интернет-браузере будет открыт Ñледующий URL-Ð°Ð´Ñ€ÐµÑ (Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ отчётом об ошибках).</string>
<string lang="ru" key="ASK_SEND_ERROR_REPORT">Хотите отправить нам Ñтот отчёт об ошибках?</string>
<string lang="ru" key="ENCRYPT">&amp;ШифрациÑ</string>
<string lang="ru" key="DECRYPT">&amp;ДешифрациÑ</string>
<string lang="ru" key="PERMANENTLY_DECRYPT">РаÑшифровать п&amp;ерманентно</string>
<string lang="ru" key="EXIT">Выход</string>
<string lang="ru" key="EXT_PARTITION">Создайте логичеÑкий диÑк Ð´Ð»Ñ Ñтого раÑширенного раздела и повторите попытку.</string>
- <string lang="ru" key="FILE_HELP">Том VeraCrypt может находитьÑÑ Ð² файле (в 'контейнере' VeraCrypt) на жёÑтком диÑке, флÑш-накопителе USB и т.п. Контейнер VeraCrypt ничем не отличаетÑÑ Ð¾Ñ‚ любого другого обычного файла (например, его можно перемещать или удалÑÑ‚ÑŒ как и прочие файлы). Ðажмите кнопку 'Файл', чтобы указать Ð¸Ð¼Ñ Ð¸ путь к Ñоздаваемому файлу-контейнеру Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ тома.\n\nÐ’ÐИМÐÐИЕ: ЕÑли вы выберете уже имеющийÑÑ Ñ„Ð°Ð¹Ð», VeraCrypt ÐЕ зашифрует его; Ñтот файл будет удалён и заменён вновь Ñозданным контейнером VeraCrypt. Ð’Ñ‹ Ñможете зашифровать имеющиеÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ (впоÑледÑтвии), перемеÑтив их в Ñоздаваемый ÑÐµÐ¹Ñ‡Ð°Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€ VeraCrypt.</string>
- <string lang="ru" key="FILE_HELP_HIDDEN_HOST_VOL">Выберите размещение Ð´Ð»Ñ Ñоздаваемого внешнего тома (внутри Ñтого тома затем будет Ñоздан Ñкрытый том).\n\nТом VeraCrypt может находитьÑÑ Ð² файле ('контейнере' VeraCrypt) на жёÑтком диÑке, флÑш-накопителе USB и т.п. Контейнер VeraCrypt можно перемещать или удалÑÑ‚ÑŒ как любой обычный файл. Ðажмите кнопку 'Файл', чтобы указать Ð¸Ð¼Ñ Ð¸ путь к Ñоздаваемому файлу-контейнеру Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ тома. ЕÑли вы выберете уже имеющийÑÑ Ñ„Ð°Ð¹Ð», VeraCrypt ÐЕ зашифрует его; Ñтот файл будет удалён и заменён вновь Ñозданным контейнером VeraCrypt. Ð’Ñ‹ Ñможете зашифровать имеющиеÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ (впоÑледÑтвии), перемеÑтив их в Ñоздаваемый ÑÐµÐ¹Ñ‡Ð°Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€ VeraCrypt.</string>
- <string lang="ru" key="DEVICE_HELP">Зашифрованный том VeraCrypt на оÑнове уÑтройÑтва можно Ñоздавать внутри раздела жёÑткого диÑка, на твердотельном диÑке, флÑш-накопителе USB и других уÑтройÑтвах Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…. Разделы также можно шифровать на меÑте.\n\nКроме того, зашифрованные тома VeraCrypt на оÑнове уÑтройÑтв можно Ñоздавать внутри уÑтройÑтв, не Ñодержащих разделов (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¶Ñ‘Ñткие диÑки и твердотельные накопители).\n\nПримечание: уÑтройÑтво, Ñодержащее разделы, можно зашифровать целиком на меÑте (иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¾Ð´Ð¸Ð½ ключ), только еÑли Ñ Ð½ÐµÐ³Ð¾ загружаетÑÑ Windows.</string>
- <string lang="ru" key="DEVICE_HELP_NO_INPLACE">Том VeraCrypt на оÑнове уÑтройÑтва можно Ñоздавать внутри раздела жёÑткого диÑка, на твердотельном диÑке, флÑш-накопителе USB и других уÑтройÑтвах Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ….\n\nÐ’ÐИМÐÐИЕ: Раздел/диÑк будет отформатирован, а вÑе имеющиеÑÑ Ð½Ð° нём данные - уничтожены.</string>
- <string lang="ru" key="DEVICE_HELP_HIDDEN_HOST_VOL">\nВыберите размещение Ð´Ð»Ñ Ñоздаваемого внешнего тома (внутри Ñтого тома затем будет Ñоздан Ñкрытый том).\n\nВнешние тома можно Ñоздавать внутри разделов жёÑтких диÑков, на твердотельных диÑках, флÑш-накопителÑÑ… USB и других уÑтройÑтвах Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…. Внешние тома также можно Ñоздавать внутри уÑтройÑтв, не Ñодержащих разделов (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¶Ñ‘Ñткие диÑки и твердотельные накопители).\n\nÐ’ÐИМÐÐИЕ: Раздел/диÑк будет отформатирован, а вÑе имеющиеÑÑ Ð½Ð° нём данные - уничтожены.</string>
+ <string lang="ru" key="FILE_HELP">Том VeraCrypt может находитьÑÑ Ð² файле (в контейнере VeraCrypt) на жёÑтком диÑке, флÑш-накопителе USB и т.п. Контейнер VeraCrypt ничем не отличаетÑÑ Ð¾Ñ‚ любого другого обычного файла (например, его можно перемещать или удалÑÑ‚ÑŒ как и прочие файлы). Ðажмите кнопку 'Файл', чтобы указать Ð¸Ð¼Ñ Ð¸ путь к Ñоздаваемому файлу-контейнеру Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ тома.\n\nÐ’ÐИМÐÐИЕ: ЕÑли вы выберете уже имеющийÑÑ Ñ„Ð°Ð¹Ð», VeraCrypt ÐЕ зашифрует его; Ñтот файл будет удалён и заменён вновь Ñозданным контейнером VeraCrypt. Ð’Ñ‹ Ñможете зашифровать имеющиеÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ (впоÑледÑтвии), перемеÑтив их в Ñоздаваемый ÑÐµÐ¹Ñ‡Ð°Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€ VeraCrypt.</string>
+ <string lang="ru" key="FILE_HELP_HIDDEN_HOST_VOL">Выберите размещение Ð´Ð»Ñ Ñоздаваемого внешнего тома (внутри Ñтого тома затем будет Ñоздан Ñкрытый том).\n\nТом VeraCrypt может находитьÑÑ Ð² файле (в контейнере VeraCrypt) на жёÑтком диÑке, флÑш-накопителе USB и т.п. Контейнер VeraCrypt можно перемещать или удалÑÑ‚ÑŒ как любой обычный файл. Ðажмите кнопку 'Файл', чтобы указать Ð¸Ð¼Ñ Ð¸ путь к Ñоздаваемому файлу-контейнеру Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ тома. ЕÑли вы выберете уже имеющийÑÑ Ñ„Ð°Ð¹Ð», VeraCrypt ÐЕ зашифрует его; Ñтот файл будет удалён и заменён вновь Ñозданным контейнером VeraCrypt. Ð’Ñ‹ Ñможете зашифровать имеющиеÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ (впоÑледÑтвии), перемеÑтив их в Ñоздаваемый ÑÐµÐ¹Ñ‡Ð°Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€ VeraCrypt.</string>
+ <string lang="ru" key="DEVICE_HELP">Зашифрованный том VeraCrypt на оÑнове уÑтройÑтва можно Ñоздавать внутри раздела жёÑткого диÑка, на твердотельном накопителе, флÑш-накопителе USB и других уÑтройÑтвах Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…. Разделы также можно шифровать на меÑте.\n\nКроме того, зашифрованные тома VeraCrypt на оÑнове уÑтройÑтв можно Ñоздавать внутри уÑтройÑтв, не Ñодержащих разделов (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¶Ñ‘Ñткие диÑки и твердотельные накопители).\n\nПримечание: уÑтройÑтво, Ñодержащее разделы, можно зашифровать целиком на меÑте (иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¾Ð´Ð¸Ð½ ключ), только еÑли Ñ Ð½ÐµÐ³Ð¾ загружаетÑÑ Windows.</string>
+ <string lang="ru" key="DEVICE_HELP_NO_INPLACE">Том VeraCrypt на оÑнове уÑтройÑтва можно Ñоздавать внутри раздела жёÑткого диÑка, на твердотельном накопителе, флÑш-накопителе USB и других уÑтройÑтвах Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ….\n\nÐ’ÐИМÐÐИЕ: Раздел/диÑк будет отформатирован, а вÑе имеющиеÑÑ Ð½Ð° нём данные - уничтожены.</string>
+ <string lang="ru" key="DEVICE_HELP_HIDDEN_HOST_VOL">\nВыберите размещение Ð´Ð»Ñ Ñоздаваемого внешнего тома (внутри Ñтого тома затем будет Ñоздан Ñкрытый том).\n\nВнешние тома можно Ñоздавать внутри разделов жёÑтких диÑков, на твердотельных накопителÑÑ…, флÑш-накопителÑÑ… USB и других уÑтройÑтвах Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…. Внешние тома также можно Ñоздавать внутри уÑтройÑтв, не Ñодержащих разделов (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¶Ñ‘Ñткие диÑки и твердотельные накопители).\n\nÐ’ÐИМÐÐИЕ: Раздел/диÑк будет отформатирован, а вÑе имеющиеÑÑ Ð½Ð° нём данные - уничтожены.</string>
<string lang="ru" key="FILE_HELP_HIDDEN_HOST_VOL_DIRECT">Выберите размещение тома VeraCrypt, внутри которого вы хотите Ñоздать Ñкрытый том.</string>
- <string lang="ru" key="FILE_IN_USE">Ð’ÐИМÐÐИЕ: ХоÑÑ‚-файл/уÑтройÑтво уже иÑпользуетÑÑ.\n\nИгнорирование Ñтого может привеÑти к нежелательным поÑледÑтвиÑм, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð½ÐµÑтабильноÑÑ‚ÑŒ ÑиÑтемы. Перед монтированием тома Ñледует закрыть вÑе программы, обращающиеÑÑ Ðº Ñтому хоÑÑ‚-файлу/уÑтройÑтву (например антивируÑные или backup-приложениÑ).\n\nПродолжить монтирование?</string>
- <string lang="ru" key="FILE_IN_USE_FAILED">Ошибка! Ðевозможно Ñмонтировать том. ХоÑÑ‚-файл/уÑтройÑтво уже иÑпользуетÑÑ. Попытка Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ· иÑключительного доÑтупа также потерпела неудачу.</string>
+ <string lang="ru" key="FILE_IN_USE">Ð’ÐИМÐÐИЕ: ХоÑÑ‚-файл/уÑтройÑтво уже иÑпользуетÑÑ.\n\nИгнорирование Ñтого может привеÑти к нежелательным поÑледÑтвиÑм, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð½ÐµÑтабильноÑÑ‚ÑŒ ÑиÑтемы. Перед монтированием тома Ñледует закрыть вÑе программы, обращающиеÑÑ Ðº Ñтому хоÑÑ‚-файлу/уÑтройÑтву (например антивируÑÑ‹ или ПО Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ копированиÑ).\n\nПродолжить монтирование?</string>
+ <string lang="ru" key="FILE_IN_USE_FAILED">ОШИБКÐ: Ðевозможно Ñмонтировать том. ХоÑÑ‚-файл/уÑтройÑтво уже иÑпользуетÑÑ. Также не удалоÑÑŒ выполнить монтирование без иÑключительного доÑтупа.</string>
<string lang="ru" key="FILE_OPEN_FAILED">Ðевозможно открыть файл.</string>
<string lang="ru" key="FILE_TITLE">Размещение тома</string>
<string lang="ru" key="FILESYS_PAGE_TITLE">Большие файлы</string>
<string lang="ru" key="FILESYS_PAGE_HELP_QUESTION">СобираетеÑÑŒ ли вы хранить в Ñтом томе VeraCrypt файлы размером более 4 ГБ?</string>
- <string lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION">Ð’ завиÑимоÑти от вашего ответа VeraCrypt выберет Ð´Ð»Ñ Ñ‚Ð¾Ð¼Ð° подходÑщую файловую ÑиÑтему (выбор файловой ÑиÑтемы будет вам предложен на Ñледующем Ñтапе).</string>
- <string lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Так как вы Ñоздаёте внешний том, Ñледует ответить 'Ðет'. Иначе ФС по умолчанию будет NTFS, что Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… томов хуже, чем FAT (так, макÑимально возможный размер Ñкрытого тома будет ÑущеÑтвенно больше, еÑли внешний том - FAT). Обычно FAT Ñто ФС по умолчанию как Ð´Ð»Ñ Ñкрытых, так и Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ñ… томов (тома FAT не вызывают подозрений). Однако еÑли нужно хранить файлы размером более 4 ГБ (что в FAT недопуÑтимо), то FAT не будет ФС по умолчанию.</string>
+ <string lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION">Ð’ завиÑимоÑти от вашего ответа VeraCrypt выберет Ð´Ð»Ñ Ñ‚Ð¾Ð¼Ð° подходÑщую файловую ÑиÑтему (её выбор будет вам предложен на Ñледующем Ñтапе).</string>
+ <string lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Так как вы Ñоздаёте внешний том, Ñледует ответить 'Ðет'. Иначе ФС по умолчанию будет NTFS, что Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… томов хуже, чем FAT/exFAT (так, макÑимально возможный размер Ñкрытого тома будет ÑущеÑтвенно больше, еÑли внешний том - FAT/exFAT). Обычно FAT Ñто ФС по умолчанию как Ð´Ð»Ñ Ñкрытых, так и Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ñ… томов (тома FAT не вызывают подозрений). Однако еÑли нужно хранить файлы размером более 4 ГБ (что в FAT недопуÑтимо), то FAT не будет ФС по умолчанию.</string>
<string lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM">Ð’Ñ‹ дейÑтвительно хотите ответить 'Да'?</string>
<string lang="ru" key="DEVICE_TRANSFORM_MODE_PAGE_TITLE">Режим ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°</string>
<string lang="ru" key="DEVICE_TRANSFORM_MODE_PAGE_FORMAT_HELP">Это Ñамый быÑтрый ÑпоÑоб ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° VeraCrypt на оÑнове раздела или уÑтройÑтва (шифрование на меÑте медленнее, так как Ñодержимое каждого Ñектора Ñначала ÑчитываетÑÑ, шифруетÑÑ Ð¸ затем запиÑываетÑÑ). Ð’Ñе данные на выбранном разделе/уÑтройÑтве будут уничтожены (Ñти данные ÐЕ шифруютÑÑ; они перезапиÑываютÑÑ Ñлучайными данными). ЕÑли вам нужно зашифровать данные, имеющиеÑÑ Ð² разделе, выберите другой вариант.</string>
- <string lang="ru" key="DEVICE_TRANSFORM_MODE_PAGE_INPLACE_HELP">ВеÑÑŒ выбранный раздел Ñо вÑеми имеющимиÑÑ Ð² нём данными будет зашифрован на меÑте. ЕÑли раздел пуÑÑ‚, вам Ñледует выбрать другой вариант (Ñоздание тома протекает гораздо быÑтрее).</string>
+ <string lang="ru" key="DEVICE_TRANSFORM_MODE_PAGE_INPLACE_HELP">ВеÑÑŒ выбранный раздел Ñо вÑеми имеющимиÑÑ Ð² нём данными будет зашифрован на меÑте. ЕÑли раздел пуÑÑ‚, то Ñледует выбрать другой вариант (том будет Ñоздан гораздо быÑтрее).</string>
<string lang="ru" key="NOTE_BEGINNING">Примечание: </string>
<string lang="ru" key="RESUME">Возо&amp;бновить</string>
<string lang="ru" key="DEFER">О&amp;тложить</string>
@@ -502,17 +502,17 @@
<string lang="ru" key="DO_NOT_SHOW_THIS_AGAIN">Больше не показывать</string>
<string lang="ru" key="WIPE_FINISHED">Содержимое раздела/уÑтройÑтва уÑпешно удалено (затёрто).</string>
<string lang="ru" key="WIPE_FINISHED_DECOY_SYSTEM_PARTITION">Содержимое раздела Ñ Ð¸Ñходной ÑиÑтемой (клоном которой ÑвлÑетÑÑ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтема) уÑпешно удалено (затёрто).</string>
- <string lang="ru" key="DECOY_OS_VERSION_WARNING">УдоÑтоверьтеÑÑŒ, что Windows, которую вы хотите уÑтановить (на очищенный раздел) имеет ту же верÑию, что и выполнÑÐµÐ¼Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Windows. Это необходимо потому, что обе ОС будут иÑпользовать общий загрузочный раздел.</string>
- <string lang="ru" key="SYSTEM_ENCRYPTION_FINISHED">СиÑтемный раздел/диÑк уÑпешно зашифрован.\n\nПримечание: еÑли у Ð²Ð°Ñ ÐµÑÑ‚ÑŒ неÑиÑтемные тома VeraCrypt, которые должны автоматичеÑки монтироватьÑÑ Ð¿Ñ€Ð¸ каждой загрузке Windows, монтирование каждого из них можно наÑтроить, выбрав 'Избранное' &gt; 'Добавить Ñмонтированный том в ÑпиÑок избранных ÑиÑтемных томов').</string>
- <string lang="ru" key="SYSTEM_DECRYPTION_FINISHED">СиÑтемный раздел/диÑк уÑпешно дешифрован.</string>
- <string lang="ru" key="FORMAT_FINISHED_HELP">\n\nТом VeraCrypt Ñоздан и готов к иÑпользованию.\n\nЕÑли вы хотите Ñоздать ещё один том VeraCrypt, нажмите кнопку 'Далее'. Иначе нажмите 'Выход'.</string>
+ <string lang="ru" key="DECOY_OS_VERSION_WARNING">УдоÑтоверьтеÑÑŒ, что Windows, которую вы хотите уÑтановить (на очищенный раздел), имеет ту же верÑию, что и Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Windows. Это необходимо потому, что обе ОС будут иÑпользовать общий загрузочный раздел.</string>
+ <string lang="ru" key="SYSTEM_ENCRYPTION_FINISHED">СиÑтемный раздел/диÑк уÑпешно зашифрован.\n\nПримечание: еÑли имеютÑÑ Ð½ÐµÑиÑтемные тома VeraCrypt, которые должны автоматичеÑки монтироватьÑÑ Ð¿Ñ€Ð¸ каждой загрузке Windows, монтирование каждого из них можно наÑтроить, выбрав 'Избранное' &gt; 'Добавить Ñмонтированный том в ÑпиÑок избранных ÑиÑтемных томов').</string>
+ <string lang="ru" key="SYSTEM_DECRYPTION_FINISHED">СиÑтемный раздел/диÑк уÑпешно раÑшифрован.</string>
+ <string lang="ru" key="FORMAT_FINISHED_HELP">\n\nТом VeraCrypt Ñоздан и готов к иÑпользованию.\n\nЕÑли вы хотите Ñоздать ещё один том, нажмите 'Далее'. Иначе нажмите 'Выход'.</string>
<string lang="ru" key="SYSENC_HIDDEN_VOL_FORMAT_FINISHED_HELP">\n\nСкрытый том VeraCrypt уÑпешно Ñоздан (внутри него будет находитьÑÑ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема).\n\nÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
<string lang="ru" key="NONSYS_INPLACE_ENC_FINISHED_TITLE">Том полноÑтью зашифрован</string>
<string lang="ru" key="NONSYS_INPLACE_DEC_FINISHED_TITLE">Том полноÑтью раÑшифрован</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_FINISHED_INFO">Ð’ÐЖÐО: ДЛЯ МОÐТИРОВÐÐИЯ ЭТОГО ТОМРVERACRYPT И ДОСТУПРК СОДЕРЖÐЩИМСЯ Ð’ ÐÐÐœ ДÐÐÐЫМ ÐÐЖМИТЕ 'Ðвтомонтирование' Ð’ ГЛÐÐ’ÐОМ ОКÐЕ VERACRYPT. ПоÑле ввода правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ (и/или ключевых файлов) том будет Ñмонтирован на букву диÑка, выбранную вами в главном окне VeraCrypt (доÑтуп к зашифрованным данным будет по Ñтой букве диÑка).\n\nЗÐПОМÐИТЕ ИЛИ ЗÐПИШИТЕ ЭТÐПЫ ВЫШЕ. ВЫ ДОЛЖÐЫ ИМ СЛЕДОВÐТЬ ДЛЯ МОÐТИРОВÐÐИЯ ТОМРИ ДОСТУПРК ЕГО ДÐÐÐЫМ. Другой ÑпоÑоб: нажмите кнопку 'УÑтройÑтво' в главном окне VeraCrypt, выберите Ñтот раздел/том и нажмите 'Смонтировать'.\n\nРаздел/том уÑпешно зашифрован (ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð½ Ñодержит полноÑтью зашифрованный том VeraCrypt) и готов к иÑпользованию.</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_FINISHED_INFO">Ð’ÐЖÐО: ДЛЯ МОÐТИРОВÐÐИЯ ЭТОГО ТОМРИ ДОСТУПРК СОДЕРЖÐЩИМСЯ Ð’ ÐÐÐœ ДÐÐÐЫМ ÐÐЖМИТЕ 'Ðвтомонтирование' Ð’ ГЛÐÐ’ÐОМ ОКÐЕ VERACRYPT. ПоÑле ввода правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ (и/или ключевых файлов) том будет Ñмонтирован на букву диÑка, выбранную вами в главном окне VeraCrypt (доÑтуп к зашифрованным данным будет по Ñтой букве диÑка).\n\nЗÐПОМÐИТЕ ИЛИ ЗÐПИШИТЕ ЭТÐПЫ ВЫШЕ. ВЫ ДОЛЖÐЫ ИМ СЛЕДОВÐТЬ ДЛЯ МОÐТИРОВÐÐИЯ ТОМРИ ДОСТУПРК ЕГО ДÐÐÐЫМ. Другой ÑпоÑоб: нажмите кнопку 'УÑтройÑтво' в главном окне VeraCrypt, выберите Ñтот раздел/том и нажмите 'Смонтировать'.\n\nРаздел/том уÑпешно зашифрован (ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð½ Ñодержит полноÑтью зашифрованный том VeraCrypt) и готов к иÑпользованию.</string>
<string lang="ru" key="NONSYS_INPLACE_DEC_FINISHED_INFO">Том VeraCrypt уÑпешно раÑшифрован.</string>
- <string lang="ru" key="NONSYS_INPLACE_DEC_FINISHED_DRIVE_LETTER_SEL_INFO">Том VeraCrypt уÑпешно раÑшифрован.\n\nВыберите букву диÑка, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ приÑвоена раÑшифрованному тому, и нажмите 'Готово'.\n\nÐ’ÐЖÐО: Пока тому не будет приÑвоена буква, у Ð²Ð°Ñ Ð½ÐµÂ Ð±ÑƒÐ´ÐµÑ‚ доÑтупа к хранÑщимÑÑ Ð² нём данным.</string>
- <string lang="ru" key="NONSYS_INPLACE_DEC_FINISHED_NO_DRIVE_LETTER_AVAILABLE">Ð’ÐИМÐÐИЕ: Чтобы получить доÑтуп к данным, раÑшифрованному тому нужно приÑвоить букву диÑка. Однако ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ·Ð°Ð½ÑÑ‚Ñ‹Ñ… букв нет.\n\nОÑвободите какую-либо букву диÑка (например отÑоедините USB-накопитель или внешний жёÑткий диÑк и т.п.) и нажмите OK.</string>
+ <string lang="ru" key="NONSYS_INPLACE_DEC_FINISHED_DRIVE_LETTER_SEL_INFO">Том VeraCrypt уÑпешно раÑшифрован.\n\nВыберите букву диÑка, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ приÑвоена раÑшифрованному тому, и нажмите 'Готово'.\n\nÐ’ÐЖÐО: Пока тому не приÑвоена буква, нет доÑтупа к хранÑщимÑÑ Ð² нём данным.</string>
+ <string lang="ru" key="NONSYS_INPLACE_DEC_FINISHED_NO_DRIVE_LETTER_AVAILABLE">Ð’ÐИМÐÐИЕ: Чтобы получить доÑтуп к данным, раÑшифрованному тому нужно приÑвоить букву диÑка. Однако ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ·Ð°Ð½ÑÑ‚Ñ‹Ñ… букв нет.\n\nОÑвободите какую-либо букву диÑка (например, отÑоедините USB-накопитель или внешний жёÑткий диÑк и т.п.) и нажмите OK.</string>
<string lang="ru" key="FORMAT_FINISHED_INFO">Том VeraCrypt уÑпешно Ñоздан.</string>
<string lang="ru" key="FORMAT_FINISHED_TITLE">Том Ñоздан</string>
<string lang="ru" key="FORMAT_HELP">Ð’ÐЖÐО: Хаотично перемещайте мышь внутри Ñтого окна (чем дольше, тем лучше) - Ñто значительно увеличит криптоÑтойкоÑÑ‚ÑŒ ключей шифрованиÑ.\nЗатем нажмите 'Разметить', чтобы Ñоздать том.</string>
@@ -520,33 +520,33 @@
<string lang="ru" key="FORMAT_HIDVOL_HOST_TITLE">Форматирование внешнего тома</string>
<string lang="ru" key="FORMAT_HIDVOL_TITLE">Форматирование Ñкрытого тома</string>
<string lang="ru" key="FORMAT_TITLE">Форматирование тома</string>
- <string lang="ru" key="HELP_READER_ERROR">Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра или печати РуководÑтва Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Adobe Reader (или ÑовмеÑÑ‚Ð¸Ð¼Ð°Ñ Ñ Ð½ÐµÐ¹). Adobe Reader можно загрузить (беÑплатно) Ñ Ñайта www.adobe.com\n\nХотите вмеÑто Ñтого проÑмотреть онлайн-документацию?</string>
+ <string lang="ru" key="HELP_READER_ERROR">Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра или печати РуководÑтва Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Adobe Reader (или ÑовмеÑÑ‚Ð¸Ð¼Ð°Ñ Ñ Ð½ÐµÐ¹). Её можно загрузить (беÑплатно) Ñ Ñайта www.adobe.com\n\nХотите вмеÑто Ñтого ознакомитьÑÑ Ñ Ð¾Ð½Ð»Ð°Ð¹Ð½-документацией?</string>
<string lang="ru" key="HIDDEN_VOL_WIZARD_MODE_NORMAL_HELP">ЕÑли выбрать Ñту опцию, маÑтер Ñначала поможет вам Ñоздать обычный том VeraCrypt, а затем внутри него - Ñкрытый том. Этот вариант предназначен Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹-новичков.</string>
- <string lang="ru" key="HIDDEN_VOL_WIZARD_MODE_DIRECT_HELP">Выберите Ñту опцию, чтобы Ñоздать Ñкрытый том внутри уже имеющегоÑÑ Ñ‚Ð¾Ð¼Ð° VeraCrypt (Ñ‚.е.Â ÑƒÂ Ð²Ð°Ñ ÑƒÐ¶Ðµ должен быть ранее Ñозданный том VeraCrypt, пригодный Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñкрытого тома).</string>
+ <string lang="ru" key="HIDDEN_VOL_WIZARD_MODE_DIRECT_HELP">Выберите Ñту опцию, чтобы Ñоздать Ñкрытый том внутри уже имеющегоÑÑ Ñ‚Ð¾Ð¼Ð° VeraCrypt (Ñ‚.е.Â ÑƒÂ Ð²Ð°Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть ранее Ñозданный том VeraCrypt, пригодный Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñкрытого тома).</string>
<string lang="ru" key="HIDDEN_VOL_WIZARD_MODE_TITLE">Режим ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°</string>
<string lang="ru" key="HIDVOL_FORMAT_FINISHED_TITLE">Скрытый том Ñоздан</string>
- <string lang="ru" key="HIDVOL_FORMAT_FINISHED_HELP">Скрытый том VeraCrypt Ñоздан и готов к иÑпользованию. ЕÑли были Ñоблюдены вÑе инÑтрукции и предпринÑÑ‚Ñ‹ меры предоÑторожноÑти, перечиÑленные в разделе "Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ меры предоÑторожноÑти, каÑающиеÑÑ Ñкрытых томов" в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt, узнать навернÑка, имеетÑÑ Ð»Ð¸ Ñкрытый том, Ñтанет врÑд ли возможно даже при Ñмонтированном внешнем томе.\n\nÐ’ÐИМÐÐИЕ: ЕСЛИ ВЫ ÐЕ ЗÐЩИТИЛИ СКРЫТЫЙ ТОМ (О ТОМ, КÐК ЭТО СДЕЛÐТЬ, СМ. РÐЗДЕЛ "PROTECTION OF HIDDEN VOLUMES AGAINST DAMAGE" ("ЗÐЩИТРСКРЫТЫХ ТОМОВ ОТ ПОВРЕЖДЕÐИЙ") Ð’ РУКОВОДСТВЕ ПОЛЬЗОВÐТЕЛЯ VERACRYPT), ÐИЧЕГО ÐЕ ЗÐПИСЫВÐЙТЕ ВО Ð’ÐЕШÐИЙ ТОМ, ИÐÐЧЕ ВЫ МОЖЕТЕ ПЕРЕЗÐПИСÐТЬ И ПОВРЕДИТЬ СКРЫТЫЙ ТОМ!</string>
- <string lang="ru" key="FIRST_HIDDEN_OS_BOOT_INFO">Ð’Ñ‹ запуÑтили Ñкрытую операционную ÑиÑтему. Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ выглÑдит так, как будто она уÑтановлена на том же разделе, что и иÑÑ…Ð¾Ð´Ð½Ð°Ñ ÐžÐ¡. Однако на Ñамом деле Ñта ОС уÑтановлена в разделе, Ñледующем за ним (в Ñкрытом томе). Ð’Ñе операции Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸ запиÑи прозрачно перенаправлÑÑŽÑ‚ÑÑ Ð¸Ð· ÑиÑтемного раздела в Ñкрытый том.\n\nÐи ОС, Ð½Ð¸Â Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÂ Ð±ÑƒÐ´ÑƒÑ‚ знать, что данные, запиÑываемые и Ñчитываемые в ÑиÑтемном разделе, в дейÑтвительноÑти запиÑываютÑÑ Ð¸ ÑчитываютÑÑ Ð² разделе позади него (в Ñкрытом томе). Любые такие данные шифруютÑÑ Ð¸ раÑшифровываютÑÑ Ð½Ð° лету как обычно (Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ шифрованиÑ, отличным от ключа Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС).\n\n\nÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
- <string lang="ru" key="HIDVOL_HOST_FILLING_HELP_SYSENC">Внешний том Ñоздан и Ñмонтирован как диÑк %hc:. Скопируйте в Ñтот том какие-нибудь оÑмыÑленно выглÑдÑщие файлы, которые на Ñамом деле вам прÑтать ÐЕ нужно. Они понадобÑÑ‚ÑÑ Ð´Ð»Ñ Ð´ÐµÐ¼Ð¾Ð½Ñтрации, еÑли Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ Ñообщить пароль от раздела, Ñледующего за ÑиÑтемным, где будут раÑположены внешний том и Ñкрытый том (Ñо Ñкрытой ОС). Ð’Ñ‹ Ñможете открыть пароль от Ñтого внешнего тома, а ÑущеÑтвование Ñкрытого тома (и Ñкрытой ОС) оÑтанетÑÑ Ð² тайне.\n\nÐ’ÐЖÐО: Файлы, копируемые во внешний том, не должны занимать больше, чем %s. Ð’ противном Ñлучае на внешнем томе может оказатьÑÑ Ð½ÐµÐ´Ð¾Ñтаточно Ñвободного меÑта Ð´Ð»Ñ Ñкрытого тома (и вы не Ñможете продолжить). Когда закончите копирование, нажмите 'Далее' (не размонтируйте том).</string>
+ <string lang="ru" key="HIDVOL_FORMAT_FINISHED_HELP">Скрытый том VeraCrypt Ñоздан и готов к иÑпользованию. ЕÑли были Ñоблюдены вÑе инÑтрукции и меры предоÑторожноÑти из главы 'Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ меры предоÑторожноÑти, каÑающиеÑÑ Ñкрытых томов' в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt, узнать навернÑка, имеетÑÑ Ð»Ð¸ Ñкрытый том, Ñтанет врÑд ли возможно даже при Ñмонтированном внешнем томе.\n\nÐ’ÐИМÐÐИЕ: ЕСЛИ ВЫ ÐЕ ЗÐЩИТИЛИ СКРЫТЫЙ ТОМ (О ТОМ, КÐК ЭТО СДЕЛÐТЬ, СМ. РÐЗДЕЛ 'PROTECTION OF HIDDEN VOLUMES AGAINST DAMAGE' ('ЗÐЩИТРСКРЫТЫХ ТОМОВ ОТ ПОВРЕЖДЕÐИЙ') Ð’ РУКОВОДСТВЕ ПОЛЬЗОВÐТЕЛЯ VERACRYPT), ÐИЧЕГО ÐЕ ЗÐПИСЫВÐЙТЕ ВО Ð’ÐЕШÐИЙ ТОМ, ИÐÐЧЕ ВЫ МОЖЕТЕ ПЕРЕЗÐПИСÐТЬ И ПОВРЕДИТЬ СКРЫТЫЙ ТОМ!</string>
+ <string lang="ru" key="FIRST_HIDDEN_OS_BOOT_INFO">Ð’Ñ‹ запуÑтили Ñкрытую операционную ÑиÑтему. Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ выглÑдит так, как будто она уÑтановлена на том же разделе, что и иÑÑ…Ð¾Ð´Ð½Ð°Ñ ÐžÐ¡. Ðо на Ñамом деле Ñта ОС уÑтановлена в разделе, Ñледующем за ним (в Ñкрытом томе). Ð’Ñе операции Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸ запиÑи прозрачно перенаправлÑÑŽÑ‚ÑÑ Ð¸Ð· ÑиÑтемного раздела в Ñкрытый том.\n\nÐи ОС, Ð½Ð¸Â Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÂ Ð±ÑƒÐ´ÑƒÑ‚ знать, что данные, запиÑываемые и Ñчитываемые в ÑиÑтемном разделе, в дейÑтвительноÑти запиÑываютÑÑ Ð¸ ÑчитываютÑÑ Ð² разделе позади него (в Ñкрытом томе). Любые такие данные шифруютÑÑ Ð¸ раÑшифровываютÑÑ Ð½Ð° лету как обычно (Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ шифрованиÑ, отличным от ключа Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС).\n\n\nÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
+ <string lang="ru" key="HIDVOL_HOST_FILLING_HELP_SYSENC">Внешний том Ñоздан и Ñмонтирован как диÑк %hc:. Скопируйте в Ñтот том какие-нибудь оÑмыÑленно выглÑдÑщие файлы, которые на Ñамом деле вам прÑтать ÐЕ нужно. Они понадобÑÑ‚ÑÑ Ð´Ð»Ñ Ð´ÐµÐ¼Ð¾Ð½Ñтрации, еÑли Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ Ñообщить пароль от раздела, Ñледующего за ÑиÑтемным, где будут раÑположены внешний том и Ñкрытый том (Ñо Ñкрытой ОС). Ð’Ñ‹ Ñможете Ñообщить пароль от Ñтого внешнего тома, а ÑущеÑтвование Ñкрытого тома (и Ñкрытой ОС) оÑтанетÑÑ Ð² тайне.\n\nÐ’ÐЖÐО: Копируемые во внешний том файлы не должны занимать больше, чем %s. Ð’ противном Ñлучае на внешнем томе может не хватить меÑта Ð´Ð»Ñ Ñкрытого тома (и вы не Ñможете продолжить). Когда закончите копирование, нажмите 'Далее' (не размонтируйте том).</string>
<string lang="ru" key="HIDVOL_HOST_FILLING_HELP">Внешний том уÑпешно Ñоздан и Ñмонтирован как диÑк %hc:. Ð’ Ñтот том ÑÐµÐ¹Ñ‡Ð°Ñ Ñледует Ñкопировать какие-нибудь оÑмыÑленно выглÑдÑщие файлы, которые на Ñамом деле вам прÑтать ÐЕ нужно, чтобы ввеÑти в заблуждение неприÑтелÑ, еÑли он вынудит Ð²Ð°Ñ Ñообщить пароль. Ð’ Ñтом Ñлучае вы Ñкажете только пароль Ð´Ð»Ñ Ñтого внешнего тома, но Ð½ÐµÂ Ð´Ð»Ñ Ñкрытого. ДейÑтвительно ценные Ð´Ð»Ñ Ð²Ð°Ñ Ñ„Ð°Ð¹Ð»Ñ‹ будут хранитьÑÑ Ð² Ñкрытом томе, Ñоздаваемом позже. Когда закончите копировать файлы, нажмите 'Далее'. Ðе размонтируйте Ñтот том. ПРИМЕЧÐÐИЕ: Ðажатие 'Далее' запуÑтит Ñканирование карты клаÑтеров внешнего тома Ð´Ð»Ñ Ð²Ñ‹ÑÑÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° непрерывной Ñвободной облаÑти, конец которой Ñтанет концом тома. Этот учаÑток будет приÑпоÑоблен под Ñкрытый том, Ñ‚.е. именно им определÑетÑÑ ÐµÐ³Ð¾ макÑимально возможный размер. Сканирование карты клаÑтеров гарантирует, что никакие данные во внешнем томе не будут перезапиÑаны Ñкрытым томом.</string>
<string lang="ru" key="HIDVOL_HOST_FILLING_TITLE">Содержимое внешнего тома</string>
- <string lang="ru" key="HIDVOL_HOST_PRE_CIPHER_HELP">\n\nÐа Ñледующих Ñкранах маÑтера уÑтановите параметры Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома (внутри которого затем будет Ñоздан Ñкрытый том).</string>
+ <string lang="ru" key="HIDVOL_HOST_PRE_CIPHER_HELP">\n\nÐа Ñледующих Ñтапах уÑтановите параметры Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома (внутри которого затем будет Ñоздан Ñкрытый том).</string>
<string lang="ru" key="HIDVOL_HOST_PRE_CIPHER_HELP_SYSENC">\n\nÐа Ñледующих Ñтапах вы Ñоздадите так называемый внешний том VeraCrypt внутри первого раздела за ÑиÑтемным разделом (как Ñто было объÑÑнено на одном из предыдущих Ñтапов).</string>
<string lang="ru" key="HIDVOL_HOST_PRE_CIPHER_TITLE">Внешний том</string>
<string lang="ru" key="HIDDEN_OS_PRE_CIPHER_HELP">Ðа Ñледующих Ñтапах потребуетÑÑ ÑƒÑтановить параметры и пароль Ð´Ð»Ñ Ñкрытого тома, который будет Ñодержать Ñкрытую ОС. Примечание: Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° непрерывной незанÑтой облаÑти, окончание которой будет выровнено по концу внешнего тома, выполнÑетÑÑ Ñканирование его карты клаÑтеров. Эта облаÑÑ‚ÑŒ будет подогнана Ð´Ð»Ñ Ñкрытого тома, чтобы его границы не превышали макÑимально возможный размер. МакÑимально возможный размер Ñкрытого тома определён и он гарантированно больше, чем у ÑиÑтемного раздела (Ñто необходимо, поÑкольку вÑÑ‘ Ñодержимое ÑиÑтемного раздела должно быть Ñкопировано в Ñкрытый том). Т.е. никакие данные, находÑщиеÑÑ Ð² данный момент во внешнем томе, не будут перезапиÑаны данными, запиÑанными в облаÑÑ‚ÑŒ Ñкрытого тома.</string>
- <string lang="ru" key="HIDDEN_OS_PRE_CIPHER_WARNING">Ð’ÐЖÐО: Запомните алгоритмы, которые вы ÑÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹Ð±Ð¸Ñ€Ð°ÐµÑ‚Ðµ. Вам потребуетÑÑ Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ те же алгоритмы Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС. Ð’ противном Ñлучае ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтема будет недоÑтупна! (ÐžÐ±Ð¼Ð°Ð½Ð½Ð°Ñ ÑиÑтема должна быть зашифрована тем же алгоритмом, что и ÑкрытаÑ.)\n\nПримечание: причина в том, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ Ð¸ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтемы иÑпользуют один и тот же загрузчик, поддерживающий лишь алгоритм, выбранный пользователем (Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ алгоритма имеетÑÑ ÑÐ²Ð¾Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt).</string>
+ <string lang="ru" key="HIDDEN_OS_PRE_CIPHER_WARNING">Ð’ÐЖÐО: Запомните алгоритмы, которые вы ÑÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹Ð±Ð¸Ñ€Ð°ÐµÑ‚Ðµ - Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС потребуетÑÑ Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ те же алгоритмы. Ð’ противном Ñлучае ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтема будет недоÑтупна! (ÐžÐ±Ð¼Ð°Ð½Ð½Ð°Ñ ÑиÑтема должна быть зашифрована тем же алгоритмом, что и ÑкрытаÑ.)\n\nПримечание: причина в том, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ Ð¸ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтемы иÑпользуют один и тот же загрузчик, поддерживающий лишь алгоритм, выбранный пользователем (Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ алгоритма имеетÑÑ ÑÐ²Ð¾Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt).</string>
<string lang="ru" key="HIDVOL_PRE_CIPHER_HELP">\n\nКарта клаÑтеров тома проÑмотрена, макÑимально возможный размер Ñкрытого тома определён. Ðа Ñледующих Ñкранах маÑтера вам нужно будет выбрать параметры, размер и пароль Ð´Ð»Ñ Ñкрытого тома.</string>
<string lang="ru" key="HIDVOL_PRE_CIPHER_TITLE">Скрытый том</string>
- <string lang="ru" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Теперь Ñкрытый том защищён от повреждений до Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома.\n\nÐ’ÐИМÐÐИЕ: При попытке запиÑи данных в облаÑÑ‚ÑŒ Ñкрытого тома, VeraCrypt запретит запиÑÑŒ на веÑÑŒ том (внешний и Ñкрытый) до его размонтированиÑ, так как Ñто может повредить файловую ÑиÑтему внешнего тома, что, в Ñвою очередь, негативно отразитÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытого тома. ПоÑтому вам Ñледует вÑÑчеÑки препÑÑ‚Ñтвовать запиÑи в облаÑÑ‚ÑŒ, где находитÑÑ Ñкрытый том. Любые данные, запиÑываемые в облаÑÑ‚ÑŒ, занимаемую Ñкрытым томом, будут ПОТЕРЯÐЫ. Windows может Ñообщать об Ñтом как об ошибке отложенной запиÑи или неверном параметре.</string>
- <string lang="ru" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Ð’Ñе Ñкрытые тома в заново Ñмонтированных томах защищены от повреждений до размонтированиÑ.\n\nÐ’ÐИМÐÐИЕ: При попытке запиÑи данных в облаÑÑ‚ÑŒ Ñкрытого тома, VeraCrypt запретит запиÑÑŒ на веÑÑŒ том (внешний и Ñкрытый) до его размонтированиÑ, так как Ñто может повредить файловую ÑиÑтему внешнего тома, что, в Ñвою очередь, негативно отразитÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытого тома. ПоÑтому вам Ñледует вÑÑчеÑки препÑÑ‚Ñтвовать запиÑи в облаÑÑ‚ÑŒ, где находитÑÑ Ñкрытый том. Любые данные, запиÑываемые в облаÑÑ‚ÑŒ, занимаемую Ñкрытым томом, будут ПОТЕРЯÐЫ. Windows может Ñообщать об Ñтом как об ошибке отложенной запиÑи или неверном параметре.</string>
- <string lang="ru" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">Ð’ÐИМÐÐИЕ: Попытка запиÑи данных в облаÑÑ‚ÑŒ Ñкрытого тома в томе, Ñмонтированном как %c:! Ð”Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ Ñкрытого тома запиÑÑŒ Ñтих данных была запрещена. Это могло бы повредить файловую ÑиÑтему внешнего тома, Windows может Ñообщать об ошибке отложенной запиÑи или неверном параметре. ЗапиÑÑŒ на веÑÑŒ том (внешнюю и Ñкрытую чаÑти) запрещена до его размонтированиÑ. ЕÑли VeraCrypt не в первый раз препÑÑ‚Ñтвует запиÑи в облаÑÑ‚ÑŒ Ñкрытого тома в данном томе, Ñто может неблагоприÑтно ÑказатьÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытого тома (из-за возможных Ñтранных неÑоответÑтвий в файловой ÑиÑтеме внешнего тома). ПоÑтому имеет ÑмыÑл Ñоздать новый том VeraCrypt (Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ð¼ быÑтрым форматированием) и перенеÑти файлы из Ñтого тома во вновь Ñозданный; Ñтот том Ñледует затем надёжно затереть (его внешнюю и внутреннюю чаÑти). Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°ÑтоÑтельно рекомендуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ операционную ÑиÑтему.</string>
- <string lang="ru" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">Вы намерены хранить в томе файлы размером более 4 ГБ. Такой том должен быть отформатирован в NTFS, что, однако, невозможно.</string>
- <string lang="ru" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Примите к Ñведению, что когда выполнÑетÑÑ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема, не Ñкрытые тома VeraCrypt форматировать в NTFS невозможно. Это объÑÑнÑетÑÑ Ñ‚ÐµÐ¼, что том требуетÑÑ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ Ñмонтировать без защиты от запиÑи, чтобы позволить операционной ÑиÑтеме отформатировать его в NTFS (тогда как форматирование в FAT выполнÑетÑÑ ÑредÑтвами VeraCrypt, а не операционной ÑиÑтемы, и без Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð¼Ð°). ТехничеÑкие подробноÑти приведены ниже. Ðе Ñкрытый том NTFS можно Ñоздать из обманной операционной ÑиÑтемы.</string>
- <string lang="ru" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">Ð’ целÑÑ… безопаÑноÑти, когда запущена ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡, Ñкрытые тома можно Ñоздавать только в 'прÑмом' режиме (поÑкольку внешние тома должны вÑегда монтироватьÑÑ ÐºÐ°Ðº 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ'). Чтобы безопаÑно Ñоздать Ñкрытый том, выполните Ñледующие шаги:\n\n1) Загрузите обманную ÑиÑтему.\n\n2) Создайте обычный том VeraCrypt и Ñкопируйте в Ñтот том какие-нибудь оÑмыÑленно выглÑдÑщие файлы, которые на Ñамом деле вам прÑтать ÐЕ нужно (Ñтот том Ñтанет внешним томом).\n\n3) Загрузите Ñкрытую ÑиÑтему и запуÑтите маÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt. ЕÑли том - на оÑнове файла, перемеÑтите его в ÑиÑтемный раздел или в другой Ñкрытый том (иначе вновь Ñозданный Ñкрытый том был бы Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ' без возможноÑти форматированиÑ). Следуйте инÑтрукциÑм маÑтера так, как при выборе 'прÑмого' режима ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытого тома.\n\n4) Ðа Ñкране маÑтера выберите том, Ñозданный на Ñтапе 2, и Ñледуйте инÑтрукциÑм Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытого тома внутри него.</string>
- <string lang="ru" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Ð’ целÑÑ… безопаÑноÑти, когда запущена ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡, локальные незашифрованные файловые ÑиÑтемы и не Ñкрытые тома VeraCrypt монтируютÑÑ ÐºÐ°Ðº 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ' (Ñ‚.е. в такие файловые ÑиÑтемы или тома VeraCrypt не может быть запиÑано никаких данных).\n\nДанные разрешаетÑÑ Ð·Ð°Ð¿Ð¸Ñывать лишь в файловые ÑиÑтемы внутри Ñкрытого тома VeraCrypt (при уÑловии, что Ñкрытый том раÑположен не в контейнере, находÑщемÑÑ Ð½Ð° незашифрованной файловой ÑиÑтеме или на любой другой файловой ÑиÑтеме только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ).</string>
- <string lang="ru" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">Эти меры противодейÑÑ‚Ð²Ð¸Ñ Ð±Ñ‹Ð»Ð¸ реализованы по трём оÑновным причинам:\n\n- ВозможноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñной платформы Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñкрытых томов VeraCrypt. Обратите внимание, что мы официально рекомендуем монтировать Ñкрытые тома, только когда запущена ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема. (ПодробноÑти Ñм. в документации, параграф 'Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти каÑательно Ñкрытых томов'.)\n\n- Ð’ Ñ€Ñде Ñлучаев имеетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑ‚ÑŒ определить, что в определённое Ð²Ñ€ÐµÐ¼Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема не была Ñмонтирована (или конкретный файл в файловой ÑиÑтеме не был Ñохранён либо к нему не было Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð· неё) под конкретной копией ОС (например путём анализа и ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¾Ð² файловых ÑиÑтем, времён файлов, отчётов приложений и/или ошибок и т.д.). Ð’ÑÑ‘ Ñто может навеÑти на мыÑль о ÑущеÑтвовании в компьютере Ñкрытой ОС. Данные меры противодейÑÑ‚Ð²Ð¸Ñ Ñтому препÑÑ‚Ñтвуют.\n\n- Предотвращение Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… и безопаÑÐ½Ð°Ñ Ð³Ð¸Ð±ÐµÑ€Ð½Ð°Ñ†Ð¸Ñ. При выходе из гибернации Windows подразумевает, что вÑе Ñмонтированные файловые ÑиÑтемы находÑÑ‚ÑÑ Ð² том же ÑоÑтоÑнии, что и до гибернации. VeraCrypt обеÑпечивает Ñто запретом запиÑи любой файловой ÑиÑтемы, доÑтупной как из обманной, так и из Ñкрытой ÑиÑтемы. Без такой защиты Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема может повредитьÑÑ Ð¿Ñ€Ð¸ монтировании одной ÑиÑтемой, когда Ð´Ñ€ÑƒÐ³Ð°Ñ ÑиÑтема находитÑÑ Ð² ÑоÑтоÑнии гибернации.</string>
+ <string lang="ru" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Теперь Ñкрытый том защищён от повреждений до Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома.\n\nÐ’ÐИМÐÐИЕ: При попытке запиÑи данных в облаÑÑ‚ÑŒ Ñкрытого тома, VeraCrypt запретит запиÑÑŒ на веÑÑŒ том (внешний и Ñкрытый) до его размонтированиÑ, так как Ñто может повредить файловую ÑиÑтему внешнего тома, что, в Ñвою очередь, негативно отразитÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытого тома. ПоÑтому Ñледует вÑÑчеÑки препÑÑ‚Ñтвовать запиÑи в облаÑÑ‚ÑŒ, где находитÑÑ Ñкрытый том. Любые данные, запиÑываемые в облаÑÑ‚ÑŒ, занимаемую Ñкрытым томом, будут ПОТЕРЯÐЫ. Windows может Ñообщать об Ñтом как об ошибке отложенной запиÑи или неверном параметре.</string>
+ <string lang="ru" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Ð’Ñе Ñкрытые тома в заново Ñмонтированных томах защищены от повреждений до размонтированиÑ.\n\nÐ’ÐИМÐÐИЕ: При попытке запиÑи данных в облаÑÑ‚ÑŒ Ñкрытого тома, VeraCrypt запретит запиÑÑŒ на веÑÑŒ том (внешний и Ñкрытый) до его размонтированиÑ, так как Ñто может повредить файловую ÑиÑтему внешнего тома, что, в Ñвою очередь, негативно отразитÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытого тома. ПоÑтому Ñледует вÑÑчеÑки препÑÑ‚Ñтвовать запиÑи в облаÑÑ‚ÑŒ, где находитÑÑ Ñкрытый том. Любые данные, запиÑываемые в облаÑÑ‚ÑŒ, занимаемую Ñкрытым томом, будут ПОТЕРЯÐЫ. Windows может Ñообщать об Ñтом как об ошибке отложенной запиÑи или неверном параметре.</string>
+ <string lang="ru" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">Ð’ÐИМÐÐИЕ: Попытка запиÑи данных в облаÑÑ‚ÑŒ Ñкрытого тома в томе, Ñмонтированном как %c:! Чтобы защитить Ñкрытый том, запиÑÑŒ Ñтих данных была запрещена. Это могло бы повредить файловую ÑиÑтему внешнего тома, а Windows Ñообщала бы об ошибке отложенной запиÑи или неверном параметре. ВеÑÑŒ том (внешнÑÑ Ð¸ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ñ‡Ð°Ñти) недоÑтупен Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи до его размонтированиÑ. ЕÑли VeraCrypt не в первый раз препÑÑ‚Ñтвует запиÑи в облаÑÑ‚ÑŒ Ñкрытого тома в данном томе, Ñто может неблагоприÑтно ÑказатьÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытого тома (из-за возможных Ñтранных неÑоответÑтвий в файловой ÑиÑтеме внешнего тома). ПоÑтому имеет ÑмыÑл Ñоздать новый том VeraCrypt (Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ð¼ быÑтрым форматированием) и перенеÑти файлы из Ñтого тома во вновь Ñозданный; Ñтот том Ñледует затем надёжно затереть (и внешнюю, и внутреннюю чаÑти). Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°ÑтоÑтельно рекомендуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ операционную ÑиÑтему.</string>
+ <string lang="ru" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">Ð’Ñ‹ намерены хранить в томе файлы размером более 4 ГБ. Такой том должен быть отформатирован в NTFS/exFAT, но Ñто невозможно.</string>
+ <string lang="ru" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Примите к Ñведению, что когда работает ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡, не Ñкрытые тома VeraCrypt невозможно форматировать в NTFS/exFAT. Это объÑÑнÑетÑÑ Ñ‚ÐµÐ¼, что том требуетÑÑ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ Ñмонтировать без защиты от запиÑи, чтобы позволить ОС отформатировать его в NTFS (тогда как форматирование в FAT выполнÑетÑÑ ÑредÑтвами VeraCrypt, а не операционной ÑиÑтемы, и без Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°). ТехничеÑкие подробноÑти приведены ниже. Ðе Ñкрытый том NTFS/exFAT можно Ñоздать изнутри обманной ОС.</string>
+ <string lang="ru" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">Ð’ целÑÑ… безопаÑноÑти, когда запущена ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡, Ñкрытые тома можно Ñоздавать только в 'прÑмом' режиме (поÑкольку внешние тома должны вÑегда монтироватьÑÑ ÐºÐ°Ðº 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ'). Чтобы безопаÑно Ñоздать Ñкрытый том, выполните Ñледующее:\n\n1) Загрузите обманную ÑиÑтему.\n\n2) Создайте обычный том VeraCrypt и Ñкопируйте в Ñтот том какие-нибудь оÑмыÑленно выглÑдÑщие файлы, которые на Ñамом деле вам прÑтать ÐЕ нужно (Ñтот том Ñтанет внешним).\n\n3) Загрузите Ñкрытую ÑиÑтему и запуÑтите маÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt. ЕÑли том - на оÑнове файла, перемеÑтите его в ÑиÑтемный раздел или в другой Ñкрытый том (иначе вновь Ñозданный Ñкрытый том был бы Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ' без возможноÑти форматированиÑ). Следуйте инÑтрукциÑм маÑтера так, как при выборе 'прÑмого' режима ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытого тома.\n\n4) Ðа Ñкране маÑтера выберите том, Ñозданный на Ñтапе 2, и Ñледуйте инÑтрукциÑм Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытого тома внутри него.</string>
+ <string lang="ru" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Ð’ целÑÑ… безопаÑноÑти, когда запущена ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡, локальные незашифрованные файловые ÑиÑтемы и не Ñкрытые тома VeraCrypt монтируютÑÑ ÐºÐ°Ðº 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ' (Ñ‚.е. в такие файловые ÑиÑтемы или тома VeraCrypt не может быть запиÑано никаких данных).\n\nРазрешена запиÑÑŒ лишь в файловые ÑиÑтемы внутри Ñкрытого тома VeraCrypt (при уÑловии, что Ñкрытый том раÑположен не в контейнере, находÑщемÑÑ Ð½Ð° незашифрованной файловой ÑиÑтеме или на любой другой файловой ÑиÑтеме только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ).</string>
+ <string lang="ru" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">Эти меры противодейÑÑ‚Ð²Ð¸Ñ Ð±Ñ‹Ð»Ð¸ реализованы по трём оÑновным причинам:\n\n- ВозможноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñной платформы Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñкрытых томов VeraCrypt. Обратите внимание, что мы официально рекомендуем монтировать Ñкрытые тома, только когда запущена ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡. (ПодробноÑти Ñм. в документации, глава 'Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти каÑательно Ñкрытых томов'.)\n\n- Ð’ Ñ€Ñде Ñлучаев имеетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑ‚ÑŒ определить, что в определённое Ð²Ñ€ÐµÐ¼Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема не была Ñмонтирована (или конкретный файл в файловой ÑиÑтеме не был Ñохранён, либо к нему не было Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð· неё) под конкретной копией ОС (например, путём анализа и ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¾Ð² файловых ÑиÑтем, времён файлов, отчётов приложений и/или ошибок и т.д.). Ð’ÑÑ‘ Ñто может навеÑти на мыÑль о ÑущеÑтвовании в компьютере Ñкрытой ОС. Данные меры противодейÑÑ‚Ð²Ð¸Ñ Ñтому препÑÑ‚Ñтвуют.\n\n- Предотвращение Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… и безопаÑÐ½Ð°Ñ Ð³Ð¸Ð±ÐµÑ€Ð½Ð°Ñ†Ð¸Ñ. При выходе из гибернации Windows подразумевает, что вÑе Ñмонтированные файловые ÑиÑтемы находÑÑ‚ÑÑ Ð² том же ÑоÑтоÑнии, что и до гибернации. VeraCrypt обеÑпечивает Ñто запретом запиÑи любой файловой ÑиÑтемы, доÑтупной как из обманной, так и из Ñкрытой ÑиÑтемы. Без такой защиты Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема может повредитьÑÑ Ð¿Ñ€Ð¸ монтировании одной ÑиÑтемой, когда Ð´Ñ€ÑƒÐ³Ð°Ñ ÑиÑтема находитÑÑ Ð² ÑоÑтоÑнии гибернации.</string>
<string lang="ru" key="DECOY_TO_HIDDEN_OS_DATA_TRANSFER_HOWTO">Примечание: еÑли нужно безопаÑно перенеÑти файлы из обманной ÑиÑтемы в Ñкрытую, выполните Ñледующее: 1) Загрузите обманную ÑиÑтему. 2) Сохраните нужные вам файлы на незашифрованном томе или на внешнем/обычном томе VeraCrypt. 3) Загрузите Ñкрытую ÑиÑтему. 4) ЕÑли вы Ñохранили файлы на томе VeraCrypt, Ñмонтируйте его (он будет автоматичеÑки Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ'). 5) Скопируйте файлы в Ñкрытый ÑиÑтемный раздел или в другой Ñкрытый том.</string>
- <string lang="ru" key="CONFIRM_RESTART">ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° компьютера.\n\nВыполнить перезагрузку ÑейчаÑ?</string>
+ <string lang="ru" key="CONFIRM_RESTART">ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° компьютера.\n\nВыполнить её ÑейчаÑ?</string>
<string lang="ru" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑоÑтоÑÐ½Ð¸Ñ ÑиÑтемного шифрованиÑ.</string>
<string lang="ru" key="ERR_PASSWORD_MISSING">Ðе указан пароль в командной Ñтроке. Том Ñоздать невозможно.</string>
<string lang="ru" key="ERR_SIZE_MISSING">Ðе указан размер тома в командной Ñтроке. Том Ñоздать невозможно.</string>
@@ -558,8 +558,8 @@
<string lang="ru" key="ERR_VOLUME_SIZE_TOO_SMALL">Указанный в командной Ñтроке размер тома Ñлишком мал. Том Ñоздать невозможно.</string>
<string lang="ru" key="ERR_VOLUME_SIZE_TOO_BIG">Указанный в командной Ñтроке размер тома Ñлишком велик. Том Ñоздать невозможно.</string>
<string lang="ru" key="INIT_SYS_ENC">Ðевозможно инициализировать компоненты Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑиÑтемного шифрованиÑ.</string>
- <string lang="ru" key="INIT_RAND">Ошибка инициализации генератора Ñлучайных чиÑел.</string>
- <string lang="ru" key="CAPI_RAND">Сбой интерфейÑа CryptoAPI Windows!\n\n\n(ЕÑли вы хотите Ñообщить о ÑвÑзанной Ñ Ñтим ошибке, включите в отчёт Ñледующую техничеÑкую информацию:\n%s, ПоÑледнÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° = 0x%.8X)</string>
+ <string lang="ru" key="INIT_RAND">Ошибка инициализации генератора Ñлучайных чиÑел.\n\n\n(ЕÑли вы хотите Ñообщить о ÑвÑзанной Ñ Ñтим ошибке, включите в отчёт Ñледующую техничеÑкую информацию:\n%hs, ПоÑледнÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° = 0x%.8X)</string>
+ <string lang="ru" key="CAPI_RAND">Сбой интерфейÑа CryptoAPI Windows!\n\n\n(ЕÑли вы хотите Ñообщить о ÑвÑзанной Ñ Ñтим ошибке, включите в отчёт Ñледующую техничеÑкую информацию:\nh%s, ПоÑледнÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° = 0x%.8X)</string>
<string lang="ru" key="INIT_REGISTER">Ошибка инициализации приложениÑ. Ðевозможно зарегиÑтрировать клаÑÑ Dialog.</string>
<string lang="ru" key="INIT_RICHEDIT">Ошибка загрузки ÑиÑтемной библиотеки Rich Edit.</string>
<string lang="ru" key="INTRO_TITLE">МаÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt</string>
@@ -567,173 +567,173 @@
<string lang="ru" key="MAX_HIDVOL_SIZE_KB">МакÑимальный размер Ñкрытого тома Ð´Ð»Ñ Ñтого тома: %.2f КБ</string>
<string lang="ru" key="MAX_HIDVOL_SIZE_MB">МакÑимальный размер Ñкрытого тома Ð´Ð»Ñ Ñтого тома: %.2f МБ</string>
<string lang="ru" key="MAX_HIDVOL_SIZE_GB">МакÑимальный размер Ñкрытого тома Ð´Ð»Ñ Ñтого тома: %.2f ГБ.</string>
- <string lang="ru" key="MAX_HIDVOL_SIZE_TB">МакÑимальный размер Ñкрытого тома Ð´Ð»Ñ Ñтого тома: %.2f TБ.</string>
- <string lang="ru" key="MOUNTED_NOPWCHANGE">Пока том Ñмонтирован, изменÑÑ‚ÑŒ пароль/ключевые файлы Ñтого тома невозможно. Сначала необходимо размонтировать том.</string>
- <string lang="ru" key="MOUNTED_NO_PKCS5_PRF_CHANGE">Пока том Ñмонтирован, изменÑÑ‚ÑŒ алгоритм деривации ключа заголовка Ñтого тома невозможно. Сначала необходимо размонтировать том.</string>
+ <string lang="ru" key="MAX_HIDVOL_SIZE_TB">МакÑимальный размер Ñкрытого тома Ð´Ð»Ñ Ñтого тома: %.2f ТБ.</string>
+ <string lang="ru" key="MOUNTED_NOPWCHANGE">Пока том Ñмонтирован, изменÑÑ‚ÑŒ пароль/ключевые файлы Ñтого тома невозможно. Сначала размонтируйте том.</string>
+ <string lang="ru" key="MOUNTED_NO_PKCS5_PRF_CHANGE">Пока том Ñмонтирован, изменÑÑ‚ÑŒ алгоритм деривации ключа заголовка Ñтого тома невозможно. Сначала размонтируйте том.</string>
<string lang="ru" key="MOUNT_BUTTON">С&amp;монтировать</string>
<string lang="ru" key="NEW_VERSION_REQUIRED">Ð”Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтого тома требуетÑÑ Ð±Ð¾Ð»ÐµÐµ Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ VeraCrypt.</string>
- <string lang="ru" key="VOL_CREATION_WIZARD_NOT_FOUND">Ошибка! Ðе найден маÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð².\n\nПроверьте, имеетÑÑ ли в папке, откуда был запущен файл 'VeraCrypt.exe', файл 'VeraCrypt Format.exe'. ЕÑли его там нет, переуÑтановите VeraCrypt или найдите на жёÑтком диÑке файл 'VeraCrypt Format.exe' и запуÑтите его.</string>
- <string lang="ru" key="VOL_EXPANDER_NOT_FOUND">Ошибка! РаÑширитель томов не найден.\n\nУбедитеÑÑŒ в наличии файла 'VeraCryptExpander.exe' в папке, откуда был запущен 'VeraCrypt.exe'. ЕÑли его там нет, переуÑтановите VeraCrypt или найдите 'VeraCryptExpander.exe' у ÑÐµÐ±Ñ Ð½Ð° диÑке и запуÑтите его.</string>
+ <string lang="ru" key="VOL_CREATION_WIZARD_NOT_FOUND">ОШИБКÐ: Ðе найден маÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð².\n\nУбедитеÑÑŒ в наличии файла 'VeraCrypt Format.exe' в папке, откуда был запущен 'VeraCrypt.exe'. ЕÑли его там нет, переуÑтановите VeraCrypt или найдите 'VeraCrypt Format.exe' у ÑÐµÐ±Ñ Ð½Ð° диÑке и запуÑтите его.</string>
+ <string lang="ru" key="VOL_EXPANDER_NOT_FOUND">ОШИБКÐ: Ðе найден раÑширитель томов.\n\nУбедитеÑÑŒ в наличии файла 'VeraCryptExpander.exe' в папке, откуда был запущен 'VeraCrypt.exe'. ЕÑли его там нет, переуÑтановите VeraCrypt или найдите 'VeraCryptExpander.exe' у ÑÐµÐ±Ñ Ð½Ð° диÑке и запуÑтите его.</string>
<string lang="ru" key="NEXT">&amp;Далее &gt;</string>
<string lang="ru" key="FINALIZE">&amp;Готово</string>
<string lang="ru" key="INSTALL">&amp;УÑтановить</string>
<string lang="ru" key="EXTRACT">&amp;Извлечь</string>
- <string lang="ru" key="NODRIVER">Ðе удалоÑÑŒ подключитьÑÑ Ðº драйверу уÑтройÑтв VeraCrypt. ЕÑли драйвер не запущен, работа VeraCrypt невозможна.\n\nИз-за оÑобенноÑтей Windows, Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ драйвера Ñначала может потребоватьÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ðµ ÑеанÑа или перезагрузка ÑиÑтемы.</string>
+ <string lang="ru" key="NODRIVER">Ðе удалоÑÑŒ подключитьÑÑ Ðº драйверу VeraCrypt. ЕÑли драйвер не запущен, работа VeraCrypt невозможна.\n\nИз-за оÑобенноÑтей Windows, Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ драйвера Ñначала может потребоватьÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ðµ ÑеанÑа или перезагрузка ÑиÑтемы.</string>
<string lang="ru" key="NOFONT">Ошибка загрузки/подготовки шрифтов.</string>
<string lang="ru" key="NOT_FOUND">Буква диÑка не найдена, либо она не была указана.</string>
- <string lang="ru" key="ERR_CANNOT_ASSIGN_DRIVE_LETTER_NONSYS_DEC">Ошибка! Ðевозможно приÑвоить букву диÑка.\n\nПока зашифрованному тому не приÑвоена буква диÑка, хранÑщиеÑÑ Ð² нём данные будут недоÑтупны.\n\nПовторить?</string>
+ <string lang="ru" key="ERR_CANNOT_ASSIGN_DRIVE_LETTER_NONSYS_DEC">ОШИБКÐ: Ðевозможно приÑвоить букву диÑка.\n\nПока зашифрованному тому не приÑвоена буква диÑка, хранÑщиеÑÑ Ð² нём данные будут недоÑтупны.\n\nПовторить?</string>
<string lang="ru" key="DRIVE_LETTER_UNAVAILABLE">Буква диÑка недоÑтупна.</string>
<string lang="ru" key="NO_FILE_SELECTED">Ðе выбран файл.</string>
<string lang="ru" key="NO_FREE_DRIVES">Ðет доÑтупных букв диÑков.</string>
- <string lang="ru" key="NO_FREE_DRIVE_FOR_OUTER_VOL">Ðет незанÑтой буквы диÑка Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома. Создание тома не может быть продолжено.</string>
- <string lang="ru" key="NO_OS_VER">Ðе удалоÑÑŒ определить верÑию ОС, либо вы иÑпользуете неподдерживаемую ОС.</string>
+ <string lang="ru" key="NO_FREE_DRIVE_FOR_OUTER_VOL">Ðет незанÑтой буквы диÑка Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома. Продолжение ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° невозможно.</string>
+ <string lang="ru" key="NO_OS_VER">Ðе удалоÑÑŒ определить верÑию операционной ÑиÑтемы, либо вы иÑпользуете неподдерживаемую ОС.</string>
<string lang="ru" key="NO_PATH_SELECTED">Ðе указан путь.</string>
- <string lang="ru" key="NO_SPACE_FOR_HIDDEN_VOL">ÐедоÑтаточно Ñвободного меÑта Ð´Ð»Ñ Ñкрытого тома. Продолжить Ñоздание тома невозможно.</string>
- <string lang="ru" key="HIDDEN_VOLUME_TOO_SMALL_FOR_OS_CLONE">ОШИБКÐ: Скопированные во внешний том файлы занимают Ñлишком много меÑта. Из-за Ñтого во внешнем томе недоÑтаточно Ñвободного меÑта под Ñкрытый том.\n\nОбратите внимание, что Ñкрытый том должен быть не меньше ÑиÑтемного раздела (Ñ‚.е. раздела, где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема). Причина в том, что при Ñоздании Ñкрытой ОС выполнÑетÑÑ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ в Ñкрытый том Ñодержимого ÑиÑтемного раздела.\n\n\nПродолжение ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой операционной ÑиÑтемы невозможно.</string>
+ <string lang="ru" key="NO_SPACE_FOR_HIDDEN_VOL">ÐедоÑтаточно Ñвободного меÑта Ð´Ð»Ñ Ñкрытого тома. Продолжение ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° невозможно.</string>
+ <string lang="ru" key="HIDDEN_VOLUME_TOO_SMALL_FOR_OS_CLONE">ОШИБКÐ: Скопированные во внешний том файлы занимают Ñлишком много меÑта, из-за чего в нём недоÑтаточно меÑта под Ñкрытый том.\n\nОбратите внимание, что Ñкрытый том должен быть не меньше ÑиÑтемного раздела (Ñ‚.е. раздела, где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема). Причина в том, что при Ñоздании Ñкрытой ОС выполнÑетÑÑ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ в Ñкрытый том Ñодержимого ÑиÑтемного раздела.\n\n\nПродолжение ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой операционной ÑиÑтемы невозможно.</string>
<string lang="ru" key="OPENFILES_DRIVER">Драйвер не может размонтировать том. ВероÑтно, на Ñтом томе имеютÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ðµ файлы.</string>
<string lang="ru" key="OPENFILES_LOCK">Ðевозможно заблокировать том. Ðа Ñтом томе имеютÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ðµ файлы, поÑтому его Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ.</string>
- <string lang="ru" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt не может заблокировать том, так как он иÑпользуетÑÑ ÑиÑтемой или приложениÑми (возможно, открыты находÑщиеÑÑ Ð½Ð° Ñтом томе файлы).\n\nÐ’Ñ‹ наÑтаиваете на принудительном размонтировании Ñтого тома?</string>
+ <string lang="ru" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt не может заблокировать том, так как он иÑпользуетÑÑ ÑиÑтемой или приложениÑми (возможно, открыты находÑщиеÑÑ Ð½Ð° Ñтом томе файлы).\n\nРазмонтировать Ñтот том принудительно?</string>
<string lang="ru" key="OPEN_VOL_TITLE">Выберите том VeraCrypt</string>
<string lang="ru" key="OPEN_TITLE">Укажите путь и Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°</string>
<string lang="ru" key="SELECT_PKCS11_MODULE">Выберите библиотеку PKCS #11</string>
<string lang="ru" key="OUTOFMEMORY">Мало памÑти</string>
<string lang="ru" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">Ð’ÐЖÐО: Ðеопытным пользователÑм наÑтоÑтельно рекомендуетÑÑ Ð²Ð¼ÐµÑто шифрованиÑ\nвÑего раздела/уÑтройÑтва Ñоздать на выбранном разделе/уÑтройÑтве файловый контейнер VeraCrypt.\n\nПри Ñоздании файлового контейнера VeraCrypt (в отличие от ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÑтройÑтва или раздела),\nнапример, нет риÑка ÑƒÐ½Ð¸Ñ‡Ñ‚Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð³Ð¾ чиÑла файлов.\nОбратите внимание: файловый контейнер VeraCrypt (Ñ…Ð¾Ñ‚Ñ Ð¾Ð½ и Ñодержит виртуальный зашифрованный диÑк)\nв дейÑтвительноÑти предÑтавлÑет Ñобой обычный файл.\nСм. подробноÑти в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt (глава 'РуководÑтво Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ‡ÐºÐ¾Ð²').\n\nÐ’Ñ‹ дейÑтвительно хотите зашифровать целиком уÑтройÑтво/раздел?</string>
- <string lang="ru" key="OVERWRITEPROMPT">Ð’ÐИМÐÐИЕ: Файл '%s' уже ÑущеÑтвует!\n\nÐ’ÐЖÐО: VERACRYPT ÐЕ БУДЕТ ШИФРОВÐТЬ ЭТОТ ФÐЙЛ, ОРЕГО УДÐЛИТ.\n\nÐ’Ñ‹ дейÑтвительно хотите удалить Ñтот файл, заменив его новым контейнером VeraCrypt?</string>
+ <string lang="ru" key="OVERWRITEPROMPT">Ð’ÐИМÐÐИЕ: Файл '%s' уже ÑущеÑтвует!\n\nÐ’ÐЖÐО: ЭТОТ ФÐЙЛ БУДЕТ ÐЕ ЗÐШИФРОВÐÐ, РУДÐЛÐÐ.\n\nÐ’Ñ‹ дейÑтвительно хотите удалить Ñтот файл, заменив его новым контейнером VeraCrypt?</string>
<string lang="ru" key="OVERWRITEPROMPT_DEVICE">ОСТОРОЖÐО: ВСЕ ДÐÐÐЫЕ, КОТОРЫЕ СОДЕРЖИТ %s '%s'%s, БУДУТ УÐИЧТОЖЕÐЫ (РÐЕ ЗÐШИФРОВÐÐЫ)!\n\nÐ’Ñ‹ наÑтаиваете на форматировании?</string>
<string lang="ru" key="NONSYS_INPLACE_ENC_CONFIRM">Ð’ÐИМÐÐИЕ: Монтирование тома и доÑтуп к хранÑщимÑÑ Ð² нём файлам невозможны, пока том не будет полноÑтью зашифрован.\n\nÐ’Ñ‹ дейÑтвительно хотите приÑтупить к шифрованию %s '%s'%s?</string>
<string lang="ru" key="NONSYS_INPLACE_DEC_CONFIRM">Ð’ÐИМÐÐИЕ: Монтирование тома и доÑтуп к хранÑщимÑÑ Ð² нём файлам невозможны, пока том не будет полноÑтью раÑшифрован.\n\nÐ’Ñ‹ дейÑтвительно хотите приÑтупить к дешифрованию %s '%s'%s?</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">Ð’ÐИМÐÐИЕ: Ðеожиданное пропадание ÑÐ»ÐµÐºÑ‚Ñ€Ð¾Ð¿Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÑŽÑ‰Ð¸Ñ…ÑÑ Ð´Ð°Ð½Ð½Ñ‹Ñ… 'на меÑте' или Ñбой операционной ÑиÑтемы из-за программной/аппаратной ошибки может привеÑти к чаÑтичному повреждению или потере данных. ПоÑтому прежде чем приÑтупить к шифрованию, Ñделайте резервную копию файлов, которые вы хотите зашифровать.\n\nÐ’Ñ‹ Ñделали такую резервную копию?</string>
- <string lang="ru" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">ОСТОРОЖÐО: ВСЕ ФÐЙЛЫ ÐРРÐЗДЕЛЕ '%s'%s (Т.Е. ÐРПЕРВОМ РÐЗДЕЛЕ ЗРСИСТЕМÐЫМ) БУДУТ УÐИЧТОЖЕÐЫ (РÐЕ ЗÐШИФРОВÐÐЫ)!\n\nÐ’Ñ‹ дейÑтвительно наÑтаиваете на форматировании?</string>
- <string lang="ru" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">Ð’ÐИМÐÐИЕ: ВЫБРÐÐÐЫЙ РÐЗДЕЛ СОДЕРЖИТ БОЛЬШОЙ ОБЪÐÐœ ДÐÐÐЫХ! Ð’Ñе файлы на Ñтом разделе будут удалены (они ÐЕ будут зашифрованы)!</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">Ð’ÐИМÐÐИЕ: ЕÑли во Ð²Ñ€ÐµÐ¼Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÑŽÑ‰Ð¸Ñ…ÑÑ Ð´Ð°Ð½Ð½Ñ‹Ñ… 'на меÑте' неожиданно пропадёт Ñлектропитание или произойдёт Ñбой ОС из-за программной/аппаратной ошибки, Ñто может привеÑти к чаÑтичному повреждению или потере данных. ПоÑтому прежде чем приÑтупить к шифрованию, Ñделайте резервную копию файлов, которые хотите зашифровать.\n\nÐ’Ñ‹ Ñделали такую резервную копию?</string>
+ <string lang="ru" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">ОСТОРОЖÐО: ВСЕ ФÐЙЛЫ ÐРРÐЗДЕЛЕ '%s'%s (Т.Е. ÐРРÐЗДЕЛЕ, ИДУЩИМ ПЕРВЫМ ЗРСИСТЕМÐЫМ) БУДУТ УÐИЧТОЖЕÐЫ (РÐЕ ЗÐШИФРОВÐÐЫ)!\n\nÐ’Ñ‹ дейÑтвительно наÑтаиваете на форматировании?</string>
+ <string lang="ru" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">Ð’ÐИМÐÐИЕ: ВЫБРÐÐÐЫЙ РÐЗДЕЛ СОДЕРЖИТ ÐœÐОГО ДÐÐÐЫХ! Ð’Ñе файлы на Ñтом разделе будут удалены (они ÐЕ будут зашифрованы)!</string>
<string lang="ru" key="ERASE_FILES_BY_CREATING_VOLUME">Стереть файлы в разделе при Ñоздании внутри него тома VeraCrypt</string>
<string lang="ru" key="PASSWORD">Пароль</string>
<string lang="ru" key="PIM">PIM</string>
<string lang="ru" key="IDD_PCDM_CHANGE_PKCS5_PRF">Ðлгоритм деривации ключа заголовка</string>
<string lang="ru" key="IDD_PCDM_ADD_REMOVE_VOL_KEYFILES">Добавление/удаление ключевых файлов в/из том(а)</string>
<string lang="ru" key="IDD_PCDM_REMOVE_ALL_KEYFILES_FROM_VOL">Удаление вÑех ключевых файлов из тома</string>
- <string lang="ru" key="PASSWORD_CHANGED">Пароль и/или ключевые файлы уÑпешно изменен(Ñ‹).\n\nÐ’ÐЖÐО: ОбÑзательно прочтите раздел 'Изменение паролей и ключевых файлов'\nв главе 'Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти'\nв РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt.</string>
- <string lang="ru" key="FAVORITE_PIM_CHANGED">Этот том зарегиÑтрирован как ÑиÑтемный избранный, и его PIM изменилÑÑ.\nХотите автоматичеÑки обновить конфигурацию ÑиÑтемных избранных томов (требуютÑÑ Ð¿Ñ€Ð°Ð²Ð° админиÑтратора)?\n\nПри ответе "Ðет" вам будет нужно обновить ÑиÑтемное избранное ÑамоÑтоÑтельно.</string>
- <string lang="ru" key="SYS_PASSWORD_CHANGED_ASK_RESCUE_DISK">Ð’ÐЖÐО: ЕÑли вы не уничтожили Ñвой диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk), ваш ÑиÑтемный раздел/диÑк по-прежнему можно раÑшифровать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтарого Ð¿Ð°Ñ€Ð¾Ð»Ñ (загрузившиÑÑŒ Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt и Ð²Ð²ÐµÐ´Ñ Ñтарый пароль). Вам Ñледует Ñоздать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, поÑле чего уничтожить Ñтарый.\n\nХотите Ñоздать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt?</string>
- <string lang="ru" key="SYS_HKD_ALGO_CHANGED_ASK_RESCUE_DISK">Обратите внимание, что ваш диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk) вÑÑ‘ ещё иÑпользует прежний алгоритм. ЕÑли вы Ñчитаете Ñтот алгоритм недоÑтаточно надёжным, Ñоздайте новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, поÑле чего уничтожьте Ñтарый.\n\nХотите Ñоздать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt?</string>
+ <string lang="ru" key="PASSWORD_CHANGED">Пароль, PIM и/или ключевые файлы уÑпешно изменен(Ñ‹).\n\nÐ’ÐЖÐО: ОбÑзательно прочтите параграф 'Изменение паролей и ключевых файлов'\nв главе 'Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти'\nв РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt.</string>
+ <string lang="ru" key="FAVORITE_PIM_CHANGED">Этот том зарегиÑтрирован как ÑиÑтемный избранный, и его PIM изменилÑÑ.\nХотите автоматичеÑки обновить конфигурацию ÑиÑтемных избранных томов (требуютÑÑ Ð¿Ñ€Ð°Ð²Ð° админиÑтратора)?\n\nПри ответе 'Ðет' вам будет нужно обновить ÑиÑтемные избранные тома ÑамоÑтоÑтельно.</string>
+ <string lang="ru" key="SYS_PASSWORD_CHANGED_ASK_RESCUE_DISK">Ð’ÐЖÐО: ЕÑли вы не уничтожили Ñвой диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk), ваш ÑиÑтемный раздел/диÑк по-прежнему можно раÑшифровать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтарого Ð¿Ð°Ñ€Ð¾Ð»Ñ (загрузившиÑÑŒ Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt и Ð²Ð²ÐµÐ´Ñ Ñтарый пароль). Вам Ñледует Ñоздать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, поÑле чего уничтожить Ñтарый.\n\nХотите Ñоздать новый диÑк воÑÑтановлениÑ?</string>
+ <string lang="ru" key="SYS_HKD_ALGO_CHANGED_ASK_RESCUE_DISK">Обратите внимание, что ваш диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk) вÑÑ‘ ещё иÑпользует прежний алгоритм. ЕÑли вы Ñчитаете Ñтот алгоритм недоÑтаточно надёжным, Ñоздайте новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, поÑле чего уничтожьте Ñтарый.\n\nХотите Ñоздать новый диÑк воÑÑтановлениÑ?</string>
<string lang="ru" key="KEYFILES_NOTE">Ð’ качеÑтве ключевого можно иÑпользовать файл любого типа (например .mp3, .jpg, .zip, .avi). Содержимое ключевого файла при Ñтом не изменÑетÑÑ. Можно выбирать неÑколько ключевых файлов (порÑдок неважен). ЕÑли добавить папку, то ключевыми будут вÑе не Ñкрытые файлы внутри неё. Ðажмите 'Токен-файлы', чтобы выбрать ключевые файлы на токенах безопаÑноÑти или Ñмарт-картах (или Ð´Ð»Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð° ключевых файлов Ñ Ñ‚Ð¾ÐºÐµÐ½Ð°/Ñмарт-карты).</string>
<string lang="ru" key="KEYFILE_CHANGED">Ключевые файлы уÑпешно добавлены/удалены.</string>
<string lang="ru" key="KEYFILE_EXPORTED">Ключевой файл ÑкÑпортирован.</string>
- <string lang="ru" key="PKCS5_PRF_CHANGED">Ðлгоритм деривации ключа заголовка уÑпешно уÑтановлен.</string>
+ <string lang="ru" key="PKCS5_PRF_CHANGED">Ðлгоритм деривации ключа заголовка уÑпешно задан.</string>
<string lang="ru" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Введите пароль и/или ключевые файлы Ð´Ð»Ñ Ð½ÐµÑиÑтемного тома, где вы хотите возобновить шифрование 'на меÑте'.\n\n\nПримечание: поÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ 'Далее' VeraCrypt попытаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ вÑе неÑиÑтемные тома, на которых был прерван процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ, и где можно раÑшифровать заголовок тома VeraCrypt Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ указанного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸/или ключевых файлов. ЕÑли таких томов окажетÑÑ Ð½ÐµÑколько, на Ñледующем Ñтапе вам будет нужно выбрать один из них.</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Выберите один из перечиÑленных томов. Это неÑиÑтемные тома Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð½Ñ‹Ð¼ процеÑÑом шифрованиÑ, заголовок которых удалоÑÑŒ раÑшифровать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ указанного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸/или ключевых файлов.</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Выберите один из перечиÑленных томов. Это неÑиÑтемные тома Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð½Ñ‹Ð¼ процеÑÑом шифрованиÑ/дешифрованиÑ, заголовок которых удалоÑÑŒ раÑшифровать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ указанного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸/или ключевых файлов.</string>
<string lang="ru" key="NONSYS_INPLACE_DEC_PASSWORD_PAGE_HELP">Введите пароль и/или ключевые файлы Ð´Ð»Ñ Ð½ÐµÑиÑтемного тома VeraCrypt, который вы хотите раÑшифровать.</string>
- <string lang="ru" key="PASSWORD_HELP">Очень важно выбрать хороший пароль. Избегайте указывать пароли из одного или неÑкольких Ñлов, которые можно найти в Ñловаре (или комбинаций из 2, 3 или 4 таких Ñлов). Пароль не должен Ñодержать имён или дат рождениÑ. Он должен быть труден Ð´Ð»Ñ ÑƒÐ³Ð°Ð´Ñ‹Ð²Ð°Ð½Ð¸Ñ. Хороший пароль - ÑÐ»ÑƒÑ‡Ð°Ð¹Ð½Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñных и Ñтрочных букв, цифр и оÑобых Ñимволов (@ ^ = $ * + и т.д.).\n\nРекомендуем выбирать пароли длиннее 20 Ñимволов (чем больше, тем лучше). МакÑ. длина: 64 Ñимвола.</string>
+ <string lang="ru" key="PASSWORD_HELP">Хороший пароль - Ñто очень важно. Избегайте паролей из одного или неÑкольких Ñлов, которые можно найти в Ñловаре (или комбинаций из 2, 3 или 4 таких Ñлов). Пароль не должен Ñодержать имён или дат рождениÑ. Он должен быть труден Ð´Ð»Ñ ÑƒÐ³Ð°Ð´Ñ‹Ð²Ð°Ð½Ð¸Ñ. Хороший пароль - ÑÐ»ÑƒÑ‡Ð°Ð¹Ð½Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñных и Ñтрочных букв, цифр и оÑобых Ñимволов (@ ^ = $ * + и т.д.).\n\nРекомендуем выбирать пароли длиннее 20 Ñимволов (чем больше, тем лучше). МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð°: 64 Ñимвола.</string>
<string lang="ru" key="PASSWORD_HIDDENVOL_HELP">Выберите пароль Ð´Ð»Ñ Ñкрытого тома. </string>
<string lang="ru" key="PASSWORD_HIDDEN_OS_HELP">Выберите пароль Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы (Ñ‚.е.Â Ð´Ð»Ñ Ñкрытого тома). </string>
<string lang="ru" key="PASSWORD_HIDDEN_OS_NOTE">Ð’ÐЖÐО: Выбираемый на Ñтом Ñтапе пароль Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы должен ÑущеÑтвенно отличатьÑÑ Ð¾Ñ‚ двух других паролей (Ñ‚.е. от паролей Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома и Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ операционной ÑиÑтемы).</string>
<string lang="ru" key="PASSWORD_HIDDENVOL_HOST_DIRECT_HELP">Введите пароль Ð´Ð»Ñ Ñ‚Ð¾Ð¼Ð°, внутри которого вы хотите Ñоздать Ñкрытый том.\n\nПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ 'Далее' VeraCrypt попытаетÑÑ Ñмонтировать том, поÑле чего проÑмотреть карту клаÑтеров Ñмонтированного тома в поиÑке непрерывной Ñвободной облаÑти, в конце которой окажетÑÑ ÐºÐ¾Ð½ÐµÑ† тома. Ð’ Ñтой облаÑти размещаетÑÑ Ñкрытый том, Ñ‚.е. она определÑет его предельный размер. ПроÑмотр карты нужен Ð´Ð»Ñ Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ð¸ того, что данные во внешнем томе не будут перезапиÑаны внутренним томом.</string>
<string lang="ru" key="PASSWORD_HIDDENVOL_HOST_HELP">\nВыберите пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома. Это пароль, который вы Ñможете выдать противнику, еÑли он вынудит Ð²Ð°Ñ Ñто Ñделать.\n\nÐ’ÐЖÐО: Пароль должен ÑущеÑтвенно отличатьÑÑ Ð¾Ñ‚ того, который вы выберете Ð´Ð»Ñ Ñкрытого тома.\n\nПримечание: макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ñ - 64 Ñимвола.</string>
- <string lang="ru" key="PASSWORD_SYSENC_OUTERVOL_HELP">Выберите пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома. Это пароль, который вы Ñможете выдать каждому, кто вынудит Ð²Ð°Ñ Ñообщить пароль Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ раздела за ÑиÑтемным, где будут раÑполагатьÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¹ том и Ñкрытый том (Ñодержащий Ñкрытую операционную ÑиÑтему). СущеÑтвование Ñкрытого тома (и Ñкрытой ОС) оÑтанетÑÑ Ð² тайне. Учтите, что Ñто пароль ÐÐ•Â Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ операционной ÑиÑтемы.\n\nÐ’ÐЖÐО: Пароль должен ÑущеÑтвенно отличатьÑÑ Ð¾Ñ‚ того, который вы выберете Ð´Ð»Ñ Ñкрытого тома (Ñ‚.е.Â Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы).</string>
- <string lang="ru" key="PASSWORD_HIDVOL_HOST_TITLE">Пароль внешнего тома</string>
- <string lang="ru" key="PASSWORD_HIDVOL_TITLE">Пароль Ñкрытого тома</string>
+ <string lang="ru" key="PASSWORD_SYSENC_OUTERVOL_HELP">Выберите пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома. Это пароль, который вы Ñможете выдать каждому, кто вынудит Ð²Ð°Ñ Ñообщить пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°, идущего первым за ÑиÑтемным, где будут раÑполагатьÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¹ том и Ñкрытый том (Ñодержащий Ñкрытую операционную ÑиÑтему). СущеÑтвование Ñкрытого тома (и Ñкрытой ОС) оÑтанетÑÑ Ð² тайне. Учтите, что Ñто пароль ÐÐ•Â Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ операционной ÑиÑтемы.\n\nÐ’ÐЖÐО: Пароль должен ÑущеÑтвенно отличатьÑÑ Ð¾Ñ‚ того, который вы выберете Ð´Ð»Ñ Ñкрытого тома (Ñ‚.е.Â Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы).</string>
+ <string lang="ru" key="PASSWORD_HIDVOL_HOST_TITLE">Пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома</string>
+ <string lang="ru" key="PASSWORD_HIDVOL_TITLE">Пароль Ð´Ð»Ñ Ñкрытого тома</string>
<string lang="ru" key="PASSWORD_HIDDEN_OS_TITLE">Пароль Ð´Ð»Ñ Ñкрытой ОС</string>
<string lang="ru" key="PASSWORD_LENGTH_WARNING">Ð’ÐИМÐÐИЕ: Короткие пароли легко взломать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ техник перебора.\n\nРекомендуетÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ пароли из более чем 20 Ñимволов.\n\nÐ’Ñ‹ дейÑтвительно хотите иÑпользовать короткий пароль?</string>
- <string lang="ru" key="PASSWORD_TITLE">Пароль тома</string>
- <string lang="ru" key="PASSWORD_WRONG">Ðеверный пароль, либо Ñто не том VeraCrypt.</string>
- <string lang="ru" key="PASSWORD_OR_KEYFILE_WRONG">Ðеверные ключевые файлы и/или пароль, либо Ñто не том VeraCrypt.</string>
- <string lang="ru" key="PASSWORD_OR_MODE_WRONG">Ðеверный режим монтированиÑ, неправильный пароль, либо Ñто не том VeraCrypt.</string>
- <string lang="ru" key="PASSWORD_OR_KEYFILE_OR_MODE_WRONG">Ðеверный режим монтированиÑ, неправильные ключевые файлы и/или пароль, либо Ñто не том VeraCrypt.</string>
- <string lang="ru" key="PASSWORD_WRONG_AUTOMOUNT">Ðеверный пароль или не найден том VeraCrypt.</string>
- <string lang="ru" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Ðеверные ключевые файлы/пароль, либо не найден том VeraCrypt.</string>
+ <string lang="ru" key="PASSWORD_TITLE">Пароль Ð´Ð»Ñ Ñ‚Ð¾Ð¼Ð°</string>
+ <string lang="ru" key="PASSWORD_WRONG">ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ выполнена. Возможные причины:\n - неверный пароль,\n - неверное чиÑло PIM,\n - неверный PRF (хеш),\n - Ñто не том VeraCrypt.</string>
+ <string lang="ru" key="PASSWORD_OR_KEYFILE_WRONG">ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ выполнена. Возможные причины:\n - неверные ключевые файлы,\n - неверный пароль,\n - неверное чиÑло PIM тома,\n - неверный PRF (хеш),\n - Ñто не том.</string>
+ <string lang="ru" key="PASSWORD_OR_MODE_WRONG">ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ выполнена. Возможные причины:\n - неверный режим монтированиÑ,\n - неверный пароль,\n - неверное чиÑло PIM тома,\n - неверный PRF (хеш),\n - Ñто не том.</string>
+ <string lang="ru" key="PASSWORD_OR_KEYFILE_OR_MODE_WRONG">ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ выполнена. Возможные причины:\n - неверный режим монтированиÑ,\n - неверные ключевые файлы,\n - неверный пароль,\n - неверное чиÑло PIM тома,\n - неверный PRF (хеш),\n - Ñто не том.</string>
+ <string lang="ru" key="PASSWORD_WRONG_AUTOMOUNT">Ðвтомонтирование не выполнено. Возможные причины:\n - неверный пароль,\n - неверное чиÑло PIM тома,\n - неверный PRF (хеш),\n - не найден подходÑщий том.</string>
+ <string lang="ru" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Ðвтомонтирование не выполнено. Возможные причины:\n - неверные ключевые файлы,\n - неверный пароль,\n - неверное чиÑло PIM тома,\n - неверный PRF (хеш),\n - не найден подходÑщий том.</string>
<string lang="ru" key="PASSWORD_WRONG_CAPSLOCK_ON">\n\nВнимание! Ðажата клавиша Caps Lock. Это может привеÑти к неправильному вводу паролÑ.</string>
- <string lang="ru" key="PIM_CHANGE_WARNING">Запомнить номер Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°</string>
+ <string lang="ru" key="PIM_CHANGE_WARNING">Запомните чиÑло Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°</string>
<string lang="ru" key="PIM_HIDVOL_HOST_TITLE">PIM внешнего тома</string>
<string lang="ru" key="PIM_HIDVOL_TITLE">PIM Ñкрытого тома</string>
<string lang="ru" key="PIM_HIDDEN_OS_TITLE">PIM Ñкрытой ОС</string>
- <string lang="ru" key="PIM_HELP">PIM (перÑональный умножитель итераций) - Ñто значение, управлÑющее количеÑтвом итераций Ð´Ð»Ñ Ð´ÐµÑ€Ð¸Ð²Ð°Ñ†Ð¸Ð¸ ключа заголовка.\n Итерации = 15000 + (PIM x 1000).\n\nЕÑли пуÑто или равно нулю, VeraCrypt будет иÑпользовать Ñтандартное значение (485), обеÑпечивающее выÑокую надёжноÑÑ‚ÑŒ.\n\nЕÑли пароль короче 20 Ñимволов, PIM не может быть меньше 485, чтобы гарантировать минимальный уровень защиты.\nЕÑли пароль ÑоÑтоит из 20 и более Ñимволов, PIM может быть любым.\n\nPIM более 485 ведёт к замедлению монтированиÑ. При меньшем значении PIM (до 485) монтирование уÑкорÑетÑÑ, но ÑнижаетÑÑ Ð½Ð°Ð´Ñ‘Ð¶Ð½Ð¾ÑÑ‚ÑŒ, еÑли пароль недоÑтаточно Ñложный.</string>
- <string lang="ru" key="PIM_SYSENC_HELP">PIM (перÑональный умножитель итераций) - Ñто значение, управлÑющее количеÑтвом итераций Ð´Ð»Ñ Ð´ÐµÑ€Ð¸Ð²Ð°Ñ†Ð¸Ð¸ ключа заголовка.\n Итерации = PIM x 2048.\n\nЕÑли пуÑто или равно нулю, VeraCrypt будет иÑпользовать Ñтандартное значение, обеÑпечивающее выÑокую надёжноÑÑ‚ÑŒ.\n\nЕÑли пароль короче 20 Ñимволов, PIM не может быть меньше 98, чтобы гарантировать минимальный уровень защиты.\nЕÑли пароль ÑоÑтоит из 20 и более Ñимволов, PIM может быть любым.\n\nPIM более 98 ведёт к замедлению загрузки. При меньшем значении PIM (до 98) загрузка уÑкорÑетÑÑ, но ÑнижаетÑÑ Ð½Ð°Ð´Ñ‘Ð¶Ð½Ð¾ÑÑ‚ÑŒ, еÑли пароль недоÑтаточно Ñложный.</string>
+ <string 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) монтирование уÑкорÑетÑÑ, но ÑнижаетÑÑ Ð½Ð°Ð´Ñ‘Ð¶Ð½Ð¾ÑÑ‚ÑŒ, еÑли пароль недоÑтаточно Ñложный.</string>
+ <string 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) загрузка уÑкорÑетÑÑ, но ÑнижаетÑÑ Ð½Ð°Ð´Ñ‘Ð¶Ð½Ð¾ÑÑ‚ÑŒ, еÑли пароль недоÑтаточно Ñложный.</string>
<string lang="ru" key="PIM_SYSENC_CHANGE_WARNING">Запомните чиÑло Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ ÑиÑтемы</string>
- <string lang="ru" key="PIM_LARGE_WARNING">Выбранное значение PIM больше, чем Ñтандартное в VeraCrypt.\nУчтите, что Ñто приведёт к значительному замедлению монтированиÑ/загрузки.</string>
- <string lang="ru" key="PIM_SMALL_WARNING">Выбранное значение PIM (перÑонального ÑƒÐ¼Ð½Ð¾Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ð¹) меньше, чем Ñтандартное в VeraCrypt. Учтите, что еÑли ваш пароль недоÑтаточно надёжен, Ñто может привеÑти к оÑлаблению защиты.\n\nПодтверждаете, что вы иÑпользуете надёжный пароль?</string>
- <string lang="ru" key="PIM_SYSENC_TOO_BIG">МакÑимальное значение PIM (перÑонального ÑƒÐ¼Ð½Ð¾Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ð¹) Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы ÑоÑтавлÑет 65535.</string>
+ <string lang="ru" key="PIM_LARGE_WARNING">Выбранное значение PIM больше, чем Ñтандартное в VeraCrypt.\nЭто приведёт к значительному замедлению монтированиÑ/загрузки.</string>
+ <string lang="ru" key="PIM_SMALL_WARNING">Выбранное значение PIM меньше, чем Ñтандартное в VeraCrypt. Учтите, что еÑли ваш пароль недоÑтаточно надёжен, Ñто может привеÑти к оÑлаблению защиты.\n\nПодтверждаете, что вы иÑпользуете надёжный пароль?</string>
+ <string lang="ru" key="PIM_SYSENC_TOO_BIG">МакÑимальное значение PIM Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы - 65535.</string>
<string lang="ru" key="PIM_TITLE">PIM тома</string>
<string lang="ru" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nВнимание! Ð’ пути поиÑка ключевых файлов обнаружены Ñкрытые файлы. Скрытые файлы не могут быть ключевыми. ЕÑли вы хотите иÑпользовать их как ключевые, Ñнимите у них атрибут 'Скрытый' (на каждом из них щёлкните правой кнопкой мыши, выберите 'СвойÑтва', Ñнимите флажок 'Скрытый' и нажмите OK). Учтите, что Ñкрытые файлы видны только при ÑоответÑтвующей ÑиÑтемной наÑтройке (Компьютер &gt; Ð¡ÐµÑ€Ð²Ð¸Ñ &gt; Параметры папок (СвойÑтва папки) &gt; Вид).</string>
<string lang="ru" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">ЕÑли вы пытаетеÑÑŒ защитить Ñкрытый том, Ñодержащий Ñкрытую ÑиÑтему, проверьте, чтобы при вводе Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð»Ñ Ñкрытого тома была включена ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð°Ð¼ÐµÑ€Ð¸ÐºÐ°Ð½ÑÐºÐ°Ñ Ñ€Ð°Ñкладка клавиатуры. Это необходимо, так как данный пароль запрашиваетÑÑ Ð½Ð° Ñтапе дозагрузочной аутентификации (до запуÑка Windows), когда иные раÑкладки клавиатуры недоÑтупны.</string>
- <string lang="ru" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">Ðе найдено ни одного неÑиÑтемного тома Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð½Ð¾Ð¹ операцией ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ заголовком, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ подходит указанный пароль и/или ключевые файлы.\n\nПроверьте, правильно ли указан пароль и/или ключевые файлы, и не иÑпользуетÑÑ Ð»Ð¸ раздел/том ÑиÑтемой или приложениÑми (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð°Ð½Ñ‚Ð¸Ð²Ð¸Ñ€ÑƒÑное ПО).</string>
+ <string lang="ru" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">Ðе найдено ни одного неÑиÑтемного тома Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð½Ð¾Ð¹ операцией шифрованиÑ/Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ заголовком, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ подходит указанный пароль и/или ключевые файлы.\n\nПроверьте, правильно ли указан пароль и/или ключевые файлы, и не иÑпользуетÑÑ Ð»Ð¸ раздел/том ÑиÑтемой или приложениÑми (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð°Ð½Ñ‚Ð¸Ð²Ð¸Ñ€ÑƒÑное ПО).</string>
<string lang="ru" key="SELECTED_PARTITION_ALREADY_INPLACE_ENC">Раздел/уÑтройÑтво уже полноÑтью зашифрован(о).\nФлаги заголовка = 0x%.8X</string>
<string lang="ru" key="SELECTED_PARTITION_NOT_INPLACE_ENC">Раздел/уÑтройÑтво не иÑпользует шифрование 'на меÑте'.\nФлаги заголовка = 0x%.8X</string>
<string lang="ru" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nПримечание: еÑли вы пытаетеÑÑŒ Ñмонтировать раздел, раÑположенный на зашифрованном ÑиÑтемном диÑке без дозагрузочной аутентификации, или Ñмонтировать зашифрованный ÑиÑтемный раздел операционной ÑиÑтемы, не выполнÑемой в данный момент, выберите 'СиÑтема' &gt; 'Смонтировать без дозагрузочной аутентификации'.</string>
<string lang="ru" key="MOUNT_WITHOUT_PBA_VOL_ON_ACTIVE_SYSENC_DRIVE">Ð’ Ñтом режиме Ð½ÐµÐ»ÑŒÐ·Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ раздел, раÑположенный на диÑке, чаÑÑ‚ÑŒ которого находитÑÑ Ð² облаÑти ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹ ÑиÑтемы.\n\nПрежде чем можно будет Ñмонтировать Ñтот раздел в данном режиме, нужно либо загрузить операционную ÑиÑтему, уÑтановленную на другом диÑке (зашифрованном или нет), либо загрузить незашифрованную ОС.</string>
<string lang="ru" key="CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE">VeraCrypt не может раÑшифровать отдельный раздел на полноÑтью зашифрованном ÑиÑтемном диÑке (можно раÑшифровать только веÑÑŒ ÑиÑтемный диÑк).</string>
- <string lang="ru" key="CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE_UNSURE">Внимание! Так как диÑк Ñодержит загрузчик VeraCrypt, он может быть полноÑтью зашифрованным ÑиÑтемным диÑком. ЕÑли Ñто так, учтите, что VeraCrypt не может раÑшифровывать отдельный раздел на полноÑтью зашифрованном ÑиÑтемном диÑке (допуÑкаетÑÑ Ñ€Ð°Ñшифровка только вÑего ÑиÑтемного диÑка). Ð’Ñ‹ можете ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÑŒ, но потом получите Ñообщение 'Ðеверный пароль'.</string>
+ <string lang="ru" key="CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE_UNSURE">Внимание! Так как диÑк Ñодержит загрузчик VeraCrypt, он может быть полноÑтью зашифрованным ÑиÑтемным диÑком. ЕÑли Ñто так, учтите, что VeraCrypt не может раÑшифровывать отдельный раздел на полноÑтью зашифрованном ÑиÑтемном диÑке (можно раÑшифровать только веÑÑŒ ÑиÑтемный диÑк). Ð’Ñ‹ можете ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÑŒ, но потом получите Ñообщение 'Ðеверный пароль'.</string>
<string lang="ru" key="PREV">&lt; &amp;Ðазад</string>
<string lang="ru" key="RAWDEVICES">Ðевозможно показать ÑпиÑок уÑтановленных в ÑиÑтеме raw-уÑтройÑтв.</string>
<string lang="ru" key="READONLYPROMPT">Том '%s' ÑущеÑтвует и предназначен только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. Ð’Ñ‹ дейÑтвительно хотите его заменить?</string>
- <string lang="ru" key="SELECT_DEST_DIR">Выберите папку назначениÑ</string>
+ <string lang="ru" key="SELECT_DEST_DIR">Выберите целевую папку</string>
<string lang="ru" key="SELECT_KEYFILE">Выберите ключевой файл</string>
<string lang="ru" key="SELECT_KEYFILE_PATH">Выберите путь поиÑка ключевых файлов. Ð’ÐИМÐÐИЕ: ЗапоминаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ путь, но не имена файлов.</string>
<string lang="ru" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Выбрать папку Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ñ… файлов.</string>
<string lang="ru" key="SELECTED_KEYFILE_IS_CONTAINER_FILE">Ð’ качеÑтве ключевого файла выбран текущий файл-контейнер. Он будет пропущен.</string>
- <string lang="ru" key="SERPENT_HELP">Ðвторы: Ross Anderson, Eli Biham и Lars Knudsen. Опубликован в 1998 г. 256-бит ключ, 128-бит блок. Режим работы: XTS. Ðлгоритм Serpent - один из финалиÑтов AES.</string>
- <string lang="ru" key="SIZE_HELP">Укажите размер Ñоздаваемого контейнера.\n\nПри Ñоздании динамичеÑкого ('раÑÑ‚ÑгивающегоÑÑ' по мере заполнениÑ) контейнера, Ñтот параметр определÑет его макÑимальный размер.\n\nМинимальный объём Ð´Ð»Ñ Ñ‚Ð¾Ð¼Ð° FAT: 292 КБ, Ð´Ð»Ñ Ñ‚Ð¾Ð¼Ð° NTFS: 3792 КБ.</string>
+ <string lang="ru" key="SERPENT_HELP">Ðвторы: Ross Anderson, Eli Biham и Lars Knudsen. Опубликован в 1998 г. Ключ: 256 бит, блок: 128 бит. Режим работы: XTS. Ðлгоритм Serpent - один из финалиÑтов конкурÑа AES.</string>
+ <string lang="ru" key="SIZE_HELP">Укажите размер Ñоздаваемого контейнера.\n\nПри Ñоздании динамичеÑкого (увеличивающегоÑÑ Ð¿Ð¾ мере заполнениÑ) контейнера, Ñтот параметр определÑет его макÑимальный размер.\n\nМинимальные размеры тома: FAT - 292 КБ, exFAT - 424 КБ, NTFS - 3792 КБ.</string>
<string lang="ru" key="SIZE_HELP_HIDDEN_HOST_VOL">Укажите размер нового внешнего тома (Ñначала ÑоздаётÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¹ том, а затем внутри него - Ñкрытый). Минимально возможный размер тома, предназначенного Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытого тома, ÑоÑтавлÑет 340 КБ.</string>
<string lang="ru" key="SIZE_HELP_HIDDEN_VOL">Укажите размер Ñоздаваемого Ñкрытого тома. Минимальный объём Ñкрытого тома равен 40 КБ (или 3664 КБ, еÑли он отформатирован как NTFS). МакÑимально возможный Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° размер Ñкрытого тома показан выше.</string>
<string lang="ru" key="SIZE_HIDVOL_HOST_TITLE">Размер внешнего тома</string>
<string lang="ru" key="SIZE_HIDVOL_TITLE">Размер Ñкрытого тома</string>
<string lang="ru" key="SIZE_PARTITION_HELP">Проверьте правильноÑÑ‚ÑŒ размера выбранного уÑтройÑтва или раздела и нажмите 'Далее'.</string>
- <string lang="ru" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Внешний том и Ñкрытый том (Ñодержащий Ñкрытую ОС) будут раÑположены внутри Ñтого раздела. Это должен быть первый раздел за ÑиÑтемным.\n\nПроверьте правильноÑÑ‚ÑŒ показанных выше размера и номера раздела, и еÑли вÑÑ‘ верно, то нажмите 'Далее'.</string>
+ <string lang="ru" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Внутри Ñтого раздела будут находитьÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¹ том и Ñкрытый том (Ñодержащий Ñкрытую ОС). Это должен быть первый раздел за ÑиÑтемным.\n\nПроверьте правильноÑÑ‚ÑŒ показанных выше размера и номера раздела, и еÑли вÑÑ‘ верно, то нажмите 'Далее'.</string>
<string lang="ru" key="SIZE_PARTITION_HIDDEN_VOL_HELP">\n\nУчтите, что том, внутри которого будет ÑоздаватьÑÑ Ñкрытый том, не может быть меньше 340 КБ.</string>
<string lang="ru" key="SIZE_TITLE">Размер тома</string>
<string lang="ru" key="SPARSE_FILE">Динами- чеÑкий</string>
<string lang="ru" key="TESTS_FAILED">Внимание! ОШИБКРтеÑта.</string>
<string lang="ru" key="TESTS_PASSED">ТеÑÑ‚ вÑех алгоритмов пройден</string>
- <string lang="ru" key="TEST_INCORRECT_TEST_DATA_UNIT_SIZE">Указанное вами чиÑло единиц данных Ñлишком длинное или короткое.</string>
- <string lang="ru" key="TEST_INCORRECT_SECONDARY_KEY_SIZE">Указанный вами вторичный ключ Ñлишком длинный или короткий.</string>
+ <string lang="ru" key="TEST_INCORRECT_TEST_DATA_UNIT_SIZE">Ðеверный размер единиц данных.</string>
+ <string lang="ru" key="TEST_INCORRECT_SECONDARY_KEY_SIZE">ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° вторичного ключа.</string>
<string lang="ru" key="TEST_CIPHERTEXT_SIZE">ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° теÑтового зашифрованного текÑта.</string>
<string lang="ru" key="TEST_KEY_SIZE">ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° теÑтового ключа.</string>
<string lang="ru" key="TEST_PLAINTEXT_SIZE">ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° теÑтового незашифрованного текÑта.</string>
- <string lang="ru" key="TWO_LAYER_CASCADE_HELP">Два шифра, поÑледовательно оперирующие в режиме XTS. Каждый блок Ñначала шифруетÑÑ %s (%d-бит ключ), а затем %s (%d-бит ключ). Каждый шифр применÑет Ñвой ÑобÑтвенный ключ. Ð’Ñе ключи взаимно незавиÑимы.</string>
- <string lang="ru" key="THREE_LAYER_CASCADE_HELP">Три шифра, поÑледовательно оперирующие в режиме XTS. Каждый блок Ñначала шифруетÑÑ %s (%d-бит ключ), затем %s (%d-бит ключ), и, наконец, %s (%d-бит ключ). Каждый шифр применÑет Ñвой ÑобÑтвенный ключ. Ð’Ñе ключи взаимно незавиÑимы.</string>
- <string lang="ru" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Обратите внимание, что в завиÑимоÑти от конфигурации ОС, функции автозапуÑка и Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ работать, только еÑли файлы переноÑного диÑка находÑÑ‚ÑÑ Ð½Ð° недоÑтупном Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи CD/DVD-ноÑителе. Это не ошибка VeraCrypt, а ограничение Windows.</string>
- <string lang="ru" key="TRAVELER_DISK_CREATED">ПереноÑной диÑк VeraCrypt уÑпешно Ñоздан.\n\nПомните, что Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка VeraCrypt в переноÑном режиме необходимы права админиÑтратора ПК. Также учтите, что путём иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° рееÑтра можно будет узнать, что в ÑиÑтеме Windows запуÑкалÑÑ VeraCrypt, даже еÑли он работал только в переноÑном режиме.</string>
+ <string lang="ru" key="TWO_LAYER_CASCADE_HELP">КаÑкадное (поÑледовательное) шифрование Ð´Ð²ÑƒÐ¼Ñ Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚Ð¼Ð°Ð¼Ð¸ в режиме XTS. Каждый блок Ñначала шифруетÑÑ %s (%d-бит ключ), а затем %s (%d-бит ключ). Каждый шифр применÑет Ñвой ÑобÑтвенный ключ. Ð’Ñе ключи взаимно незавиÑимы.</string>
+ <string lang="ru" key="THREE_LAYER_CASCADE_HELP">КаÑкадное (поÑледовательное) шифрование Ñ‚Ñ€ÐµÐ¼Ñ Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚Ð¼Ð°Ð¼Ð¸ в режиме XTS. Каждый блок Ñначала шифруетÑÑ %s (%d-бит ключ), затем %s (%d-бит ключ), и наконец %s (%d-бит ключ). Каждый шифр применÑет Ñвой ÑобÑтвенный ключ. Ð’Ñе ключи взаимно незавиÑимы.</string>
+ <string lang="ru" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Обратите внимание, что в завиÑимоÑти от конфигурации ОС, функции автозапуÑка и Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ работать, только еÑли файлы переноÑного диÑка находÑÑ‚ÑÑ Ð½Ð° недоÑтупном Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи ноÑителе (CD/DVD и Ñ‚.п.). Это не ошибка VeraCrypt, а ограничение Windows.</string>
+ <string lang="ru" key="TRAVELER_DISK_CREATED">ПереноÑной диÑк VeraCrypt уÑпешно Ñоздан.\n\nПомните, что Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка VeraCrypt в переноÑном режиме необходимы права админиÑтратора ПК. Также учтите, что иÑÑÐ»ÐµÐ´ÑƒÑ Ñ€ÐµÐµÑÑ‚Ñ€, можно узнать, что в Windows запуÑкали VeraCrypt, даже еÑли только в переноÑном режиме.</string>
<string lang="ru" key="TC_TRAVELER_DISK">ПереноÑной диÑк VeraCrypt</string>
- <string lang="ru" key="TWOFISH_HELP">Ðвторы: Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall и Niels Ferguson. Опубликован в 1998 г. 256-бит ключ, 128-бит блок. Режим работы: XTS. Twofish - один из финалиÑтов AES.</string>
+ <string lang="ru" key="TWOFISH_HELP">Ðвторы: Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall и Niels Ferguson. Опубликован в 1998 г. Ключ: 256 бит, блок: 128 бит. Режим работы: XTS. Ðлгоритм Twofish - один из финалиÑтов конкурÑа AES.</string>
<string lang="ru" key="MORE_INFO_ABOUT">Подробнее о %s</string>
<string lang="ru" key="UNKNOWN">ÐеизвеÑтно</string>
<string lang="ru" key="ERR_UNKNOWN">ÐÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð¸Ð»Ð¸ неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° (%d).</string>
<string lang="ru" key="UNMOUNTALL_LOCK_FAILED">Ðекоторые тома Ñодержат файлы или папки, иÑпользуемые приложениÑми или ÑиÑтемой.\n\nÐаÑтаиваете на размонтировании?</string>
<string lang="ru" key="UNMOUNT_BUTTON">Раз&amp;монтировать</string>
- <string lang="ru" key="UNMOUNT_FAILED">Ошибка размонтированиÑ.</string>
+ <string lang="ru" key="UNMOUNT_FAILED">Ошибка размонтированиÑ!</string>
<string lang="ru" key="UNMOUNT_LOCK_FAILED">Том Ñодержит файлы или папки, иÑпользуемые приложениÑми или ÑиÑтемой.\n\nÐаÑтаиваете на размонтировании?</string>
<string lang="ru" key="NO_VOLUME_MOUNTED_TO_DRIVE">Ðа указанную букву диÑка том не Ñмонтирован.</string>
<string lang="ru" key="VOL_ALREADY_MOUNTED">Этот том уже Ñмонтирован. </string>
<string lang="ru" key="VOL_MOUNT_FAILED">Ошибка при попытке Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°.</string>
<string lang="ru" key="VOL_SEEKING">Ошибка поиÑка меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ тома.</string>
<string lang="ru" key="VOL_SIZE_WRONG">Ошибка: неверный размер тома.</string>
- <string lang="ru" key="WARN_QUICK_FORMAT">Внимание! БыÑтрое форматирование Ñледует иÑпользовать, только еÑли:\n\n1) Ðа уÑтройÑтве нет конфиденциальных данных и вам не требуетÑÑ Ð¿Ñ€Ð°Ð²Ð´Ð¾Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾Ðµ отрицание\n2) УÑтройÑтво уже полноÑтью и надёжно зашифровано\n\nÐ’Ñ‹ дейÑтвительно хотите иÑпользовать быÑтрое форматирование?</string>
- <string lang="ru" key="CONFIRM_SPARSE_FILE">ДинамичеÑкий контейнер Ñто предраÑпределённый разрежённый файл NTFS, физичеÑкий размер которого (меÑто, занимаемое им на диÑке) увеличиваетÑÑ Ð¿Ð¾ мере Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² него новых данных.\n\nÐ’ÐИМÐÐИЕ: ПроизводительноÑÑ‚ÑŒ у томов на оÑнове разрежённых файлов значительно ниже, чем у обычных томов. Также учтите, что тома на оÑнове разрежённых файлов менее надёжны, поÑкольку можно определить, какие из Ñекторов тома не иÑпользуютÑÑ. Более того, тома на оÑнове разрежённых файлов не дают возможноÑти правдоподобного Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытого тома. Также учтите, что еÑли данные запиÑываютÑÑ Ð² контейнер на оÑнове разрежённого файла при недоÑтатке Ñвободного меÑта на файловой хоÑÑ‚-ÑиÑтеме, Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема может оказатьÑÑ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ð¾Ð¹.\n\nÐ’Ñ‹ дейÑтвительно хотите Ñоздать том на оÑнове разрежённого файла?</string>
- <string lang="ru" key="SPARSE_FILE_SIZE_NOTE">Учтите, что размер динамичеÑкого контейнера, Ñообщаемый Windows и VeraCrypt, будет вÑегда равен его макÑимальному размеру. Чтобы выÑÑнить текущий физичеÑкий размер контейнера (дейÑтвительно занимаемое им меÑто на диÑке), щёлкните правой кнопкой мыши на файле-контейнере (в окне Проводника, не в VeraCrypt!), выберите пункт 'СвойÑтва' и Ñм. значение 'Ðа диÑке'.\n\nТакже учтите, что при перемещении динамичеÑкого контейнера на другой том или диÑк, физичеÑкий размер контейнера будет увеличен до макÑимума. (Этого можно избежать, Ñоздав новый динамичеÑкий контейнер в меÑте назначениÑ, Ñмонтировав его и затем перенеÑÑ Ð² него файлы из Ñтарого контейнера.)</string>
+ <string lang="ru" key="WARN_QUICK_FORMAT">Внимание! БыÑтрое форматирование Ñледует иÑпользовать, только еÑли:\n\n1) на уÑтройÑтве нет конфиденциальных данных и вам не требуетÑÑ Ð¿Ñ€Ð°Ð²Ð´Ð¾Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾Ðµ отрицание\n2) уÑтройÑтво уже полноÑтью и надёжно зашифровано\n\nÐ’Ñ‹ дейÑтвительно хотите иÑпользовать быÑтрое форматирование?</string>
+ <string lang="ru" key="CONFIRM_SPARSE_FILE">ДинамичеÑкий контейнер - Ñто предраÑпределённый разрежённый файл NTFS, физичеÑкий размер которого (меÑто на диÑке) увеличиваетÑÑ Ð¿Ð¾ мере Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² него данных.\n\nÐ’ÐИМÐÐИЕ: У томов на оÑнове разрежённых файлов значительно ниже быÑтродейÑтвие, чем у обычных томов. Такие тома менее надёжны, поÑкольку можно определить, какие из Ñекторов тома не иÑпользуютÑÑ. Такие тома не позволÑÑŽÑ‚ правдоподобно отрицать наличие Ñкрытого тома. ЕÑли данные запиÑываютÑÑ Ð² контейнер на оÑнове разрежённого файла при недоÑтатке Ñвободного меÑта на файловой хоÑÑ‚-ÑиÑтеме, то Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема может оказатьÑÑ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ð¾Ð¹.\n\nÐ’Ñ‹ дейÑтвительно хотите Ñоздать том на оÑнове разрежённого файла?</string>
+ <string lang="ru" key="SPARSE_FILE_SIZE_NOTE">Учтите, что размер динамичеÑкого контейнера, Ñообщаемый Windows и VeraCrypt, будет вÑегда равен его макÑимальному размеру. Чтобы выÑÑнить текущий физичеÑкий размер контейнера (дейÑтвительно занимаемое им меÑто на диÑке), щёлкните правой кнопкой мыши на файле-контейнере (в окне Проводника, не в VeraCrypt!), выберите пункт 'СвойÑтва' и Ñм. значение 'Ðа диÑке'.\n\nТакже учтите, что при перемещении динамичеÑкого контейнера на другой том или диÑк, физичеÑкий размер контейнера будет увеличен до макÑимума. (Этого можно избежать, Ñоздав новый динамичеÑкий контейнер в целевом меÑте, Ñмонтировав его и затем перенеÑÑ Ð² него файлы из Ñтарого контейнера.)</string>
<string lang="ru" key="PASSWORD_CACHE_WIPED_SHORT">КÑш паролей очищен</string>
- <string lang="ru" key="PASSWORD_CACHE_WIPED">Пароли (и/или обработанное Ñодержимое ключевых файлов), хранÑщиеÑÑ Ð² кÑше драйвера VeraCrypt, удалены.</string>
+ <string lang="ru" key="PASSWORD_CACHE_WIPED">Пароли (и/или обработанные данные ключевых файлов), хранÑщиеÑÑ Ð² кÑше драйвера VeraCrypt, удалены.</string>
<string lang="ru" key="WRONG_VOL_TYPE">VeraCrypt не может изменить пароль Ð´Ð»Ñ Ñ‡ÑƒÐ¶Ð´Ð¾Ð³Ð¾ ему тома.</string>
<string lang="ru" key="SELECT_FREE_DRIVE">Выберите из ÑпиÑка незанÑтую букву диÑка.</string>
<string lang="ru" key="SELECT_A_MOUNTED_VOLUME">Выберите в ÑпиÑке букв диÑков Ñмонтированный том.</string>
- <string lang="ru" key="AMBIGUOUS_VOL_SELECTION">Выбраны два разных Ñмонтированных тома (один в ÑпиÑке букв диÑков, другой в поле ввода ниже ÑпиÑка).\n\nУкажите том, который вы хотели выбрать:</string>
+ <string lang="ru" key="AMBIGUOUS_VOL_SELECTION">Выбраны два разных тома/уÑтройÑтва (один в ÑпиÑке букв диÑков, другой в поле ввода ниже ÑпиÑка).\n\nУкажите том, который вы хотели выбрать:</string>
<string lang="ru" key="CANT_CREATE_AUTORUN">Ошибка! Ðевозможно Ñоздать autorun.inf</string>
- <string lang="ru" key="ERR_PROCESS_KEYFILE">Ошибка обработки ключевого файла.</string>
- <string lang="ru" key="ERR_PROCESS_KEYFILE_PATH">Ошибка обработки пути ключевого файла.</string>
+ <string lang="ru" key="ERR_PROCESS_KEYFILE">Ошибка обработки ключевого файла!</string>
+ <string lang="ru" key="ERR_PROCESS_KEYFILE_PATH">Ошибка обработки пути ключевого файла!</string>
<string lang="ru" key="ERR_KEYFILE_PATH_EMPTY">Ð’ пути к ключевым файлам нет файлов.\n\nОбратите внимание, что папки (и ÑодержащиеÑÑ Ð² них файлы), найденные в путÑÑ… поиÑка ключевых файлов, игнорируютÑÑ.</string>
<string lang="ru" key="UNSUPPORTED_OS">VeraCrypt не работает в Ñтой операционной ÑиÑтеме.</string>
<string lang="ru" key="UNSUPPORTED_BETA_OS">Ошибка! VeraCrypt поддерживает только Ñтабильные (не бета) верÑии Ñтой операционной ÑиÑтемы (верÑии beta/RC не поддерживаютÑÑ).</string>
<string lang="ru" key="ERR_MEM_ALLOC">Ошибка! Ðевозможно раÑпределить памÑÑ‚ÑŒ.</string>
<string lang="ru" key="ERR_PERF_COUNTER">Ошибка! Ðевозможно воÑÑтановить значение Ñчётчика производительноÑти.</string>
<string lang="ru" key="ERR_VOL_FORMAT_BAD">Ошибка! Плохой формат тома.</string>
- <string lang="ru" key="ERR_HIDDEN_NOT_NORMAL_VOLUME">Ошибка! Ð’Ñ‹ указали пароль Ð´Ð»Ñ Ñкрытого тома (а Ð½ÐµÂ Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾ тома).</string>
+ <string lang="ru" key="ERR_HIDDEN_NOT_NORMAL_VOLUME">Ошибка! Ð’Ñ‹ указали пароль Ð´Ð»Ñ Ñкрытого тома (а Ð½ÐµÂ Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾).</string>
<string lang="ru" key="ERR_HIDDEN_VOL_HOST_ENCRYPTED_INPLACE">Ð’ целÑÑ… безопаÑноÑти, Ñкрытый том Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздать внутри тома VeraCrypt, Ñодержащего файловую ÑиÑтему, зашифрованную 'на меÑте' (поÑкольку Ñвободное меÑто такого тома не было заполнено Ñлучайными данными).</string>
<string lang="ru" key="LEGAL_NOTICES_DLG_TITLE">VeraCrypt: юридичеÑкие примечаниÑ</string>
<string lang="ru" key="ALL_FILES">Ð’Ñе файлы</string>
<string lang="ru" key="TC_VOLUMES">Тома VeraCrypt</string>
<string lang="ru" key="DLL_FILES">Библиотечные модули</string>
- <string lang="ru" key="FORMAT_NTFS_STOP">Продолжение NTFS-Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.</string>
+ <string lang="ru" key="FORMAT_NTFS_STOP">Продолжение NTFS/exFAT-Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.</string>
<string lang="ru" key="CANT_MOUNT_VOLUME">Ðевозможно Ñмонтировать том.</string>
<string lang="ru" key="CANT_DISMOUNT_VOLUME">Ðевозможно размонтировать том.</string>
- <string lang="ru" key="FORMAT_NTFS_FAILED">Windows не может отформатировать Ñтот том как NTFS.\n\nВыберите другой тип файловой ÑиÑтемы (еÑли возможно) и повторите попытку. Либо вы можете оÑтавить Ñтот том неформатированным (в поле выбора файловой ÑиÑтемы укажите 'Ðет'), закрыть окно маÑтера, Ñмонтировать том, а затем Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑиÑтемной или Ñторонней утилиты отформатировать Ñмонтированный том (том при Ñтом оÑтанетÑÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼).</string>
- <string lang="ru" key="FORMAT_NTFS_FAILED_ASK_FAT">Windows не может отформатировать Ñтот том как NTFS.\n\nХотите вмеÑто Ñтого отформатировать том как FAT?</string>
+ <string lang="ru" key="FORMAT_NTFS_FAILED">Windows не может отформатировать Ñтот том как NTFS/exFAT.\n\nВыберите другой тип файловой ÑиÑтемы (еÑли возможно) и повторите попытку. Либо вы можете оÑтавить Ñтот том неформатированным (в поле выбора файловой ÑиÑтемы укажите 'Ðет'), закрыть окно маÑтера, Ñмонтировать том, а затем Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑиÑтемной или Ñторонней утилиты отформатировать Ñмонтированный том (том при Ñтом оÑтанетÑÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼).</string>
+ <string lang="ru" key="FORMAT_NTFS_FAILED_ASK_FAT">Windows не может отформатировать Ñтот том как NTFS/exFAT.\n\nХотите вмеÑто Ñтого отформатировать том как FAT?</string>
<string lang="ru" key="DEFAULT">По умолчанию</string>
<string lang="ru" key="PARTITION_LOWER_CASE">раздел</string>
<string lang="ru" key="PARTITION_UPPER_CASE">РÐЗДЕЛ</string>
@@ -747,37 +747,37 @@
<string lang="ru" key="CLUSTER_TOO_SMALL">Ð”Ð»Ñ Ñтого тома выбран Ñлишком маленький размер клаÑтеров. Будут иÑпользованы клаÑтеры большего размера.</string>
<string lang="ru" key="CANT_GET_VOLSIZE">Ошибка! Ðевозможно получить размер тома.\n\nПроверьте, не иÑпользуетÑÑ Ð»Ð¸ выбранный том ÑиÑтемой или какой-либо программой.</string>
<string lang="ru" key="HIDDEN_VOL_HOST_SPARSE">Скрытые тома Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздавать внутри динамичеÑких контейнеров (разрежённых файлов). Чтобы можно было правдоподобно отрицать наличие Ñекретной информации, Ñкрытый том нужно Ñоздавать внутри нединамичеÑкого контейнера.</string>
- <string lang="ru" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">МаÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt ÑпоÑобен Ñоздавать Ñкрытый том только внутри тома FAT или NTFS.</string>
+ <string lang="ru" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">МаÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt ÑпоÑобен Ñоздавать Ñкрытый том только внутри тома FAT/exFAT или NTFS.</string>
<string lang="ru" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS_WIN2000">Ð’ Ñреде Windows 2000 маÑтер ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt ÑпоÑобен Ñоздавать Ñкрытый том только внутри тома FAT.</string>
- <string lang="ru" key="HIDDEN_VOL_HOST_NTFS">Примечание: Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… томов больше подходит ÑиÑтема FAT, нежели NTFS (например, макÑимальный размер Ñкрытого тома почти навернÑка будет ÑущеÑтвенно больше, еÑли внешний том отформатирован как FAT).</string>
- <string lang="ru" key="HIDDEN_VOL_HOST_NTFS_ASK">Обратите внимание, что Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… томов больше подходит ÑиÑтема FAT, нежели NTFS. Ðапример, макÑимальный размер Ñкрытого тома почти навернÑка будет ÑущеÑтвенно больше, еÑли внешний том отформатирован как FAT (поÑкольку NTFS вÑегда хранит внутренние данные точно в центре тома и потому Ñкрытый том может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине внешнего тома).\n\nÐ’Ñ‹ дейÑтвительно хотите отформатировать внешний том как NTFS?</string>
+ <string lang="ru" key="HIDDEN_VOL_HOST_NTFS">Примечание: Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… томов больше подходит ÑиÑтема FAT/exFAT, нежели NTFS (например, макÑимальный размер Ñкрытого тома почти навернÑка будет ÑущеÑтвенно больше, еÑли внешний том отформатирован как FAT/exFAT).</string>
+ <string lang="ru" key="HIDDEN_VOL_HOST_NTFS_ASK">Обратите внимание, что Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… томов больше подходит ÑиÑтема FAT/exFAT, нежели NTFS. Ðапример, макÑимальный размер Ñкрытого тома почти навернÑка будет ÑущеÑтвенно больше, еÑли внешний том отформатирован как FAT/exFAT (поÑкольку NTFS вÑегда хранит внутренние данные точно в центре тома и потому Ñкрытый том может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине внешнего тома).\n\nÐ’Ñ‹ дейÑтвительно хотите отформатировать внешний том как NTFS?</string>
<string lang="ru" key="OFFER_FAT_FORMAT_ALTERNATIVE">Хотите вмеÑто Ñтого отформатировать том как FAT?</string>
<string lang="ru" key="FAT_NOT_AVAILABLE_FOR_SO_LARGE_VOLUME">Примечание: Ñтот том Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ в FAT, так как его размер больше, чем допуÑкает Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема FAT32 Ð´Ð»Ñ ÑоответÑтвующего размера Ñекторов (2 ТБ Ð´Ð»Ñ Ñекторов по 512 байт, и 16 ТБ Ð´Ð»Ñ Ñекторов по 4096 байт).</string>
- <string lang="ru" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS">Ошибка! Раздел Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы (Ñ‚.е.Â Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ раздела за ÑиÑтемным) должен быть по крайней мере на 5% больше ÑиÑтемного раздела (ÑиÑтемный раздел - тот, где уÑтановлена выполнÑющаÑÑÑ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡).</string>
- <string lang="ru" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Ошибка! Раздел Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы (Ñ‚.е.Â Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ раздела за ÑиÑтемным) должен быть по крайней мере на 110% (в 2,1 раза) больше ÑиÑтемного раздела (ÑиÑтемный раздел - тот, где уÑтановлена выполнÑющаÑÑÑ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡). Причина в том, что Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема NTFS вÑегда хранит внутренние данные точно в центре тома, и потому Ñкрытый том (в котором должен ÑодержатьÑÑ ÐºÐ»Ð¾Ð½ ÑиÑтемного раздела) может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине внешнего тома.</string>
- <string lang="ru" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Ошибка! ЕÑли внешний том отформатирован как NTFS, он должен быть по крайней мере на 110% (в 2,1 раза) больше ÑиÑтемного раздела. Причина в том, что Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема NTFS вÑегда хранит внутренние данные точно в центре тома, и потому Ñкрытый том (в котором должен ÑодержатьÑÑ ÐºÐ»Ð¾Ð½ ÑиÑтемного раздела) может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине внешнего тома.\n\nПримечание: внешний том должен находитьÑÑ Ð² том же разделе, что и ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема (Ñ‚.е. в первом разделе за ÑиÑтемным).</string>
- <string lang="ru" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Ошибка! Ðет разделов за ÑиÑтемным разделом.\n\nПрежде чем можно будет Ñоздать Ñкрытую операционную ÑиÑтему, нужно Ñоздать Ð´Ð»Ñ Ð½ÐµÑ‘ раздел на ÑиÑтемном диÑке. Этот раздел должен быть первым за ÑиÑтемным, и он должен быть по крайней мере на 5% больше ÑиÑтемного раздела (Ñ‚.е. того, где уÑтановлена Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡). Однако еÑли внешний том (не путайте Ñ ÑиÑтемным разделом) отформатирован как NTFS, раздел Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы должен быть не менее, чем на 110% (в 2,1 раза) больше ÑиÑтемного (причина в том, что Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема NTFS вÑегда хранит внутренние данные точно в центре тома, поÑтому Ñкрытый том, который должен Ñодержать клон ÑиÑтемного раздела, может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине раздела).</string>
+ <string lang="ru" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS">Ошибка! Раздел Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы (Ñ‚.е.Â Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ идущего за ÑиÑтемным раздела) должен быть по крайней мере на 5% больше ÑиÑтемного раздела (ÑиÑтемный раздел - тот, где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡).</string>
+ <string lang="ru" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Ошибка! Раздел Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы (Ñ‚.е.Â Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ идущего за ÑиÑтемным раздела) должен быть по крайней мере на 110% (в 2,1 раза) больше ÑиÑтемного раздела (ÑиÑтемный раздел - тот, где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡). Причина в том, что Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема NTFS вÑегда хранит внутренние данные точно в центре тома, и потому Ñкрытый том (в котором должен ÑодержатьÑÑ ÐºÐ»Ð¾Ð½ ÑиÑтемного раздела) может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине внешнего тома.</string>
+ <string lang="ru" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Ошибка! ЕÑли внешний том отформатирован как NTFS, он должен быть по крайней мере на 110% (в 2,1 раза) больше ÑиÑтемного раздела. Причина в том, что Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема NTFS вÑегда хранит внутренние данные точно в центре тома, и потому Ñкрытый том (в котором должен ÑодержатьÑÑ ÐºÐ»Ð¾Ð½ ÑиÑтемного раздела) может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине внешнего тома.\n\nПримечание: внешний том должен находитьÑÑ Ð² том же разделе, что и ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема (Ñ‚.е. в первом разделе, идущим за ÑиÑтемным).</string>
+ <string lang="ru" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Ошибка! Ðет раздела, раÑположенного за ÑиÑтемным разделом.\n\nПрежде чем можно будет Ñоздать Ñкрытую операционную ÑиÑтему, нужно Ñоздать Ð´Ð»Ñ Ð½ÐµÑ‘ раздел на ÑиÑтемном диÑке. Этот раздел должен быть первым за ÑиÑтемным, и он должен быть по крайней мере на 5% больше ÑиÑтемного раздела (Ñ‚.е. того, где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡). Однако еÑли внешний том (не путайте Ñ ÑиÑтемным разделом) отформатирован как NTFS, раздел Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы должен быть не менее чем на 110% (в 2,1 раза) больше ÑиÑтемного (причина в том, что Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема NTFS вÑегда хранит внутренние данные точно в центре тома, поÑтому Ñкрытый том, который должен Ñодержать клон ÑиÑтемного раздела, может раÑполагатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ во второй половине раздела).</string>
<string lang="ru" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Замечание: непрактично (и потому Ñто не поддерживаетÑÑ) уÑтанавливать операционные ÑиÑтемы в два тома VeraCrypt, вÑтроенных в один раздел, поÑкольку при иÑпользовании внешней ОС чаÑто требуетÑÑ Ð·Ð°Ð¿Ð¸Ñывать данные в облаÑÑ‚ÑŒ внутренней ОС (а еÑли такие операции запиÑи предотвращать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции защиты Ñкрытых томов, то Ñто может привеÑти к краху ÑиÑтемы, Ñ‚.е. к 'Ñинему Ñкрану Ñмерти').</string>
<string lang="ru" key="FOR_MORE_INFO_ON_PARTITIONS">Информацию о Ñоздании и управлении разделами Ñм. в документации к вашей операционной ÑиÑтеме, либо проконÑультируйтеÑÑŒ в Ñлужбе техподдержки поÑтавщика Ñвоего компьютера.</string>
- <string lang="ru" key="SYSTEM_PARTITION_NOT_ACTIVE">Ошибка! ВыполнÑющаÑÑÑ Ð² данный момент Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема уÑтановлена не в загрузочном разделе (первом разделе Ñ Ð¿Ð¾Ð¼ÐµÑ‚ÐºÐ¾Ð¹ 'Ðктивный'). Это не поддерживаетÑÑ.</string>
- <string lang="ru" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Ð’Ñ‹ указали, что ÑобираетеÑÑŒ хранить в Ñтом томе VeraCrypt файлы размером более 4 ГБ, но выбрали при Ñтом файловую ÑиÑтему FAT, в которой Ñохранение файлов объёмом Ñвыше 4 ГБ не поддерживаетÑÑ.\n\nÐ’Ñ‹ дейÑтвительно хотите отформатировать том как FAT?</string>
+ <string lang="ru" key="SYSTEM_PARTITION_NOT_ACTIVE">Ошибка! Ð Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ Ð² данный момент Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема уÑтановлена не в загрузочном разделе (первом разделе Ñ Ð¿Ð¾Ð¼ÐµÑ‚ÐºÐ¾Ð¹ 'Ðктивный'). Это не поддерживаетÑÑ.</string>
+ <string lang="ru" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Ð’Ñ‹ указали, что ÑобираетеÑÑŒ хранить в Ñтом томе VeraCrypt файлы размером более 4 ГБ, но выбрали файловую ÑиÑтему FAT, в которой Ñохранение файлов объёмом Ñвыше 4 ГБ не поддерживаетÑÑ.\n\nÐ’Ñ‹ дейÑтвительно хотите отформатировать том как FAT?</string>
<string lang="ru" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Ошибка! VeraCrypt не поддерживает дешифрование 'на меÑте' неÑиÑтемных томов, Ñозданных VeraCrypt уÑтаревших верÑий (1.0b и ранее).\n\nЧтобы раÑшифровать файлы, хранÑщиеÑÑ Ð² Ñтом томе, проÑто Ñкопируйте или перемеÑтите их на любой незашифрованный том.</string>
- <string lang="ru" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Ошибка! VeraCrypt не может 'на меÑте' дешифровать Ñкрытый том VeraCrypt.\n\nЧтобы раÑшифровать файлы, хранÑщиеÑÑ Ð² Ñтом томе, проÑто Ñкопируйте или перемеÑтите их на любой незашифрованный том.</string>
- <string lang="ru" key="CONFIRM_VOL_CONTAINS_NO_HIDDEN_VOL">Внимание! VeraCrypt не может 'на меÑте' раÑшифровать том, в котором ÑодержитÑÑ Ñкрытый том VeraCrypt (Ñкрытый том перезапишетÑÑ Ð¿ÑевдоÑлучайными данными).\n\nПодтвердите, что в томе, который вы ÑобираетеÑÑŒ дешифровать, нет Ñкрытого тома.\n\n* ЕÑли в томе еÑÑ‚ÑŒ Ñкрытый том, но вы не против его потери, то можете продолжить (внешний том будет безопаÑно дешифрован).</string>
+ <string lang="ru" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Ошибка! VeraCrypt не может 'на меÑте' раÑшифровать Ñкрытый том VeraCrypt.\n\nЧтобы раÑшифровать файлы, хранÑщиеÑÑ Ð² Ñтом томе, проÑто Ñкопируйте или перемеÑтите их на любой незашифрованный том.</string>
+ <string lang="ru" key="CONFIRM_VOL_CONTAINS_NO_HIDDEN_VOL">Внимание! VeraCrypt не может 'на меÑте' раÑшифровать том, в котором ÑодержитÑÑ Ñкрытый том VeraCrypt (Ñкрытый том перезапишетÑÑ Ð¿ÑевдоÑлучайными данными).\n\nПодтвердите, что в томе, который вы ÑобираетеÑÑŒ раÑшифровать, нет Ñкрытого тома.\n\n* ЕÑли в томе еÑÑ‚ÑŒ Ñкрытый том, но вы не против его потери, то можете продолжить (внешний том будет безопаÑно раÑшифрован).</string>
<string lang="ru" key="VOL_CONTAINS_NO_HIDDEN_VOL">Ð’ Ñтом томе нет Ñкрытого тома. Продолжаем.</string>
- <string lang="ru" key="VOL_CONTAINS_A_HIDDEN_VOL">Ð’ Ñтом томе находитÑÑ Ñкрытый том. Отмена.</string>
- <string lang="ru" key="CANT_ACCESS_VOL">Ошибка! Ðет доÑтупа к тому.\n\nПроверьте, ÑущеÑтвует ли Ñтот том, не Ñмонтирован ли он, не иÑпользуетÑÑ Ð»Ð¸ ÑиÑтемой или какой-либо программой, которой вы дали права чтениÑ/запиÑи Ñтого тома, и не защищён ли он от запиÑи.</string>
- <string lang="ru" key="CANT_GET_VOL_INFO">Ошибка! Ðевозможно получить ÑвойÑтва тома.</string>
- <string lang="ru" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL">Ошибка! Ðет доÑтупа к тому и/или невозможно получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ томе.\n\nПроверьте, ÑущеÑтвует ли выбранный том, не иÑпользуетÑÑ Ð»Ð¸ он ÑиÑтемой или приложениÑми, еÑÑ‚ÑŒ ли у Ð²Ð°Ñ Ð¿Ñ€Ð°Ð²Ð° Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ/запиÑи Ñтого тома, и не защищён ли том от запиÑи.</string>
- <string lang="ru" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Ошибка! Ðет доÑтупа к тому и/или невозможно получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ томе. Проверьте, ÑущеÑтвует ли выбранный том, не иÑпользуетÑÑ Ð»Ð¸ он ÑиÑтемой или приложениÑми, еÑÑ‚ÑŒ ли у Ð²Ð°Ñ Ð¿Ñ€Ð°Ð²Ð° Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ/запиÑи Ñтого тома, и не защищён ли том от запиÑи.\n\nЕÑли проблема не решаетÑÑ, попробуйте предпринÑÑ‚ÑŒ шаги, указанные ниже.</string>
+ <string lang="ru" key="VOL_CONTAINS_A_HIDDEN_VOL">Ð’ Ñтом томе еÑÑ‚ÑŒ Ñкрытый том. Отмена.</string>
+ <string lang="ru" key="CANT_ACCESS_VOL">ОШИБКÐ: Ðет доÑтупа к тому.\n\nПроверьте, ÑущеÑтвует ли Ñтот том, не Ñмонтирован ли он, не иÑпользуетÑÑ Ð»Ð¸ ÑиÑтемой или какой-либо программой, которой вы дали права чтениÑ/запиÑи Ñтого тома, и не защищён ли он от запиÑи.</string>
+ <string lang="ru" key="CANT_GET_VOL_INFO">ОШИБКÐ: Ðевозможно получить ÑвойÑтва тома.</string>
+ <string lang="ru" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL">ОШИБКÐ: Ðет доÑтупа к тому и/или невозможно получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ томе.\n\nПроверьте, ÑущеÑтвует ли выбранный том, не иÑпользуетÑÑ Ð»Ð¸ он ÑиÑтемой или приложениÑми, еÑÑ‚ÑŒ ли у Ð²Ð°Ñ Ð¿Ñ€Ð°Ð²Ð° Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ/запиÑи Ñтого тома, и не защищён ли он от запиÑи.</string>
+ <string lang="ru" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">ОШИБКÐ: Ðет доÑтупа к тому и/или невозможно получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ томе. Проверьте, ÑущеÑтвует ли выбранный том, не иÑпользуетÑÑ Ð»Ð¸ он ÑиÑтемой или приложениÑми, еÑÑ‚ÑŒ ли у Ð²Ð°Ñ Ð¿Ñ€Ð°Ð²Ð° Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ/запиÑи Ñтого тома, и не защищён ли он от запиÑи.\n\nЕÑли проблема не решаетÑÑ, попробуйте предпринÑÑ‚ÑŒ шаги, указанные ниже.</string>
<string lang="ru" key="INPLACE_ENC_GENERIC_ERR_ALT_STEPS">Зашифровать раздел не удалоÑÑŒ из-за ошибки. Попробуйте уÑтранить вÑе ранее указанные проблемы и повторить попытку. ЕÑли проблемы не решаютÑÑ, попробуйте предпринÑÑ‚ÑŒ шаги, указанные ниже.</string>
- <string lang="ru" key="INPLACE_ENC_GENERIC_ERR_RESUME">Продолжить процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° не удалоÑÑŒ из-за ошибки.\n\nПопробуйте уÑтранить вÑе ранее указанные проблемы и Ñнова возобновить процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ. Учтите, что том Ð½ÐµÐ»ÑŒÐ·Ñ Ñмонтировать до тех пор, пока он не будет полноÑтью зашифрован.</string>
- <string lang="ru" key="INPLACE_DEC_GENERIC_ERR">VeraCrypt не удалоÑÑŒ дешифровать том из-за ошибки. Попробуйте уÑтранить вÑе возникшие ранее проблемы и затем по возможноÑти повторите.</string>
- <string lang="ru" key="CANT_DISMOUNT_OUTER_VOL">Ошибка! Ðевозможно размонтировать внешний том.\n\nТом Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ, еÑли он Ñодержит файлы или папки, иÑпользуемые какой-либо программой или ÑиÑтемой.\n\nЗакройте вÑе программы, которые могут иÑпользовать файлы и папки на Ñтом томе, и нажмите 'Повтор'.</string>
- <string lang="ru" key="CANT_GET_OUTER_VOL_INFO">Ошибка! Ðевозможно получить информацию о внешнем томе. Создание тома прекращено.</string>
- <string lang="ru" key="CANT_ACCESS_OUTER_VOL">Ошибка! Ðет доÑтупа к внешнему тому. Продолжение ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° невозможно.</string>
- <string lang="ru" key="CANT_MOUNT_OUTER_VOL">Ошибка! Ðевозможно Ñмонтировать внешний том. Создание тома не может быть продолжено.</string>
- <string lang="ru" key="CANT_GET_CLUSTER_BITMAP">Ошибка! Ðевозможно получить карту клаÑтеров тома. Создание тома не может быть продолжено.</string>
+ <string lang="ru" key="INPLACE_ENC_GENERIC_ERR_RESUME">Продолжить шифрование/дешифрование раздела не удалоÑÑŒ из-за ошибки.\n\nПопробуйте уÑтранить вÑе ранее указанные проблемы и Ñнова возобновить процеÑÑ. Учтите, что том Ð½ÐµÐ»ÑŒÐ·Ñ Ñмонтировать до тех пор, пока он не будет полноÑтью зашифрован/раÑшифрован.</string>
+ <string lang="ru" key="INPLACE_DEC_GENERIC_ERR">Ðе удалоÑÑŒ раÑшифровать том из-за ошибки. Попробуйте уÑтранить вÑе возникшие ранее проблемы и затем по возможноÑти повторите.</string>
+ <string lang="ru" key="CANT_DISMOUNT_OUTER_VOL">ОШИБКÐ: Ðевозможно размонтировать внешний том.\n\nТом Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ, еÑли он Ñодержит файлы или папки, иÑпользуемые какой-либо программой или ÑиÑтемой.\n\nЗакройте вÑе программы, которые могут иÑпользовать файлы и папки на Ñтом томе, и нажмите 'Повтор'.</string>
+ <string lang="ru" key="CANT_GET_OUTER_VOL_INFO">ОШИБКÐ: Ðевозможно получить информацию о внешнем томе. Создание тома не может быть продолжено.</string>
+ <string lang="ru" key="CANT_ACCESS_OUTER_VOL">ОШИБКÐ: Ðет доÑтупа к внешнему тому. Создание тома не может быть продолжено.</string>
+ <string lang="ru" key="CANT_MOUNT_OUTER_VOL">ОШИБКÐ: Ðевозможно Ñмонтировать внешний том. Создание тома не может быть продолжено.</string>
+ <string lang="ru" key="CANT_GET_CLUSTER_BITMAP">ОШИБКÐ: Ðевозможно получить карту клаÑтеров тома. Создание тома не может быть продолжено.</string>
<string lang="ru" key="ALPHABETICAL_CATEGORIZED">По алфавиту/категориÑм</string>
<string lang="ru" key="MEAN_SPEED">СреднÑÑ ÑкороÑÑ‚ÑŒ (убывание)</string>
<string lang="ru" key="ALGORITHM">Ðлгоритм</string>
@@ -811,8 +811,8 @@
<string lang="ru" key="HID_VOL_DAMAGE_PREVENTED">Да (защита от повреждений!)</string>
<string lang="ru" key="NONE">Ðет</string>
<string lang="ru" key="KEY_SIZE">Длина первичного ключа</string>
- <string lang="ru" key="SECONDARY_KEY_SIZE_XTS">Длина вторичного ключа (XTS-режим)</string>
- <string lang="ru" key="SECONDARY_KEY_SIZE_LRW">Длина Tweak-ключа (LRW-режим)</string>
+ <string lang="ru" key="SECONDARY_KEY_SIZE_XTS">Длина вторичного ключа (режим XTS)</string>
+ <string lang="ru" key="SECONDARY_KEY_SIZE_LRW">Длина Tweak-ключа (режим LRW)</string>
<string lang="ru" key="BITS">бит</string>
<string lang="ru" key="BLOCK_SIZE">Размер блока</string>
<string lang="ru" key="PKCS5_PRF">PKCS-5 PRF</string>
@@ -832,7 +832,7 @@
<string lang="ru" key="SETUP_MODE_INFO">Выберите режим. ЕÑли не знаете, какой выбрать, иÑпользуйте предложенный.</string>
<string lang="ru" key="SETUP_MODE_HELP_INSTALL">Выберите Ñту опцию, чтобы уÑтановить VeraCrypt в данной ÑиÑтеме.</string>
<string lang="ru" key="SETUP_MODE_HELP_UPGRADE">Примечание: обновление можно выполнить без раÑшифровки данных, даже еÑли зашифрован ÑиÑтемный раздел/диÑк или иÑпользуетÑÑ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема.</string>
- <string lang="ru" key="SETUP_MODE_HELP_EXTRACT">При выборе Ñтой опции вÑе файлы будут извлечены из диÑтрибутива, но не уÑтановлены в ÑиÑтему. Ðе выбирайте Ñтот вариант, еÑли вы намерены шифровать ÑиÑтемный раздел или ÑиÑтемный диÑк. Этот вариант может пригодитьÑÑ, например, еÑли вы ÑобираетеÑÑŒ запуÑкать VeraCrypt в так называемом 'переноÑном' (portable) режиме. VeraCrypt не обÑзательно должен быть уÑтановлен в ОС, в которой он работает. ПоÑле Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð²Ñех файлов вы можете проÑто запуÑтить файл 'VeraCrypt.exe' (программа будет работать в 'переноÑном' режиме).</string>
+ <string lang="ru" key="SETUP_MODE_HELP_EXTRACT">При выборе Ñтой опции вÑе файлы будут извлечены из диÑтрибутива, но не уÑтановлены в ÑиÑтему. Ðе выбирайте Ñтот вариант, еÑли вы намерены шифровать ÑиÑтемный раздел или ÑиÑтемный диÑк. Этот вариант может пригодитьÑÑ, например, Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка VeraCrypt в так называемом 'переноÑном' (portable) режиме. VeraCrypt не обÑзательно должен быть уÑтановлен в ОС, в которой он работает. ПоÑле Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð²Ñех файлов проÑто запуÑтите файл VeraCrypt.exe (программа будет работать в 'переноÑном' режиме).</string>
<string lang="ru" key="SETUP_OPTIONS_TITLE">Параметры уÑтановки</string>
<string lang="ru" key="SETUP_OPTIONS_INFO">ЗдеÑÑŒ можно выбрать различные параметры, влиÑющие на уÑтановку программы.</string>
<string lang="ru" key="SETUP_PROGRESS_TITLE">УÑтановка</string>
@@ -844,7 +844,7 @@
<string lang="ru" key="EXTRACTION_OPTIONS_INFO">ЗдеÑÑŒ можно выбрать различные параметры, влиÑющие на извлечение файлов.</string>
<string lang="ru" key="EXTRACTION_PROGRESS_INFO">Подождите, идёт извлечение файлов.</string>
<string lang="ru" key="EXTRACTION_FINISHED_TITLE_DON">Файлы уÑпешно извлечены</string>
- <string lang="ru" key="EXTRACTION_FINISHED_INFO">Ð’Ñе файлы уÑпешно извлечены в указанное меÑто назначениÑ.</string>
+ <string lang="ru" key="EXTRACTION_FINISHED_INFO">Ð’Ñе файлы уÑпешно извлечены в указанное целевое меÑто.</string>
<string lang="ru" key="AUTO_FOLDER_CREATION">ЕÑли указанной папки не ÑущеÑтвует, она будет Ñоздана автоматичеÑки.</string>
<string lang="ru" key="SETUP_UPGRADE_DESTINATION">Программные файлы VeraCrypt будут обновлены в папке уÑтановки VeraCrypt. ЕÑли вы хотите выбрать другое меÑтоположение, Ñначала нужно удалить VeraCrypt.</string>
<string lang="ru" key="AFTER_UPGRADE_RELEASE_NOTES">Показать Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ðº текущей (поÑледней Ñтабильной) верÑии VeraCrypt?</string>
@@ -853,15 +853,15 @@
<string lang="ru" key="REPAIR_REINSTALL">ВоÑÑтановить/переуÑтановить</string>
<string lang="ru" key="UPGRADE">Обновить</string>
<string lang="ru" key="UNINSTALL">Удалить</string>
- <string lang="ru" key="SETUP_ADMIN">Ð”Ð»Ñ ÑƒÑтановки/ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ VeraCrypt необходимо иметь права админиÑтратора. Хотите продолжить?</string>
+ <string lang="ru" key="SETUP_ADMIN">Ð”Ð»Ñ ÑƒÑтановки/ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ VeraCrypt необходимо иметь права админиÑтратора. Продолжить?</string>
<string lang="ru" key="TC_INSTALLER_IS_RUNNING">Ð’ ÑиÑтеме ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½ уÑтановщик VeraCrypt. Он выполнÑет/готовит уÑтановку или обновление VeraCrypt. ДождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ работы или закройте его. ЕÑли закрыть уÑтановщик не получаетÑÑ, перезагрузите компьютер и лишь потом продолжите.</string>
<string lang="ru" key="INSTALL_FAILED">УÑтановка не выполнена.</string>
<string lang="ru" key="UNINSTALL_FAILED">Удаление не выполнено.</string>
- <string lang="ru" key="DIST_PACKAGE_CORRUPTED">Этот диÑтрибутивный пакет повреждён. Загрузите его Ñнова (желательно Ñ официального Ñайта VeraCrypt - https://veracrypt.codeplex.com).</string>
+ <string lang="ru" key="DIST_PACKAGE_CORRUPTED">Этот диÑтрибутивный пакет повреждён. Загрузите его Ñнова (желательно Ñ официального Ñайта VeraCrypt - https://www.veracrypt.fr).</string>
<string lang="ru" key="CANNOT_WRITE_FILE_X">Ðевозможно запиÑать файл %s</string>
<string lang="ru" key="EXTRACTING_VERB">Извлечение</string>
<string lang="ru" key="CANNOT_READ_FROM_PACKAGE">Ðевозможно прочитать данные из диÑтрибутива.</string>
- <string lang="ru" key="CANT_VERIFY_PACKAGE_INTEGRITY">Ðевозможно проверить целоÑтноÑÑ‚ÑŒ Ñтого диÑтрибутивного пакета.</string>
+ <string lang="ru" key="CANT_VERIFY_PACKAGE_INTEGRITY">Ðевозможно проверить целоÑтноÑÑ‚ÑŒ диÑтрибутивного пакета.</string>
<string lang="ru" key="EXTRACTION_FAILED">Извлечение не выполнено.</string>
<string lang="ru" key="ROLLBACK">УÑтановка возвращена назад.</string>
<string lang="ru" key="INSTALL_OK">Программа VeraCrypt уÑпешно уÑтановлена.</string>
@@ -887,17 +887,17 @@
<string lang="ru" key="DISMOUNT_ALL_FIRST">Прежде чем продолжить уÑтановку или удаление VeraCrypt, нужно размонтировать вÑе VeraCrypt-тома.</string>
<string lang="ru" key="UNINSTALL_OLD_VERSION_FIRST">Ð’ Ñтой ÑиÑтеме уже уÑтановлена уÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ð²ÐµÑ€ÑÐ¸Ñ VeraCrypt. Её необходимо удалить, прежде чем можно будет уÑтановить новую верÑию VeraCrypt.\n\nПри закрытии Ñтого окна будет запущена программа ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñтарой верÑии. Ðикакие тома при удалении VeraCrypt не раÑшифровываютÑÑ. ПоÑле ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñтарой верÑии VeraCrypt запуÑтите уÑтановщик новой верÑии VeraCrypt Ñнова.</string>
<string lang="ru" key="REG_INSTALL_FAILED">Ошибка уÑтановки Ñлементов в рееÑтре</string>
- <string lang="ru" key="DRIVER_INSTALL_FAILED">Ошибка уÑтановки драйвера уÑтройÑтва. Перезагрузите Windows и попробуйте уÑтановить VeraCrypt ещё раз.</string>
+ <string lang="ru" key="DRIVER_INSTALL_FAILED">Ошибка уÑтановки драйвера. Перезагрузите Windows и попробуйте уÑтановить VeraCrypt ещё раз.</string>
<string lang="ru" key="STARTING_DRIVER">ЗапуÑк драйвера VeraCrypt</string>
- <string lang="ru" key="DRIVER_UINSTALL_FAILED">Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° уÑтройÑтв. Обратите внимание, что из-за оÑобенноÑтей Windows Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ (или переуÑтановки) драйвера может потребоватьÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒ ÑÐµÐ°Ð½Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ или перезагрузить ÑиÑтему.</string>
+ <string lang="ru" key="DRIVER_UINSTALL_FAILED">Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°. Обратите внимание, что из-за оÑобенноÑтей Windows Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ (или переуÑтановки) драйвера может потребоватьÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒ ÑÐµÐ°Ð½Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ или перезагрузить ÑиÑтему.</string>
<string lang="ru" key="INSTALLING_DRIVER">УÑтановка драйвера VeraCrypt</string>
<string lang="ru" key="STOPPING_DRIVER">ОÑтановка драйвера VeraCrypt</string>
<string lang="ru" key="REMOVING_DRIVER">Удаление драйвера VeraCrypt</string>
<string lang="ru" key="COM_REG_FAILED">Ошибка региÑтрации библиотеки поддержки ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ð¼Ð¸ запиÑÑми пользователей (User Account Control).</string>
<string lang="ru" key="COM_DEREG_FAILED">Ошибка отмены региÑтрации библиотеки поддержки ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ð¼Ð¸ запиÑÑми пользователей (User Account Control).</string>
- <string lang="ru" key="TRAVELER_LIMITATIONS_NOTE">О портативном режиме\n\nУчтите, что прежде чем драйверы Ñмогут быть запущены, они должны быть зарегиÑтрированы операционной ÑиÑтемой. ПоÑтому драйвер VeraCrypt не полноÑтью портативный (и не может таковым быть) (тогда как Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ VeraCrypt полноÑтью портативные, Ñ‚.е. не требуют уÑтановки или региÑтрации в ОС). Также примите к Ñведению, что Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ/Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ 'на лету' VeraCrypt требуетÑÑ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€.</string>
- <string lang="ru" key="TRAVELER_UAC_NOTE">!!! ЕÑли вы решили запуÑтить VeraCrypt в переноÑном режиме (а не как нормально уÑтановленную в ПК программу), ÑиÑтема будет Ñпрашивать вашего Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° выполнение (Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ñ… запиÑей, UAC) при каждом запуÑке VeraCrypt.\n\nПричина в том, что при запуÑке VeraCrypt в переноÑном режиме требуетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°Ñ‚ÑŒ и выполнÑÑ‚ÑŒ драйвер VeraCrypt. Этот драйвер нужен VeraCrypt Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾Ð³Ð¾, выполнÑемого 'на лету' шифрованиÑ/дешифрованиÑ, а пользователи без прав админиÑтратора запуÑкать драйверы в Windows не могут. ПоÑтому ÑиÑтема будет Ñпрашивать у Ð²Ð°Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° запуÑк VeraCrypt Ñ Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñми админиÑтратора (UAC).\n\nОбратите внимание, что при уÑтановке (инÑталлÑции) VeraCrypt в ÑиÑтему (в отличие от запуÑка VeraCrypt в переноÑном режиме), ÑиÑтема ÐЕ будет запрашивать вашего Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ каждом запуÑке VeraCrypt.\n\nÐ’Ñ‹ дейÑтвительно хотите только извлечь файлы?</string>
- <string lang="ru" key="CONTAINER_ADMIN_WARNING">Ð’ÐИМÐÐИЕ: Эта ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð°Ñтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² имеет админиÑтративные привилегии.\n\nÐовый том может быть Ñоздан Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸, которые не позволÑÑ‚ вам запиÑывать в него данные, когда он будет Ñмонтирован. ЕÑли вы хотите Ñтого избежать, закройте Ñту копию маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² и запуÑтите другую, без админиÑтративных привилегий.\n\nХотите закрыть Ñту копию маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð²?</string>
+ <string lang="ru" key="TRAVELER_LIMITATIONS_NOTE">О переноÑном режиме\n\nПрежде чем драйверы могут быть запущены, они должны быть зарегиÑтрированы в операционной ÑиÑтеме. ПоÑтому драйвер VeraCrypt - не полноÑтью переноÑной (и не может таковым быть, тогда как Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ VeraCrypt - полноÑтью переноÑные, Ñ‚.е. не требуют уÑтановки или региÑтрации в ОС). Обратите внимание, что Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ/Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ 'на лету' VeraCrypt требуетÑÑ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€.</string>
+ <string lang="ru" key="TRAVELER_UAC_NOTE">!!! ЕÑли вы решили запуÑтить VeraCrypt в переноÑном режиме (а не как уÑтановленную в ПК программу), ÑиÑтема будет Ñпрашивать вашего Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° выполнение (контроль учётных запиÑей, UAC) при каждом запуÑке.\n\nПричина в том, что в переноÑном режиме требуетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°Ñ‚ÑŒ и запуÑкать драйвер VeraCrypt, необходимый Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾Ð³Ð¾, выполнÑемого 'на лету' шифрованиÑ/дешифрованиÑ, а пользователи без прав админиÑтратора не могут запуÑкать драйверы в Windows. ПоÑтому ÑиÑтема будет Ñпрашивать Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° запуÑк VeraCrypt Ñ Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñми админиÑтратора (UAC).\n\nОбратите внимание, что при уÑтановке (инÑталлÑции) VeraCrypt в ÑиÑтему (в отличие от запуÑка в переноÑном режиме), ÑиÑтема ÐЕ будет запрашивать Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ каждом запуÑке программы.\n\nÐ’Ñ‹ дейÑтвительно хотите только извлечь файлы?</string>
+ <string lang="ru" key="CONTAINER_ADMIN_WARNING">Ð’ÐИМÐÐИЕ: Эта ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð°Ñтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² имеет админиÑтративные привилегии.\n\nÐовый том может быть Ñоздан Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸, которые не позволÑÑ‚ вам запиÑывать в него данные, когда он будет Ñмонтирован. ЕÑли вы хотите Ñтого избежать, закройте Ñту копию маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² и запуÑтите другую, без админиÑтративных привилегий.\n\nЗакрыть Ñту копию маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð²?</string>
<string lang="ru" key="CANNOT_DISPLAY_LICENSE">Ошибка вывода лицензии.</string>
<string lang="ru" key="OUTER_VOL_WRITE_PREVENTED">Внешний(!)</string>
<string lang="ru" key="DAYS">дн.</string>
@@ -925,15 +925,15 @@
<string lang="ru" key="PROGRESS_STATUS_FINISHED">Завершено</string>
<string lang="ru" key="PROGRESS_STATUS_ERROR">Ошибка</string>
<string lang="ru" key="FAVORITE_DISCONNECTED_DEV">УÑтройÑтво отключено</string>
- <string lang="ru" key="SYS_FAVORITE_VOLUMES_SAVED">СиÑтемные избранные тома Ñохранены.\n\nЧтобы разрешить монтирование Ñтих томов при Ñтарте ÑиÑтемы, выберите 'ÐаÑтройки' &gt; 'СиÑтемные избранные тома' &gt; 'Монтировать ÑиÑтемные избранные тома при Ñтарте Windows'.</string>
- <string lang="ru" key="FAVORITE_ADD_DRIVE_DEV_WARNING">ДобавлÑемый в избранное том не ÑвлÑетÑÑ Ð½Ð¸Â Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð¼, ни динамичеÑким томом. ПоÑтому VeraCrypt не Ñможет Ñмонтировать Ñтот избранный том, еÑли изменитÑÑ Ñ‡Ð¸Ñло уÑтройÑтв.</string>
- <string lang="ru" key="FAVORITE_ADD_PARTITION_TYPE_WARNING">ДобавлÑемый в избранное том Ñто раздел, не раÑпознанный Windows.\n\nVeraCrypt не Ñможет Ñмонтировать Ñтот избранный том, еÑли изменитÑÑ Ñ‡Ð¸Ñло уÑтройÑтв. Задайте тип раздела, раÑпознаваемый Windows (иÑпользуйте команду SETID в Windows-утилите 'DiskPart'), и затем Ñнова добавьте раздел в ÑпиÑок избранного.</string>
- <string lang="ru" key="FAVORITE_ARRIVAL_MOUNT_BACKGROUND_TASK_ERR">Ð¤Ð¾Ð½Ð¾Ð²Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° VeraCrypt отключена или наÑтроена на прекращение при отÑутÑтвии Ñмонтированных томов (либо VeraCrypt запущен в переноÑном режиме). Это может помешать автомонтированию избранных томов при подключении уÑтройÑтв, на которых они раÑположены.\n\n!!! Чтобы включить фоновое выполнение VeraCrypt, вызовите окно наÑтроек программы и отметьте параметр 'Включено' в поле 'Работа VeraCrypt в фоновом режиме'.</string>
+ <string lang="ru" key="SYS_FAVORITE_VOLUMES_SAVED">СиÑтемные избранные тома Ñохранены.\n\nЧтобы разрешить монтирование Ñтих томов при загрузке ÑиÑтемы, выберите 'ÐаÑтройки' &gt; 'СиÑтемные избранные тома' &gt; 'Монтировать ÑиÑтемные избранные тома при Ñтарте Windows'.</string>
+ <string lang="ru" key="FAVORITE_ADD_DRIVE_DEV_WARNING">ДобавлÑемый в избранное том - не раздел и не динамичеÑкий том. ПоÑтому VeraCrypt не Ñможет Ñмонтировать Ñтот избранный том, еÑли изменитÑÑ Ñ‡Ð¸Ñло уÑтройÑтв.</string>
+ <string lang="ru" key="FAVORITE_ADD_PARTITION_TYPE_WARNING">ДобавлÑемый в избранное том - Ñто раздел, не раÑпознанный Windows.\n\nVeraCrypt не Ñможет Ñмонтировать Ñтот избранный том, еÑли изменитÑÑ Ñ‡Ð¸Ñло уÑтройÑтв. Задайте тип раздела, раÑпознаваемый Windows (иÑпользуйте команду SETID в Windows-утилите DiskPart), и затем Ñнова добавьте раздел в ÑпиÑок избранного.</string>
+ <string lang="ru" key="FAVORITE_ARRIVAL_MOUNT_BACKGROUND_TASK_ERR">Ð¤Ð¾Ð½Ð¾Ð²Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° VeraCrypt отключена или наÑтроена на прекращение при отÑутÑтвии Ñмонтированных томов (либо программа запущена в переноÑном режиме). Это может помешать автомонтированию избранных томов при подключении уÑтройÑтв, на которых они раÑположены.\n\n!!! Чтобы включить фоновое выполнение VeraCrypt, вызовите окно наÑтроек программы и отметьте параметр 'Включено' в поле 'Работа VeraCrypt в фоновом режиме'.</string>
<string lang="ru" key="FAVORITE_ARRIVAL_MOUNT_NETWORK_PATH_ERR">Ðвтомонтирование контейнера, раÑположенного в Ñетевой файловой ÑиÑтеме, при подключении его хоÑÑ‚-уÑтройÑтва невозможно.</string>
<string lang="ru" key="FAVORITE_ARRIVAL_MOUNT_DEVICE_PATH_ERR">Указанное ниже уÑтройÑтво - не раздел и не динамичеÑкий том. ПоÑтому при подключении Ñтого уÑтройÑтва автомонтирование раÑположенного на нём тома невозможно.</string>
- <string lang="ru" key="FAVORITE_ARRIVAL_MOUNT_PARTITION_TYPE_ERR">ПриÑвойте показанному ниже разделу тип, раÑпознаваемый Windows (иÑпользуйте команду SETID в Windows-утилите 'DiskPart'). Затем удалите раздел из ÑпиÑка избранного и добавьте его Ñнова. Этим вы разрешите тому на оÑнове уÑтройÑтва автоматичеÑки монтироватьÑÑ Ð¿Ñ€Ð¸ подключении уÑтройÑтва.</string>
- <string lang="ru" key="FAVORITE_LABEL_DEVICE_PATH_ERR">Указанное ниже уÑтройÑтво - не раздел и не динамичеÑкий том. ПоÑтому приÑвоить ему метку невозможно.</string>
- <string lang="ru" key="FAVORITE_LABEL_PARTITION_TYPE_ERR">ПриÑвойте показанному ниже разделу тип, раÑпознаваемый Windows (иÑпользуйте команду SETID в Windows-утилите 'DiskPart'). Затем удалите раздел из ÑпиÑка избранного и добавьте его Ñнова. Это позволит VeraCrypt приÑвоить разделу метку.</string>
+ <string lang="ru" key="FAVORITE_ARRIVAL_MOUNT_PARTITION_TYPE_ERR">ПриÑвойте показанному ниже разделу тип, раÑпознаваемый Windows (иÑпользуйте команду SETID в Windows-утилите DiskPart). Затем удалите раздел из ÑпиÑка избранного и добавьте его Ñнова. Этим вы разрешите тому на оÑнове уÑтройÑтва автоматичеÑки монтироватьÑÑ Ð¿Ñ€Ð¸ подключении уÑтройÑтва.</string>
+ <string lang="ru" key="FAVORITE_LABEL_DEVICE_PATH_ERR">Указанное ниже уÑтройÑтво - не раздел и не динамичеÑкий том, поÑтому ему Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ñвоить метку.</string>
+ <string lang="ru" key="FAVORITE_LABEL_PARTITION_TYPE_ERR">ПриÑвойте показанному ниже разделу тип, раÑпознаваемый Windows (иÑпользуйте команду SETID в Windows-утилите DiskPart). Затем удалите раздел из ÑпиÑка избранного и добавьте его Ñнова. Это позволит VeraCrypt приÑвоить разделу метку.</string>
<string lang="ru" key="SYSTEM_FAVORITE_NETWORK_PATH_ERR">Из-за ÑиÑтемных ограничений Windows контейнер, находÑщийÑÑ Ð² удалённой Ñетевой файловой ÑиÑтеме, Ð½ÐµÐ»ÑŒÐ·Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ как избранный ÑиÑтемный том (но его можно Ñмонтировать как неÑиÑтемный избранный том при входе Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² Ñвою учётную запиÑÑŒ).</string>
<string lang="ru" key="ENTER_PASSWORD_FOR">Введите пароль Ð´Ð»Ñ %s</string>
<string lang="ru" key="ENTER_PASSWORD_FOR_LABEL">Введите пароль Ð´Ð»Ñ '%s'</string>
@@ -945,34 +945,34 @@
<string lang="ru" key="KEYFILE_INCORRECT_SIZE">Размер ключевого файла должен быть между 64 и 1048576 байтами.</string>
<string lang="ru" key="KEYFILE_EMPTY_BASE_NAME">Введите Ð¸Ð¼Ñ Ñоздаваемого ключевого файла</string>
<string lang="ru" key="KEYFILE_INVALID_BASE_NAME">ÐедопуÑтимое базовое Ð¸Ð¼Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ñ… файлов</string>
- <string lang="ru" key="KEYFILE_ALREADY_EXISTS">Ключевой файл '%s' уже ÑущеÑтвует.\nперезапиÑать его? При ответе 'Ðет' процеÑÑ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ оÑтановлен.</string>
- <string lang="ru" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">Ð’ÐИМÐÐИЕ: Заголовок Ñтого тома повреждён! VeraCrypt автоматичеÑки задейÑтвовал резервную копию заголовка, вÑтроенную в том.\n\nВам Ñледует иÑправить заголовок, выбрав 'СервиÑ' &gt; 'ВоÑÑтановить заголовок тома'.</string>
- <string lang="ru" key="VOL_HEADER_BACKED_UP">Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° тома уÑпешно Ñоздана.\n\nÐ’ÐЖÐО: При воÑÑтановлении заголовка из Ñтой резервной копии также будет воÑÑтановлен и текущий пароль тома. Более того, еÑли Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° требуютÑÑ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ðµ файлы, поÑле воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° из копии Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° понадобÑÑ‚ÑÑ Ñ‚Ðµ же ключевые файлы.\n\nÐ’ÐИМÐÐИЕ: Эту копию заголовка тома можно иÑпользовать Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ТОЛЬКО Ñтого конкретного тома. ЕÑли применить Ñту копию Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° другого тома, Ñмонтировать том вы Ñможете, но вам ÐЕ удаÑÑ‚ÑÑ Ñ€Ð°Ñшифровать никаких данных, хранÑщихÑÑ Ð² Ñтом томе (так как Ñто изменит его маÑтер-ключ).</string>
- <string lang="ru" key="VOL_HEADER_RESTORED">Заголовок тома уÑпешно воÑÑтановлен.\n\nÐ’ÐЖÐО: Имейте в виду, что вмеÑте Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð¼ также был воÑÑтановлен и прежний пароль.\nБолее того, еÑли на момент ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°\nтакже требовалиÑÑŒ ключевые файлы, Ñти же ключевые файлы понадобÑÑ‚ÑÑ\nÐ´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ тома ÑейчаÑ.</string>
- <string lang="ru" key="EXTERNAL_VOL_HEADER_BAK_FIRST_INFO">Ð’ целÑÑ… безопаÑноÑти, Ð´Ð»Ñ Ñтого тома потребуетÑÑ Ð²Ð²ÐµÑти правильный пароль\n(и/или предоÑтавить корректные ключевые файлы).\n\nПримечание: еÑли в Ñтом томе ÑодержитÑÑ Ñкрытый том, Ñначала нужно ввеÑти правильный пароль\n(и/или предоÑтавить корректные ключевые файлы) Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома.\nЗатем, еÑли вы выбрали резервное копирование заголовка Ñкрытого тома, нужно будет\nуказать правильный пароль (и/или предоÑтавить корректные ключевые файлы) Ð´Ð»Ñ Ñкрытого тома.</string>
- <string lang="ru" key="CONFIRM_VOL_HEADER_BAK">Ð’Ñ‹ дейÑтвительно хотите Ñоздать резервную копию заголовка тома Ð´Ð»Ñ %s?\n\nПри выборе 'Да' вам потребуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии заголовка.\n\nПримечание: оба заголовка - Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾ и Ñкрытого томов - будут повторно зашифрованы Ñ Ð¸Ñпользованием новой Ñоли и Ñохранены в файле резервной копии. ЕÑли внутри Ñтого тома нет Ñкрытого тома, облаÑÑ‚ÑŒ, Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð² резервной копии под заголовок Ñкрытого тома, будет заполнена Ñлучайными данными (Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти правдоподобного Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‡Ð°ÑтноÑти). При воÑÑтановлении заголовка тома из файла резервной копии вам потребуетÑÑ Ð²Ð²ÐµÑти правильный пароль и/или предоÑтавить корректные ключевые файлы, дейÑтвительные на момент ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии заголовка тома. По паролю (и/или ключевым файлам) также будет автоматичеÑки определÑÑ‚ÑŒÑÑ Ñ‚Ð¸Ð¿ заголовка тома Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - обычный или Ñкрытый (учтите, что VeraCrypt определÑет тип методом проб и ошибок).</string>
- <string lang="ru" key="CONFIRM_VOL_HEADER_RESTORE">Ð’Ñ‹ дейÑтвительно хотите воÑÑтановить заголовок тома %s?\n\nÐ’ÐИМÐÐИЕ: При воÑÑтановлении заголовка также будет воÑÑтановлен пароль тома, который дейÑтвовал на момент Ð¸Ð·Ð³Ð¾Ñ‚Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии. Более того, еÑли на момент ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° также требовалиÑÑŒ ключевые файлы, поÑле воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ тома понадобÑÑ‚ÑÑ Ñти же ключевые файлы.\n\nÐажмите 'Да', чтобы выбрать файл Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копией заголовка.</string>
+ <string lang="ru" key="KEYFILE_ALREADY_EXISTS">Ключевой файл '%s' уже ÑущеÑтвует.\nПерезапиÑать его? При ответе 'Ðет' процеÑÑ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ оÑтановлен.</string>
+ <string lang="ru" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">Ð’ÐИМÐÐИЕ: Повреждён заголовок Ñтого тома! Была автоматичеÑки иÑпользована Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°, вÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð² том.\n\nСледует иÑправить заголовок, выбрав 'СервиÑ' &gt; 'ВоÑÑтановить заголовок тома'.</string>
+ <string lang="ru" key="VOL_HEADER_BACKED_UP">Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° тома уÑпешно Ñоздана.\n\nÐ’ÐЖÐО: При воÑÑтановлении заголовка из Ñтой резервной копии также будет воÑÑтановлен и текущий пароль тома. Более того, еÑли Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° требуютÑÑ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ðµ файлы, поÑле воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° из копии Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° понадобÑÑ‚ÑÑ Ñ‚Ðµ же ключевые файлы.\n\nÐ’ÐИМÐÐИЕ: Эту копию заголовка тома можно иÑпользовать Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ТОЛЬКО Ñтого конкретного тома. ЕÑли применить Ñту копию Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° другого тома, Ñмонтировать том вы Ñможете, но ÐЕ удаÑÑ‚ÑÑ Ñ€Ð°Ñшифровать никакие данные в Ñтом томе (так как Ñто изменит его маÑтер-ключ).</string>
+ <string lang="ru" key="VOL_HEADER_RESTORED">Заголовок тома уÑпешно воÑÑтановлен.\n\nÐ’ÐЖÐО: Имейте в виду, что вмеÑте Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð¼ мог быть воÑÑтановлен и прежний пароль.\nБолее того, еÑли на момент ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°\nтребовалиÑÑŒ ключевые файлы, Ñти же ключевые файлы понадобÑÑ‚ÑÑ\nÐ´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ тома ÑейчаÑ.</string>
+ <string lang="ru" key="EXTERNAL_VOL_HEADER_BAK_FIRST_INFO">Ð’ целÑÑ… безопаÑноÑти, Ð´Ð»Ñ Ñтого тома потребуетÑÑ Ð²Ð²ÐµÑти правильный пароль\n(и/или предоÑтавить корректные ключевые файлы).\n\nПримечание: еÑли в Ñтом томе еÑÑ‚ÑŒ Ñкрытый том, Ñначала нужно ввеÑти правильный пароль\n(и/или предоÑтавить корректные ключевые файлы) Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома.\nЗатем, еÑли выбрано резервное копирование заголовка Ñкрытого тома, нужно будет\nуказать правильный пароль (и/или предоÑтавить корректные ключевые файлы) Ð´Ð»Ñ Ñкрытого тома.</string>
+ <string lang="ru" key="CONFIRM_VOL_HEADER_BAK">Ð’Ñ‹ дейÑтвительно хотите Ñоздать резервную копию заголовка тома Ð´Ð»Ñ %s?\n\nПри выборе 'Да' потребуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии заголовка.\n\nПримечание: оба заголовка - Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾ и Ñкрытого томов - будут повторно зашифрованы Ñ Ð½Ð¾Ð²Ð¾Ð¹ Ñолью и Ñохранены в резервной копии. ЕÑли внутри Ñтого тома нет Ñкрытого тома, облаÑÑ‚ÑŒ, Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð² резервной копии под заголовок Ñкрытого тома, будет заполнена Ñлучайными данными (чтобы можно было правдоподобно отрицать причаÑтноÑÑ‚ÑŒ). При воÑÑтановлении заголовка тома из резервной копии потребуетÑÑ Ð²Ð²ÐµÑти правильный пароль и/или предоÑтавить корректные ключевые файлы, дейÑтвительные на момент ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии заголовка тома. По паролю (и/или ключевым файлам) также будет автоматичеÑки определÑÑ‚ÑŒÑÑ Ñ‚Ð¸Ð¿ заголовка тома Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - обычный или Ñкрытый (VeraCrypt определÑет тип методом проб и ошибок).</string>
+ <string lang="ru" key="CONFIRM_VOL_HEADER_RESTORE">Ð’Ñ‹ дейÑтвительно хотите воÑÑтановить заголовок тома %s?\n\nÐ’ÐИМÐÐИЕ: При воÑÑтановлении заголовка будет воÑÑтановлен пароль тома, который дейÑтвовал при Ñоздании резервной копии. Более того, еÑли на момент ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° также требовалиÑÑŒ ключевые файлы, поÑле воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° понадобÑÑ‚ÑÑ Ñ‚Ðµ же ключевые файлы.\n\nÐажмите 'Да', чтобы выбрать файл Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копией заголовка.</string>
<string lang="ru" key="DOES_VOLUME_CONTAIN_HIDDEN">ИмеетÑÑ Ð»Ð¸ в томе Ñкрытый том?</string>
- <string lang="ru" key="VOLUME_CONTAINS_HIDDEN">Ð’ томе имеетÑÑ Ñкрытый том</string>
+ <string lang="ru" key="VOLUME_CONTAINS_HIDDEN">Ð’ томе еÑÑ‚ÑŒ Ñкрытый том</string>
<string lang="ru" key="VOLUME_DOES_NOT_CONTAIN_HIDDEN">Ð’ томе нет Ñкрытого тома</string>
<string lang="ru" key="HEADER_RESTORE_EXTERNAL_INTERNAL">Выберите тип резервной копии заголовка тома:</string>
- <string lang="ru" key="HEADER_RESTORE_INTERNAL">ВоÑÑтановить заголовок тома из копии, вÑтроенной в том</string>
- <string lang="ru" key="HEADER_RESTORE_EXTERNAL">ВоÑÑтановить заголовок тома из внешнего файла Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копией</string>
+ <string lang="ru" key="HEADER_RESTORE_INTERNAL">ВоÑÑтановить заголовок из копии, вÑтроенной в том</string>
+ <string lang="ru" key="HEADER_RESTORE_EXTERNAL">ВоÑÑтановить заголовок из внешнего файла Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копией</string>
<string lang="ru" key="HEADER_BACKUP_SIZE_INCORRECT">Ðеверный размер файла Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копией заголовка тома.</string>
- <string lang="ru" key="VOLUME_HAS_NO_BACKUP_HEADER">Ð’ Ñтом томе нет вÑтроенной копии заголовка (учтите, что вÑтроенные копии заголовков Ñодержат только тома, Ñозданные VeraCrypt 6.0 или новее).</string>
+ <string lang="ru" key="VOLUME_HAS_NO_BACKUP_HEADER">Ð’ Ñтом томе нет вÑтроенной копии заголовка (вÑтроенные копии заголовков еÑÑ‚ÑŒ только в томах, Ñозданных VeraCrypt 6.0 или новее).</string>
<string lang="ru" key="BACKUP_HEADER_NOT_FOR_SYS_DEVICE">Ð’Ñ‹ пытаетеÑÑŒ Ñоздать резервную копию заголовка ÑиÑтемного раздела/диÑка. Это не разрешено. Операции резервного копированиÑ/воÑÑтановлениÑ, отноÑÑщиеÑÑ Ðº ÑиÑтемному разделу/диÑку, можно выполнÑÑ‚ÑŒ только Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk).\n\nСоздать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt?</string>
<string lang="ru" key="RESTORE_HEADER_NOT_FOR_SYS_DEVICE">Ð’Ñ‹ пытаетеÑÑŒ воÑÑтановить из резервной копии заголовок виртуального тома VeraCrypt, но выбрали ÑиÑтемный раздел/диÑк. Это не разрешено. Операции резервного копированиÑ/воÑÑтановлениÑ, отноÑÑщиеÑÑ Ðº ÑиÑтемному разделу/диÑку, можно выполнÑÑ‚ÑŒ только Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk).\n\nСоздать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt?</string>
<string lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_SELECT_PATH">ПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ OK выберите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð·Ð° нового диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk) и меÑто, где его нужно Ñохранить.</string>
- <string lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_BURN">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в файле: %s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ нужно запиÑать Ñтот образ на CD или DVD.\n\nÐ’ÐЖÐО: Этот файл-образ должен быть запиÑан на CD/DVD как ISO-образ диÑка (а не как отдельный файл). Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± Ñтом вы можете найти в документации к Ñвоему ПО Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи CD/DVD.\n\nЗапиÑав диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° CD/DVD, выберите 'СиÑтема' &gt; 'Проверить диÑк воÑÑтановлениÑ', чтобы убедитьÑÑ Ð² корректноÑти запиÑи Ñозданного диÑка.</string>
- <string lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в файле: %s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ нужно запиÑать Ñтот образ на CD или DVD.\n\nЗапуÑтить программу запиÑи оптичеÑких диÑков Windows?\n\nЗапиÑав диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° CD/DVD, выберите 'СиÑтема' &gt; 'Проверить диÑк воÑÑтановлениÑ', чтобы убедитьÑÑ Ð² корректноÑти запиÑи Ñозданного диÑка.</string>
- <string lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Чтобы проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, вÑтавьте его в и нажмите OK.</string>
+ <string 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; 'Проверить диÑк воÑÑтановлениÑ', чтобы убедитьÑÑ Ð² корректноÑти запиÑи Ñозданного диÑка.</string>
+ <string lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в файле\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ нужно запиÑать Ñтот образ на CD или DVD.\n\nЗапуÑтить программу запиÑи оптичеÑких диÑков Windows?\n\nЗапиÑав диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° CD/DVD, выберите 'СиÑтема' &gt; 'Проверить диÑк воÑÑтановлениÑ', чтобы убедитьÑÑ Ð² корректноÑти запиÑи Ñозданного диÑка.</string>
+ <string lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Чтобы проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, вÑтавьте его в накопитель и нажмите OK.</string>
<string lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">ДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt проверен. Ð’ÑÑ‘ в порÑдке.</string>
- <string lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ запиÑи диÑка воÑÑтановлениÑ.\n\nЕÑли вы запиÑали диÑк воÑÑтановлениÑ, выньте CD/DVD из Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ вÑтавьте Ñнова; затем нажмите 'Далее', чтобы повторить попытку. ЕÑли Ñто не поможет, попробуйте воÑпользоватьÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ ПО Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи CD/DVD и/или другим CD/DVD.\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñозданный Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом, паролем, Ñолью и т.д., знайте, что такой диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÂ Ð¿Ñ€Ð¾Ð¹Ð´Ñ‘Ñ‚ Ñту проверку никогда. Чтобы Ñоздать новый диÑк воÑÑтановлениÑ, полноÑтью ÑовмеÑтимый Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ конфигурацией, выберите меню 'СиÑтема' &gt; 'Создать диÑк воÑÑтановлениÑ'.</string>
- <string lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">ISO-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt прошёл проверку уÑпешно.</string>
- <string lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">ISO-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt не прошёл проверку.\n\nЕÑли вы пыталиÑÑŒ проверить ISO-образ, Ñозданный Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… маÑтер-ключа, паролÑ, Ñоли и т.д., то учтите, что проверка такого ISO-образа будет вÑегда давать ошибку. Чтобы Ñоздать новый ISO-образ диÑка воÑÑтановлениÑ, полноÑтью ÑовмеÑтимый Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ конфигурацией, выберите 'СиÑтема' > 'Создать диÑк воÑÑтановлениÑ'.</string>
- <string lang="ru" key="ERROR_CREATING_RESCUE_DISK">Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка аварийного воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt.</string>
- <string lang="ru" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">ДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздавать при запущенной Ñкрытой операционной ÑиÑтеме.\n\nЧтобы Ñоздать диÑк воÑÑтановлениÑ, загрузите обманную операционную ÑиÑтему, а затем выберите 'СиÑтема' &gt; 'Создать диÑк воÑÑтановлениÑ'.</string>
- <string lang="ru" key="RESCUE_DISK_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ запиÑи диÑка воÑÑтановлениÑ.\n\nЕÑли вы запиÑали диÑк воÑÑтановлениÑ, выньте CD/DVD из Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ вÑтавьте Ñнова; затем нажмите 'Далее', чтобы повторить попытку. ЕÑли Ñто не поможет, попробуйте воÑпользоватьÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ ноÑителем%s.\n\nЕÑли вы пока ещё не запиÑали диÑк воÑÑтановлениÑ, Ñделайте Ñто, поÑле чего нажмите 'Далее'.\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñозданный ДО запуÑка Ñтого маÑтера, знайте, что такой диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ñпользовать нельзÑ, поÑкольку он был Ñоздан Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом. Вам нужно запиÑать на CD/DVD заново Ñозданный диÑк воÑÑтановлениÑ.</string>
+ <string lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ запиÑи диÑка воÑÑтановлениÑ.\n\nЕÑли запиÑÑŒ завершена, выньте CD/DVD и вÑтавьте Ñнова, а затем повторите попытку. Ðе помогло? ВоÑпользуйтеÑÑŒ другим ПО Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи CD/DVD и/или другим CD/DVD.\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑтановлениÑ, Ñозданный Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом, паролем, Ñолью и т.д., то учтите, что проверка такого диÑка будет вÑегда давать ошибку. Чтобы Ñоздать новый диÑк, полноÑтью ÑовмеÑтимый Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ конфигурацией, выберите меню 'СиÑтема' &gt; 'Создать диÑк воÑÑтановлениÑ'.</string>
+ <string lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt уÑпешно прошёл проверку.</string>
+ <string lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt не прошёл проверку.\n\nЕÑли вы пыталиÑÑŒ проверить образ, Ñозданный Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом, паролем, Ñолью и т.д., то учтите, что проверка такого образа будет вÑегда давать ошибку. Чтобы Ñоздать новый образ диÑка воÑÑтановлениÑ, полноÑтью ÑовмеÑтимый Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ конфигурацией, выберите 'СиÑтема' > 'Создать диÑк воÑÑтановлениÑ'.</string>
+ <string lang="ru" key="ERROR_CREATING_RESCUE_DISK">Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt.</string>
+ <string lang="ru" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">ДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздавать, когда работает ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема.\n\nЧтобы Ñоздать диÑк воÑÑтановлениÑ, загрузите обманную ОС и выберите 'СиÑтема' > 'Создать диÑк воÑÑтановлениÑ'.</string>
+ <string lang="ru" key="RESCUE_DISK_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ запиÑи диÑка воÑÑтановлениÑ.\n\nЕÑли запиÑÑŒ завершена, выньте CD/DVD и вÑтавьте Ñнова; затем нажмите 'Далее', чтобы повторить попытку. ЕÑли Ñто не поможет, попробуйте воÑпользоватьÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ ноÑителем%s.\n\nЕÑли вы пока ещё не запиÑали диÑк воÑÑтановлениÑ, Ñделайте Ñто и нажмите 'Далее'.\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñозданный ДО запуÑка Ñтого маÑтера, знайте, что такой диÑк иÑпользовать нельзÑ, поÑкольку он был Ñоздан Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом. Ðужно запиÑать на CD/DVD заново Ñозданный диÑк воÑÑтановлениÑ.</string>
<string lang="ru" key="RESCUE_DISK_CHECK_FAILED_SENTENCE_APPENDIX"> и/или другим ПО Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи CD/DVD</string>
<string lang="ru" key="SYSTEM_FAVORITES_DLG_TITLE">СиÑтемные избранные тома VeraCrypt</string>
<string lang="ru" key="SYS_FAVORITES_HELP_LINK">Что такое 'ÑиÑтемные избранные тома'?</string>
@@ -997,16 +997,16 @@
<string lang="ru" key="PATH_ITEM">Путь: </string>
<string lang="ru" key="DRIVE_LETTER_ITEM">Буква диÑка: </string>
<string 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 { | } ~</string>
- <string 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 { | } ~</string>
- <string lang="ru" key="EXE_FILE_EXTENSION_CONFIRM">Ð’ÐИМÐÐИЕ: ÐаÑтоÑтельно рекомендуетÑÑ Ð¸Ð·Ð±ÐµÐ³Ð°Ñ‚ÑŒ раÑширений, иÑпользуемых Ð´Ð»Ñ Ð¸ÑполнÑемых файлов (таких, как .exe, .sys или .dll) или других, которые могут быть иÑточником потенциальных проблем. ИÑпользование таких файловых раÑширений чаÑто приводит к влиÑнию на контейнер Ñо Ñтороны Windows и антивируÑных программ, что Ñнижает производительноÑÑ‚ÑŒ тома и также может привеÑти к другим Ñерьёзным проблемам.\n\nÐаÑтоÑтельно рекомендуем вам удалить Ñто раÑширение или изменить его (например на '.hc').\n\nÐ’Ñ‹ наÑтаиваете на иÑпользовании Ñтого проблематичного раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°?</string>
- <string lang="ru" key="EXE_FILE_EXTENSION_MOUNT_WARNING">Ð’ÐИМÐÐИЕ: Этот контейнер имеет раÑширение, иÑпользуемое Ð´Ð»Ñ Ð¸ÑполнÑемых файлов (таких, как .exe, .sys или .dll) или других, которые могут быть иÑточником потенциальных проблем. ВероÑтнее вÑего Ñто приведёт к влиÑнию на данный контейнер Ñо Ñтороны Windows и антивируÑного ПО, что Ñнизит производительноÑÑ‚ÑŒ тома и может вызвать другие Ñерьёзные проблемы.\n\nÐаÑтоÑтельно рекомендуем вам удалить Ñто раÑширение у файла-контейнера или изменить его (например на '.hc') поÑле Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°.</string>
+ <string 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 { | } ~</string>
+ <string lang="ru" key="EXE_FILE_EXTENSION_CONFIRM">Ð’ÐИМÐÐИЕ: ÐаÑтоÑтельно рекомендуетÑÑ Ð¸Ð·Ð±ÐµÐ³Ð°Ñ‚ÑŒ раÑширений, иÑпользуемых Ð´Ð»Ñ Ð¸ÑполнÑемых файлов (.exe, .sys, .dll) или других, которые могут быть иÑточником потенциальных проблем. ИÑпользование таких раÑширений чаÑто приводит к влиÑнию на контейнер Ñо Ñтороны Windows и антивируÑных программ, что Ñнижает производительноÑÑ‚ÑŒ тома и также может привеÑти к другим Ñерьёзным проблемам.\n\nÐаÑтоÑтельно рекомендуем удалить Ñто раÑширение или изменить его (например на '.hc').\n\nÐ’Ñ‹ наÑтаиваете на иÑпользовании Ñтого проблематичного раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°?</string>
+ <string lang="ru" key="EXE_FILE_EXTENSION_MOUNT_WARNING">Ð’ÐИМÐÐИЕ: Этот контейнер имеет раÑширение, иÑпользуемое Ð´Ð»Ñ Ð¸ÑполнÑемых файлов (.exe, .sys, .dll) или других, которые могут быть иÑточником потенциальных проблем. ВероÑтнее вÑего Ñто приведёт к влиÑнию на данный контейнер Ñо Ñтороны Windows и антивируÑного ПО, что Ñнизит производительноÑÑ‚ÑŒ тома и может вызвать другие Ñерьёзные проблемы.\n\nÐаÑтоÑтельно рекомендуем удалить Ñто раÑширение у файла-контейнера или изменить его (например на '.hc') поÑле Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð°.</string>
<string lang="ru" key="HOMEPAGE">ДомашнÑÑ Ñтраница</string>
<string lang="ru" key="LARGE_IDE_WARNING_XP">Ð’ÐИМÐÐИЕ: Ð’ ÑиÑтеме не уÑтановлено ни одного пакета обновлений (Service Pack) Windows. ЕÑли в Windows XP не уÑтановлен Service Pack 1 (или новее), не Ñледует выполнÑÑ‚ÑŒ запиÑÑŒ на диÑки IDE объёмом более 128 ГБ, иначе возможно повреждение данных (неважно, отноÑÑÑ‚ÑÑ Ð¾Ð½Ð¸ к тому VeraCrypt или нет). Это ограничение Windows, а не ошибка в VeraCrypt.</string>
<string 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</string>
- <string 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</string>
- <string lang="ru" key="VOLUME_TOO_LARGE_FOR_FAT32">ОШИБКÐ: Файлы объёмом более 4 ГБ Ð½ÐµÐ»ÑŒÐ·Ñ ÑохранÑÑ‚ÑŒ в файловой ÑиÑтеме FAT32. ПоÑтому тома VeraCrypt на оÑнове файлов (контейнеры), хранÑщиеÑÑ Ð² файловой ÑиÑтеме FAT32, не могут быть больше 4 ГБ.\n\nЕÑли вам нужен том большего объёма, Ñоздайте его в ÑиÑтеме NTFS (либо, еÑли вы пользуетеÑÑŒ Windows Vista SP1 или новее, в файловой ÑиÑтеме exFAT), либо вмеÑто ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° на оÑнове файла зашифруйте веÑÑŒ раздел диÑка.</string>
- <string lang="ru" key="VOLUME_TOO_LARGE_FOR_WINXP">Ð’ÐИМÐÐИЕ: Windows XP не поддерживает файлы больше 2048 ГБ (ÑÐ¾Ð¾Ð±Ñ‰Ð°Ñ Ð¾ недоÑтатке Ñвободного меÑта). ПоÑтому тома VeraCrypt на оÑнове файлов (контейнеры) объёмом Ñвыше 2048 ГБ в Windows XP Ñоздавать нельзÑ.\n\nТем не менее, в Windows XP можно зашифровать диÑк целиком или Ñоздать том VeraCrypt на оÑнове раздела размером более 2048 ГБ.</string>
- <string lang="ru" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">Ð’ÐИМÐÐИЕ: ЕÑли вам нужно впоÑледÑтвии добавлÑÑ‚ÑŒ во внешний том ещё данные/файлы, Ñледует позаботитьÑÑ Ð¾Ð± уменьшении размера Ñкрытого тома.\n\nÐ’Ñ‹ хотите продолжить и иÑпользовать указанный вами размер?</string>
+ <string 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</string>
+ <string lang="ru" key="VOLUME_TOO_LARGE_FOR_FAT32">ОШИБКÐ: Ð’ файловой ÑиÑтеме FAT32 Ð½ÐµÐ»ÑŒÐ·Ñ ÑохранÑÑ‚ÑŒ файлы размером более 4 ГБ. ПоÑтому тома VeraCrypt на оÑнове файлов (контейнеры), хранÑщиеÑÑ Ð² файловой ÑиÑтеме FAT32, не могут быть больше 4 ГБ.\n\nЕÑли нужен том большего объёма, Ñоздайте его в ÑиÑтеме NTFS (или, при иÑпользовании Windows Vista SP1 или новее, в файловой ÑиÑтеме exFAT), либо вмеÑто ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° на оÑнове файла зашифруйте веÑÑŒ раздел диÑка.</string>
+ <string lang="ru" key="VOLUME_TOO_LARGE_FOR_WINXP">Ð’ÐИМÐÐИЕ: Windows XP не поддерживает файлы больше 2048 ГБ (ÑÐ¾Ð¾Ð±Ñ‰Ð°Ñ Ð¾ недоÑтатке Ñвободного меÑта). ПоÑтому в Windows XP Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздавать тома VeraCrypt на оÑнове файлов (контейнеры) объёмом Ñвыше 2048 ГБ.\n\nТем не менее, в Windows XP можно зашифровать диÑк целиком или Ñоздать том VeraCrypt на оÑнове раздела размером более 2048 ГБ.</string>
+ <string lang="ru" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">Ð’ÐИМÐÐИЕ: ЕÑли вам нужно впоÑледÑтвии добавлÑÑ‚ÑŒ во внешний том ещё данные/файлы, имеет ÑмыÑл уменьшить размер Ñкрытого тома.\n\nХотите продолжить и иÑпользовать указанный вами размер?</string>
<string lang="ru" key="NO_VOLUME_SELECTED">Ðе выбран том.\n\nÐажмите кнопку 'УÑтройÑтво' или 'Файл' и выберите том VeraCrypt.</string>
<string lang="ru" key="NO_SYSENC_PARTITION_SELECTED">Ðе выбран раздел.\n\nÐажмите кнопку 'УÑтройÑтво' и выберите неÑмонтированный раздел, который требует дозагрузочной аутентификации (например раздел на зашифрованном ÑиÑтемном диÑке Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹, не выполнÑемой ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡, или зашифрованный ÑиÑтемный раздел другой ОС).\n\nПримечание: выбранный раздел будет Ñмонтирован как обычный том VeraCrypt без дозагрузочной аутентификации. Это может понадобитьÑÑ, например, Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ починки.</string>
<string lang="ru" key="CONFIRM_SAVE_DEFAULT_KEYFILES">Ð’ÐИМÐÐИЕ: ЕÑли уÑтановлены и активированы ключевые файлы по умолчанию, монтировать ÐЕ иÑпользующие их тома будет невозможно. При монтировании таких томов не забывайте выключать опцию 'Ключевые файлы' (ниже Ð¿Ð¾Ð»Ñ Ð²Ð²Ð¾Ð´Ð° паролÑ).\n\nÐ’Ñ‹ дейÑтвительно хотите Ñохранить выбранные ключевые файлы/пути как иÑпользуемые по умолчанию?</string>
@@ -1021,251 +1021,251 @@
<string lang="ru" key="PRESS_A_KEY_TO_ASSIGN">(щёлкните здеÑÑŒ и нажмите клавишу)</string>
<string lang="ru" key="ACTION">ДейÑтвие</string>
<string lang="ru" key="SHORTCUT">БыÑтрый вызов</string>
- <string lang="ru" key="CANNOT_USE_RESERVED_KEY">Ошибка! Эта горÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° зарезервирована. Выберите другую.</string>
- <string lang="ru" key="SHORTCUT_ALREADY_IN_USE">Ошибка! Эта горÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° уже иÑпользуетÑÑ.</string>
+ <string lang="ru" key="CANNOT_USE_RESERVED_KEY">ОШИБКÐ: Эта клавиша зарезервирована. Выберите другую.</string>
+ <string lang="ru" key="SHORTCUT_ALREADY_IN_USE">ОШИБКÐ: Эта клавиша уже иÑпользуетÑÑ.</string>
<string lang="ru" key="HOTKEY_REGISTRATION_ERROR">Ð’ÐИМÐÐИЕ: Ðекоторые общеÑиÑтемные горÑчие клавиши VeraCrypt не будут работать!\n\nПроверьте, не иÑпользуютÑÑ Ð»Ð¸ те же клавиши другими приложениÑми или операционной ÑиÑтемой.</string>
- <string lang="ru" key="PAGING_FILE_CREATION_PREVENTED">Создание файла подкачки предотвращено.\n\nОбратите внимание, что из-за ÑвойÑтв Windows файлы подкачки не могут раÑполагатьÑÑ Ð½Ð° неÑиÑтемных томах VeraCrypt (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð½Ñ‹Ðµ ÑиÑтемные тома). VeraCrypt поддерживает Ñоздание файлов подкачки только на зашифрованном ÑиÑтемном разделе/диÑке.</string>
- <string lang="ru" key="SYS_ENC_HIBERNATION_PREVENTED">Из-за ошибки или неÑовмеÑтимоÑти VeraCrypt не может зашифровать файл ÑпÑщего режима (hibernation). ПоÑтому ÑпÑщий режим отключён.\n\nПримечание: когда компьютер переходит в режим Ñна (или в ÑнергоÑберегающий ждущий режим), Ñодержимое его ÑиÑтемной памÑти запиÑываетÑÑ Ð½Ð° жёÑткий диÑк в файл Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ÑпÑщего режима. VeraCrypt не может предотвратить Ñохранение открытых в ОЗУ ключей ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ñодержимого важных файлов в незашифрованном виде в файле Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ÑпÑщего режима.</string>
- <string lang="ru" key="HIDDEN_OS_HIBERNATION_PREVENTED">Ð“Ð¸Ð±ÐµÑ€Ð½Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°.\n\nVeraCrypt не поддерживает гибернацию Ñкрытых операционных ÑиÑтем, иÑпользующих дополнительный загрузочный раздел. Учтите, что загрузочный раздел иÑпользуетÑÑ ÐºÐ°Ðº обманной, так и Ñкрытой ÑиÑтемами. ПоÑтому Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚ÐµÑ‡ÐºÐ¸ данных и проблем при выходе из гибернации VeraCrypt запретил Ñкрытой ÑиÑтеме запиÑÑŒ в общий загрузочный раздел и гибернацию.</string>
+ <string lang="ru" key="PAGING_FILE_CREATION_PREVENTED">Создание файла подкачки предотвращено.\n\nОбратите внимание, что из-за оÑобенноÑтей Windows файлы подкачки не могут раÑполагатьÑÑ Ð½Ð° неÑиÑтемных томах VeraCrypt (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð½Ñ‹Ðµ ÑиÑтемные тома). VeraCrypt поддерживает Ñоздание файлов подкачки только на зашифрованном ÑиÑтемном разделе/диÑке.</string>
+ <string lang="ru" key="SYS_ENC_HIBERNATION_PREVENTED">Из-за ошибки или неÑовмеÑтимоÑти VeraCrypt не может зашифровать файл гибернации. ПоÑтому режим гибернации отключён.\n\nПримечание: когда компьютер переходит в режим гибернации (или в ÑнергоÑберегающий режим Ñна), Ñодержимое ÑиÑтемной памÑти запиÑываетÑÑ Ð½Ð° жёÑткий диÑк в файл Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ гибернации. VeraCrypt не может предотвратить Ñохранение открытых в ОЗУ ключей ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ñодержимого важных файлов в незашифрованном виде в файле гибернации.</string>
+ <string lang="ru" key="HIDDEN_OS_HIBERNATION_PREVENTED">Ð“Ð¸Ð±ÐµÑ€Ð½Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°.\n\nVeraCrypt не поддерживает гибернацию Ñкрытых операционных ÑиÑтем, иÑпользующих дополнительный загрузочный раздел. Учтите, что загрузочный раздел иÑпользуетÑÑ ÐºÐ°Ðº обманной, так и Ñкрытой ÑиÑтемами. ПоÑтому Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚ÐµÑ‡ÐºÐ¸ данных и проблем при выходе из гибернации программа VeraCrypt запретила Ñкрытой ÑиÑтеме запиÑÑŒ в общий загрузочный раздел и гибернацию.</string>
<string lang="ru" key="VOLUME_MOUNTED_AS_DRIVE_LETTER_X_DISMOUNTED">Том VeraCrypt, Ñмонтированный как %c:, размонтирован.</string>
<string lang="ru" key="MOUNTED_VOLUMES_DISMOUNTED">Тома VeraCrypt размонтированы.</string>
<string lang="ru" key="VOLUMES_DISMOUNTED_CACHE_WIPED">Смонтированные тома VeraCrypt размонтированы, кÑш паролей очищен.</string>
<string lang="ru" key="SUCCESSFULLY_DISMOUNTED">УÑпешно размонтировано</string>
- <string lang="ru" key="CONFIRM_BACKGROUND_TASK_DISABLED">Ð’ÐИМÐÐИЕ: ЕÑли запретить работу VeraCrypt в фоновом режиме, то будут отключены Ñледующие функции:\n\n1) ГорÑчие клавиши\n2) ÐвтоматичеÑкое размонтирование (например при завершении ÑеанÑа, Ñлучайном удалении хоÑÑ‚-уÑтройÑтва, иÑтечении времени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸Â Ñ‚.д.)\n3) Ðвтомонтирование избранных томов\n4) ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ (например о предотвращении Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñкрытого тома)\n5) Значок в ÑиÑтемном лотке\n\nПримечание: фоновый процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ завершить в любой момент, щёлкнув правой кнопкой мыши на значке VeraCrypt в ÑиÑтемном лотке и выбрав пункт 'Выход'.\n\nÐ’Ñ‹ дейÑтвительно хотите преманентно запретить работу VeraCrypt в фоновом режиме?</string>
+ <string lang="ru" key="CONFIRM_BACKGROUND_TASK_DISABLED">Ð’ÐИМÐÐИЕ: ЕÑли запретить работу VeraCrypt в фоновом режиме, то будут отключены Ñледующие функции:\n\n1) ГорÑчие клавиши\n2) Ðвторазмонтирование (например при завершении ÑеанÑа, Ñлучайном удалении хоÑÑ‚-уÑтройÑтва, иÑтечении времени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸Â Ñ‚.д.)\n3) Ðвтомонтирование избранных томов\n4) ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ (например о предотвращении Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñкрытого тома)\n5) Значок в облаÑти уведомлений\n\nПримечание: фоновый процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ завершить в любой момент, щёлкнув ПКМ по значку VeraCrypt в облаÑти уведомлений и выбрав 'Выход'.\n\nÐ’Ñ‹ дейÑтвительно хотите перманентно запретить фоновый режим?</string>
<string lang="ru" key="CONFIRM_NO_FORCED_AUTODISMOUNT">Ð’ÐИМÐÐИЕ: ЕÑли выключить Ñтот параметр, Ñтанет невозможно автоматичеÑки размонтировать тома, Ñодержащие открытые файлы/папки.\n\nÐ’Ñ‹ дейÑтвительно хотите выключить Ñтот параметр?</string>
- <string lang="ru" key="WARN_PREF_AUTO_DISMOUNT">Ð’ÐИМÐÐИЕ: Тома Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼Ð¸ файлами/папками ÐЕ будут автоматичеÑки размонтироватьÑÑ.\n\nЧтобы избежать такого Ñффекта, включите в Ñтом окне Ñледующий параметр: 'Ðвторазмонтировать тома даже при открытых файлах/папках'</string>
- <string lang="ru" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">Ð’ÐИМÐÐИЕ: ЕÑли уровень зарÑда батареи в ноутбуке мал, Windows может пренебрегать отправкой ÑоответÑтвующих Ñообщений в выполнÑющиеÑÑ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ входе компьютера в ÑнергоÑберегающий режим. ПоÑтому в таких ÑлучаÑÑ… авторазмонтирование томов в VeraCrypt может не Ñработать.</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_RESUME_PROMPT">Ð’Ñ‹ запланировали шифрование раздела/тома. Этот процеÑÑ Ð¿Ð¾ÐºÐ° ещё не завершён.\n\nХотите возобновить процеÑÑ ÑейчаÑ?</string>
- <string lang="ru" key="SYSTEM_ENCRYPTION_RESUME_PROMPT">Ð’Ñ‹ запланировали шифрование или дешифрование ÑиÑтемного раздела/диÑка. Этот процеÑÑ Ð¿Ð¾ÐºÐ° ещё не завершён.\n\nХотите начать (продолжить) процеÑÑ ÑейчаÑ?</string>
- <string lang="ru" key="ASK_NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL">Выдавать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾ том, хотите ли вы продолжить запланированные в данный момент операции ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÑиÑтемных разделов/томов?</string>
- <string lang="ru" key="KEEP_PROMPTING_ME">Да, ÑпроÑить</string>
+ <string lang="ru" key="WARN_PREF_AUTO_DISMOUNT">Ð’ÐИМÐÐИЕ: Тома Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼Ð¸ файлами/папками ÐЕ будут автоматичеÑки размонтироватьÑÑ.\n\nЧтобы избежать Ñтого, включите в данном окне параметр 'Ðвторазмонтировать тома даже при открытых файлах/папках'</string>
+ <string lang="ru" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">Ð’ÐИМÐÐИЕ: ЕÑли в ноутбуке низкий уровень зарÑда батареи, Windows может не отправлÑÑ‚ÑŒ ÑоответÑтвующие ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² выполнÑющиеÑÑ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ входе в ÑнергоÑберегающий режим. ПоÑтому в таких ÑлучаÑÑ… авторазмонтирование томов в VeraCrypt может не Ñработать.</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_RESUME_PROMPT">Ð’Ñ‹ запланировали (де)шифрование раздела/тома. Этот процеÑÑ Ð¿Ð¾ÐºÐ° не завершён.\n\nВозобновить его ÑейчаÑ?</string>
+ <string lang="ru" key="SYSTEM_ENCRYPTION_RESUME_PROMPT">Ð’Ñ‹ запланировали шифрование или дешифрование ÑиÑтемного раздела/диÑка. Этот процеÑÑ Ð¿Ð¾ÐºÐ° не завершён.\n\nÐачать (продолжить) процеÑÑ ÑейчаÑ?</string>
+ <string lang="ru" key="ASK_NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL">Спрашивать о продолжении запланированного на данный момент (де)ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÑиÑтемных разделов/томов?</string>
+ <string lang="ru" key="KEEP_PROMPTING_ME">Да, Ñпрашивать</string>
<string lang="ru" key="DO_NOT_PROMPT_ME">Ðет, не Ñпрашивать</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">Ð’ÐЖÐО: Ðе забывайте, что вы можете продолжить шифрование любого неÑиÑтемного раздела/тома, выбрав в меню главного окна VeraCrypt пункт 'Тома' &gt; 'Продолжить прерванный процеÑÑ'.</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">Ð’ÐЖÐО: Ðе забывайте, что вы можете продолжить (де)шифрование любого неÑиÑтемного раздела/тома, выбрав в меню главного окна VeraCrypt пункт 'Тома' &gt; 'Продолжить прерванный процеÑÑ'.</string>
<string lang="ru" key="SYSTEM_ENCRYPTION_SCHEDULED_BUT_PBA_FAILED">Ð’Ñ‹ запланировали шифрование или дешифрование ÑиÑтемного раздела/диÑка, но не пройдена (или была пропущена) Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ.\n\nПримечание: при дешифровании ÑиÑтемного раздела/диÑка в дозагрузочном окружении может потребоватьÑÑ Ñ„Ð¸Ð½Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑа путём выбора команды 'СиÑтема' &gt; 'Перманентно раÑшифровать ÑиÑтемный раздел/диÑк' в меню главного окна VeraCrypt.</string>
- <string lang="ru" key="CONFIRM_EXIT">Ð’ÐИМÐÐИЕ: ЕÑли закрыть VeraCrypt ÑейчаÑ, будут отключены Ñледующие функции:\n\n1) ГорÑчие клавиши\n2) ÐвтоматичеÑкое размонтирование (например при завершении ÑеанÑа, Ñлучайном удалении хоÑÑ‚-уÑтройÑтва, иÑтечении времени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸Â Ñ‚.д.)\n3) Ðвтомонтирование избранных томов\n4) ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ (например о предотвращении Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñкрытого тома)\n\nПримечание: еÑли вы не хотите, чтобы поÑле Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾ÐºÐ½Ð° VeraCrypt программа продолжала работать в фоновом режиме, выключите ÑоответÑтвующий параметр в её наÑтройках (а также, еÑли Ñто необходимо, автозапуÑк VeraCrypt).\n\nÐ’Ñ‹ дейÑтвительно хотите закрыть VeraCrypt?</string>
+ <string lang="ru" key="CONFIRM_EXIT">Ð’ÐИМÐÐИЕ: ЕÑли закрыть VeraCrypt ÑейчаÑ, будут отключены Ñледующие функции:\n\n1) ГорÑчие клавиши\n2) Ðвторазмонтирование (при завершении ÑеанÑа, нечаÑнном удалении хоÑÑ‚-уÑтройÑтва, иÑтечении времени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸Â Ñ‚.д.)\n3) Ðвтомонтирование избранных томов\n4) ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ (например о предотвращении Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñкрытого тома)\n\nПримечание: еÑли вы не хотите, чтобы поÑле Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾ÐºÐ½Ð° VeraCrypt программа продолжала работать в фоновом режиме, выключите ÑоответÑтвующий параметр в её наÑтройках (а также, при необходимоÑти, автозапуÑк VeraCrypt).\n\nÐ’Ñ‹ дейÑтвительно хотите закрыть VeraCrypt?</string>
<string lang="ru" key="CONFIRM_EXIT_UNIVERSAL">Выход?</string>
- <string lang="ru" key="CHOOSE_ENCRYPT_OR_DECRYPT">VeraCrypt не обладает доÑтаточной информацией, чтобы определить, какую операцию выполнить - шифрование или дешифрование.</string>
- <string lang="ru" key="CHOOSE_ENCRYPT_OR_DECRYPT_FINALIZE_DECRYPT_NOTE">VeraCrypt не обладает доÑтаточной информацией, чтобы определить, какую операцию выполнить - шифрование или дешифрование.\n\nПримечание: при дешифровании ÑиÑтемного раздела/диÑка в дозагрузочном окружении может потребоватьÑÑ Ñ„Ð¸Ð½Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ процеÑÑ, нажав Decrypt.</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_REVERSE_INFO">Примечание: еÑли вы шифруете неÑиÑтемный раздел/диÑк 'на меÑте' и не можете завершить процеÑÑ Ð¸Ð·-за какой-либо поÑтоÑнно повторÑющейÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¸, вы не Ñможете Ñмонтировать Ñтот том (и получить доÑтуп к хранÑщимÑÑ Ð² нём данным), пока полноÑтью не РÐСШИФРУЕТЕ Ñтот том (Ñ‚.е. выполните обратный процеÑÑ).\n\nЭто можно Ñделать так:\n1) Выйдите из Ñтого маÑтера.\n2) Ð’ главном окне VeraCrypt выберите 'Тома' &gt; 'Продолжить прерванный процеÑÑ'.\n3) Выберите 'ДешифрациÑ'.</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_DEFER_CONFIRM">Ð’Ñ‹ хотите прервать процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°/тома, отложив его на будущее?\n\nПримечание: помните, что пока том не будет полноÑтью зашифрован, его Ð½ÐµÐ»ÑŒÐ·Ñ Ñмонтировать. Позже процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ будет возобновить Ñ Ñ‚Ð¾Ð¹ точки, где он был оÑтановлен. Это можно Ñделать, например, выбрав команду 'Тома' &gt; 'Продолжить прерванный процеÑÑ' в меню главного окна VeraCrypt.</string>
- <string lang="ru" key="SYSTEM_ENCRYPTION_DEFER_CONFIRM">Хотите прервать и отложить процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного раздела/диÑка?\n\nПримечание: позже процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ будет возобновить Ñ Ñ‚Ð¾Ð¹ точки, где он был оÑтановлен. Это можно Ñделать, например, выбрав в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Продолжить прерванный процеÑÑ'. ЕÑли вы хотите окончательно прервать процеÑÑ Ð¸Ð»Ð¸ ÑовÑем отказатьÑÑ Ð¾Ñ‚ шифрованиÑ, выберите 'СиÑтема' &gt; 'Перманентно раÑшифровать ÑиÑтемный раздел/диÑк'.</string>
- <string lang="ru" key="SYSTEM_DECRYPTION_DEFER_CONFIRM">Хотите прервать и отложить процеÑÑ Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного раздела/диÑка?\n\nПримечание: позже процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ будет возобновить Ñ Ñ‚Ð¾Ð¹ точки, где он был оÑтановлен. Это можно Ñделать, например, выбрав в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Продолжить прерванный процеÑÑ'. ЕÑли вы хотите отказатьÑÑ Ð¾Ñ‚ Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (и начать шифрование), выберите 'СиÑтема' &gt; 'Зашифровать ÑиÑтемный раздел/диÑк'.</string>
- <string lang="ru" key="FAILED_TO_INTERRUPT_SYSTEM_ENCRYPTION">Ошибка! Ðе удалоÑÑŒ прервать шифрование/дешифрование ÑиÑтемного раздела/диÑка.</string>
- <string lang="ru" key="FAILED_TO_INTERRUPT_WIPING">Ошибка! Ðевозможно прервать процеÑÑ Ð¾Ñ‡Ð¸Ñтки (Ð·Ð°Ñ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…).</string>
- <string lang="ru" key="FAILED_TO_RESUME_SYSTEM_ENCRYPTION">Ошибка! Ðе удалоÑÑŒ возобновить прерванное шифрование/дешифрование ÑиÑтемного раздела/диÑка.</string>
- <string lang="ru" key="FAILED_TO_START_WIPING">Ошибка! Ðевозможно начать процеÑÑ Ð¾Ñ‡Ð¸Ñтки (Ð·Ð°Ñ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…).</string>
- <string lang="ru" key="INCONSISTENCY_RESOLVED">ÐеÑоответÑтвие уÑтранено.\n\n\n(ЕÑли вы Ñообщаете нам о ÑвÑзанной Ñ Ñтим ошибке, включите в Ñвой отчёт Ñледующую техничеÑкую информацию: %hs)</string>
- <string lang="ru" key="UNEXPECTED_STATE">Ошибка! ÐеизвеÑтное ÑоÑтоÑние.\n\n\n(ЕÑли вы Ñообщаете нам о ÑвÑзанной Ñ Ñтим ошибке, включите в Ñвой отчёт Ñледующую техничеÑкую информацию: %hs)</string>
- <string lang="ru" key="NO_SYS_ENC_PROCESS_TO_RESUME">Ðет прерванных процеÑÑов шифрованиÑ/Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного раздела/диÑка, которые можно продолжить.\n\nПримечание: чтобы возобновить прерванный процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ/Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÑиÑтемного раздела/диÑка, выберите 'Тома' &gt; 'Возобновить прерванный процеÑÑ'.</string>
- <string lang="ru" key="HIDVOL_PROT_BKG_TASK_WARNING">Ð’ÐИМÐÐИЕ: Фоновый процеÑÑ VeraCrypt отключён. При выходе из VeraCrypt вы не будете извещены о предотвращении Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñкрытого тома.\n\nПримечание: фоновый процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ закрыть в любой момент, щёлкнув правой кнопкой мыши на значке VeraCrypt в ÑиÑтемном лотке и выбрав 'Выход'.\n\nВключить фоновый процеÑÑ VeraCrypt?</string>
+ <string lang="ru" key="CHOOSE_ENCRYPT_OR_DECRYPT">ÐедоÑтаточно информации, чтобы определить, какую операцию выполнить - шифрование или дешифрование.</string>
+ <string lang="ru" key="CHOOSE_ENCRYPT_OR_DECRYPT_FINALIZE_DECRYPT_NOTE">ÐедоÑтаточно информации, чтобы определить, какую операцию выполнить - шифрование или дешифрование.\n\nПримечание: при дешифровании ÑиÑтемного раздела/диÑка в дозагрузочном окружении может потребоватьÑÑ Ñ„Ð¸Ð½Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ процеÑÑ, нажав Decrypt.</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_REVERSE_INFO">Примечание: еÑли при шифровании неÑиÑтемного раздела/диÑка 'на меÑте' не удаётÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒ процеÑÑ Ð¸Ð·-за какой-либо поÑтоÑнно повторÑющейÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¸, вы не Ñможете Ñмонтировать Ñтот том (и получить доÑтуп к хранÑщимÑÑ Ð² нём данным), пока полноÑтью не РÐСШИФРУЕТЕ Ñтот том (Ñ‚.е. выполните обратный процеÑÑ).\n\nЭто можно Ñделать так:\n1) Выйдите из Ñтого маÑтера.\n2) Ð’ главном окне VeraCrypt выберите 'Тома' &gt; 'Продолжить прерванный процеÑÑ'.\n3) Выберите 'ДешифрациÑ'.</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_DEFER_CONFIRM">Хотите прервать (де)шифрование раздела/тома, отложив его на будущее?\n\nУчтите, что том Ð½ÐµÐ»ÑŒÐ·Ñ Ñмонтировать, пока он не будет полноÑтью зашифрован или раÑшифрован. Позже (де)шифрование можно будет возобновить Ñ Ñ‚Ð¾Ð¹ точки, где оно было оÑтановлено, выбрав команду 'Тома' &gt; 'Продолжить прерванный процеÑÑ' в меню главного окна VeraCrypt.</string>
+ <string lang="ru" key="SYSTEM_ENCRYPTION_DEFER_CONFIRM">Хотите прервать и отложить шифрование ÑиÑтемного раздела/диÑка?\n\nПозже процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ будет возобновить Ñ Ñ‚Ð¾Ð¹ точки, где он был оÑтановлен, выбрав в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Продолжить прерванный процеÑÑ'. ЕÑли вы хотите окончательно прервать процеÑÑ Ð¸Ð»Ð¸ вовÑе отказатьÑÑ Ð¾Ñ‚ шифрованиÑ, выберите 'СиÑтема' &gt; 'Перманентно раÑшифровать ÑиÑтемный раздел/диÑк'.</string>
+ <string lang="ru" key="SYSTEM_DECRYPTION_DEFER_CONFIRM">Хотите прервать и отложить дешифрование ÑиÑтемного раздела/диÑка?\n\nПозже процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ будет возобновить Ñ Ñ‚Ð¾Ð¹ точки, где он был оÑтановлен, выбрав в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Продолжить прерванный процеÑÑ'. Чтобы отказатьÑÑ Ð¾Ñ‚ Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (и начать шифрование), выберите 'СиÑтема' &gt; 'Зашифровать ÑиÑтемный раздел/диÑк'.</string>
+ <string lang="ru" key="FAILED_TO_INTERRUPT_SYSTEM_ENCRYPTION">ОШИБКÐ: Ðе удалоÑÑŒ прервать (де)шифрование ÑиÑтемного раздела/диÑка.</string>
+ <string lang="ru" key="FAILED_TO_INTERRUPT_WIPING">ОШИБКÐ: Ðе удалоÑÑŒ прервать удаление (затирание) данных.</string>
+ <string lang="ru" key="FAILED_TO_RESUME_SYSTEM_ENCRYPTION">ОШИБКÐ: Ðе удалоÑÑŒ возобновить прерванное (де)шифрование ÑиÑтемного раздела/диÑка.</string>
+ <string lang="ru" key="FAILED_TO_START_WIPING">ОШИБКÐ: Ðе удалоÑÑŒ начать удаление (затирание) данных.</string>
+ <string lang="ru" key="INCONSISTENCY_RESOLVED">ÐеÑоответÑтвие уÑтранено.\n\n\n(ЕÑли вы Ñообщаете нам о ÑвÑзанной Ñ Ñтим ошибке, включите в отчёт Ñледующую информацию: %hs)</string>
+ <string lang="ru" key="UNEXPECTED_STATE">ОШИБКÐ: ÐеизвеÑтное ÑоÑтоÑние.\n\n\n(ЕÑли вы Ñообщаете нам о ÑвÑзанной Ñ Ñтим ошибке, включите в отчёт Ñледующую информацию: %hs)</string>
+ <string lang="ru" key="NO_SYS_ENC_PROCESS_TO_RESUME">Ðет прерванных процеÑÑов (де)ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного раздела/диÑка, которые можно продолжить.\n\nЧтобы возобновить прерванное (де)шифрование ÐЕÑиÑтемного раздела/диÑка, выберите 'Тома' &gt; 'Продолжить прерванный процеÑÑ'.</string>
+ <string lang="ru" key="HIDVOL_PROT_BKG_TASK_WARNING">Ð’ÐИМÐÐИЕ: Отключён фоновый процеÑÑ VeraCrypt. При выходе из VeraCrypt не будет Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¾ предотвращении Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñкрытого тома.\n\nПримечание: фоновый процеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ закрыть в любой момент, щёлкнув ПКМ по значку VeraCrypt в облаÑти уведомлений и выбрав 'Выход'.\n\nВключить фоновый процеÑÑ VeraCrypt?</string>
<string lang="ru" key="LANG_PACK_VERSION">ВерÑÐ¸Ñ Ñзыкового модулÑ: %s</string>
<string lang="ru" key="CHECKING_FS">Проверка файловой ÑиÑтемы тома VeraCrypt, Ñмонтированного как %s...</string>
<string lang="ru" key="REPAIRING_FS">Попытка иÑправить файловую ÑиÑтему тома VeraCrypt, Ñмонтированного как %s...</string>
- <string lang="ru" key="WARN_64_BIT_BLOCK_CIPHER">Ð’ÐИМÐÐИЕ: Этот том зашифрован Ñ Ð¸Ñпользованием уÑтаревшего алгоритма.\n\nÐ’Ñе алгоритмы ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ 64-бит блоками (например Blowfish, CAST-128, Triple DES) вышли из употреблениÑ. Ð’ поÑледующих верÑиÑÑ… VeraCrypt монтирование Ñтого тома будет возможно, однако никаких улучшений в реализации Ñтих уÑтаревших алгоритмов ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÂ Ð¿Ñ€ÐµÐ´Ð²Ð¸Ð´Ð¸Ñ‚ÑÑ. Рекомендуем вам Ñоздать новый том VeraCrypt Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ по алгоритму Ñо 128-бит блоками (например AES, Serpent, Twofish и др.) и перенеÑти вÑе файлы из Ñтого тома в новый.</string>
+ <string lang="ru" key="WARN_64_BIT_BLOCK_CIPHER">Ð’ÐИМÐÐИЕ: Этот том зашифрован Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ уÑтаревшего алгоритма.\n\nÐ’Ñе алгоритмы ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ 64-бит блоками (например Blowfish, CAST-128, Triple DES) вышли из употреблениÑ. Ð’ поÑледующих верÑиÑÑ… VeraCrypt монтирование Ñтого тома будет возможно, однако никаких улучшений в реализации Ñтих уÑтаревших алгоритмов не предвидитÑÑ. Рекомендуем Ñоздать новый том VeraCrypt Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ по алгоритму Ñо 128-бит блоками (например AES, Serpent, Twofish и др.) и перенеÑти вÑе файлы из Ñтого тома в новый.</string>
<string lang="ru" key="SYS_AUTOMOUNT_DISABLED">Ваша ÑиÑтема не наÑтроена на автомонтирование новых томов. Монтирование томов VeraCrypt на оÑнове уÑтройÑтв может оказатьÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼. Чтобы включить автомонтирование, выполните Ñледующую команду и перезагрузите ÑиÑтему:\n\nmountvol.exe /E</string>
<string lang="ru" key="SYS_ASSIGN_DRIVE_LETTER">Прежде чем продолжить, приÑвойте разделу/уÑтройÑтву букву диÑка ('Панель управлениÑ' &gt; 'ÐдминиÑтрирование' &gt; 'Управление компьютером' - 'Управление диÑками').\n\nПримечание: Ñто требование операционной ÑиÑтемы.</string>
<string lang="ru" key="MOUNT_TC_VOLUME">Смонтировать том VeraCrypt</string>
<string lang="ru" key="DISMOUNT_ALL_TC_VOLUMES">Размонтировать вÑе тома VeraCrypt</string>
<string lang="ru" key="UAC_INIT_ERROR">VeraCrypt не может получить права админиÑтратора.</string>
- <string lang="ru" key="ERR_ACCESS_DENIED">ДоÑтуп запрещён операционной ÑиÑтемой.\n\nÐ’Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð°: Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ/запиÑи данных в некоторых папках, файлах и уÑтройÑтвах Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема требует у Ð²Ð°Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ð¿Ñ€Ð°Ð² чтениÑ/запиÑи system (привилегий админиÑтратора). По умолчанию пользователю без прав админиÑтратора разрешаетÑÑ Ñоздавать читать и изменÑÑ‚ÑŒ файлы лишь в папке Ñ ÐµÐ³Ð¾ документами ('Мои документы').</string>
- <string lang="ru" key="SECTOR_SIZE_UNSUPPORTED">Ошибка! Выбранное уÑтройÑтво иÑпользует Ñектора неподдерживаемого размера.\n\nÐ’ наÑтоÑщий момент невозможно Ñоздавать разделы/тома на оÑнове уÑтройÑтв на диÑках Ñ Ñекторами размером более 4096 байт. Однако на таких диÑках можно Ñоздать тома (контейнеры) на оÑнове файлов.</string>
- <string lang="ru" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">Ð’ наÑтоÑщий момент невозможно зашифровать ÑиÑтему, уÑтановленную на диÑке Ñ Ñекторами размером отличным от 512 байт.</string>
- <string lang="ru" key="NO_SPACE_FOR_BOOT_LOADER">Ð”Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt необходимо не менее 32 КБ Ñвободного меÑта в начале ÑиÑтемного диÑка (загрузчик VeraCrypt должен раÑполагатьÑÑ Ð² Ñтой облаÑти). Ваш диÑк Ñтому уÑловию не удовлетворÑет.\n\nПожалуйÑта, ÐЕ Ñообщайте нам об Ñтом как об ошибке/проблеме в работе VeraCrypt. Чтобы решить Ñту проблему, вам нужно переразметить Ñвой диÑк, оÑтавив Ñвободными первые 32 КБ (в большинÑтве Ñлучаев доÑтаточно удалить и вновь Ñоздать первый раздел). Рекомендуем иÑпользовать Ð´Ð»Ñ Ñтого диÑпетчер разделов Microsoft, уÑтанавливаемый вмеÑте Ñ Windows.</string>
+ <string lang="ru" key="ERR_ACCESS_DENIED">ДоÑтуп запрещён операционной ÑиÑтемой.\n\nÐ’Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð°: Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ/запиÑи данных в некоторых папках, файлах и уÑтройÑтвах Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема требует Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ð¿Ñ€Ð°Ð² чтениÑ/запиÑи (привилегий админиÑтратора). По умолчанию пользователю без прав админиÑтратора разрешаетÑÑ Ñоздавать читать и изменÑÑ‚ÑŒ файлы лишь в папке Ñ ÐµÐ³Ð¾ документами ('Мои документы').</string>
+ <string lang="ru" key="SECTOR_SIZE_UNSUPPORTED">ОШИБКÐ: Выбранное уÑтройÑтво иÑпользует Ñектора неподдерживаемого размера.\n\nÐ’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ Ñоздавать разделы/тома на оÑнове уÑтройÑтв на диÑках Ñ Ñекторами более 4096 байт. Однако на таких диÑках можно Ñоздавать тома (контейнеры) на оÑнове файлов.</string>
+ <string lang="ru" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÂ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ ÑиÑтемы, уÑтановленной на диÑке Ñ Ñекторами не по 512 байт.</string>
+ <string lang="ru" key="NO_SPACE_FOR_BOOT_LOADER">Ð”Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt необходимо не менее 32 КБ Ñвободного меÑта в начале ÑиÑтемного диÑка (загрузчик должен раÑполагатьÑÑ Ð² Ñтой облаÑти). Ваш диÑк Ñтому уÑловию не удовлетворÑет.\n\nПожалуйÑта, ÐЕ Ñообщайте нам об Ñтом как об ошибке/проблеме в работе VeraCrypt. Чтобы решить Ñту проблему, нужно переразметить диÑк, оÑтавив Ñвободными первые 32 КБ (в большинÑтве Ñлучаев доÑтаточно удалить и вновь Ñоздать первый раздел). Рекомендуем иÑпользовать Ð´Ð»Ñ Ñтого диÑпетчер разделов Microsoft, уÑтанавливаемый вмеÑте Ñ Windows.</string>
<string lang="ru" key="FEATURE_UNSUPPORTED_ON_CURRENT_OS">Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½ÐµÂ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемой той верÑии, которую вы ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸Ñпользуете.</string>
<string lang="ru" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">Ð’ Ñтой верÑии операционной ÑиÑтемы VeraCrypt не поддерживает шифрование ÑиÑтемного раздела/диÑка.</string>
<string lang="ru" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Чтобы зашифровать ÑиÑтемный раздел/диÑк в Windows Vista, Ñначала нужно уÑтановить пакет Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Service Pack 1 Ð´Ð»Ñ Windows Vista или более новый (в вашей ÑиÑтеме он пока не уÑтановлен).\n\nПримечание: Service Pack 1 Ð´Ð»Ñ Windows Vista уÑтранÑет проблему Ñ Ð½ÐµÑ…Ð²Ð°Ñ‚ÐºÐ¾Ð¹ оÑновной памÑти при загрузке ÑиÑтемы.</string>
<string lang="ru" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt больше не поддерживает шифрование ÑиÑтемного раздела/диÑка в Windows Vista без уÑтановленного пакета Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (Service Pack). Прежде чем обновить VeraCrypt, уÑтановите Service Pack 1 (или новее) Ð´Ð»Ñ Windows Vista.</string>
- <string lang="ru" key="FEATURE_REQUIRES_INSTALLATION">Ошибка! Чтобы воÑпользоватьÑÑ Ñтой функцией, нужно, чтобы VeraCrypt был УСТÐÐОВЛЕРв компьютере (ÑÐµÐ¹Ñ‡Ð°Ñ VeraCrypt работает в 'переноÑном' режиме).\n\nУÑтановите (инÑталлируйте) VeraCrypt и повторите попытку.</string>
- <string lang="ru" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">Ð’ÐИМÐÐИЕ: Похоже, Windows не уÑтановлена на диÑке, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ она загружаетÑÑ. Это не поддерживаетÑÑ.\n\nВам Ñледует продолжить, только еÑли вы уверены, что Windows уÑтановлена на том же диÑке, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ она загружаетÑÑ.\n\nПродолжить?</string>
+ <string lang="ru" key="FEATURE_REQUIRES_INSTALLATION">ОШИБКÐ: Чтобы воÑпользоватьÑÑ Ñтой функцией, нужно, чтобы программа VeraCrypt была УСТÐÐОВЛЕÐРв компьютере (ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð½Ð° работает в 'переноÑном' режиме).\n\nУÑтановите (инÑталлируйте) VeraCrypt и повторите попытку.</string>
+ <string lang="ru" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">Ð’ÐИМÐÐИЕ: Похоже, Windows не уÑтановлена на диÑке, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ она загружаетÑÑ. Ð¢Ð°ÐºÐ°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÂ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ÑÑ.\n\nПродолжать Ñледует лишь в Ñлучае, еÑли вы уверены, что Windows уÑтановлена на том же диÑке, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ она загружаетÑÑ.\n\nПродолжить?</string>
<string lang="ru" key="GPT_BOOT_DRIVE_UNSUPPORTED">Ð’Ñ‹ иÑпользуете 32-разрÑдную верÑию Windows, а ÑиÑтемный диÑк имеет таблицу разделов GUID (GPT). Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ ÑиÑтемное шифрование на диÑках GPT поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в 64-разрÑдных верÑиÑÑ… Windows.</string>
- <string lang="ru" key="TC_BOOT_LOADER_ALREADY_INSTALLED">ОСТОРОЖÐО: Ðа ÑиÑтемном диÑке уже уÑтановлен загрузчик VeraCrypt!\n\nВозможно, в вашем компьютере имеетÑÑ Ð´Ñ€ÑƒÐ³Ð°Ñ ÑƒÐ¶Ðµ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑиÑтема.\n\nÐ’ÐИМÐÐИЕ: Ð’ СЛУЧÐЕ ПРОДОЛЖЕÐИЯ ШИФРОВÐÐИЯ ТЕКУЩЕЙ СИСТЕМЫ ЕСТЬ ВЕРОЯТÐОСТЬ, ЧТО ДРУГИЕ СИСТЕМЫ ÐЕ СМОГУТ ЗÐГРУЖÐТЬСЯ, РОТÐОСЯЩИЕСЯ К ÐИМ ДÐÐÐЫЕ СТÐÐУТ ÐЕДОСТУПÐЫМИ.\n\nÐ’Ñ‹ дейÑтвительно хотите продолжить?</string>
+ <string lang="ru" key="TC_BOOT_LOADER_ALREADY_INSTALLED">ОСТОРОЖÐО: Ðа ÑиÑтемном диÑке уже уÑтановлен загрузчик VeraCrypt!\n\nВозможно, в компьютере имеетÑÑ Ð´Ñ€ÑƒÐ³Ð°Ñ ÑƒÐ¶Ðµ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑиÑтема.\n\nÐ’ÐИМÐÐИЕ: ЕСЛИ ПРИСТУПИТЬ К ШИФРОВÐÐИЮ ТЕКУЩЕЙ СИСТЕМЫ, ЕСТЬ ВЕРОЯТÐОСТЬ, ЧТО ДРУГИЕ СИСТЕМЫ ÐЕ СМОГУТ ЗÐГРУЖÐТЬСЯ, РОТÐОСЯЩИЕСЯ К ÐИМ ДÐÐÐЫЕ СТÐÐУТ ÐЕДОСТУПÐЫМИ.\n\nÐ’Ñ‹ дейÑтвительно хотите продолжить?</string>
<string lang="ru" key="SYS_LOADER_RESTORE_FAILED">Ошибка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ñходного загрузчика ÑиÑтемы.\n\nИÑпользуйте диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt ('Repair Options' &gt; 'Restore original system loader') или уÑтановочный диÑк Windows, чтобы заменить загрузчик VeraCrypt ÑиÑтемным загрузчиком Windows.</string>
- <string lang="ru" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">ИÑходный ÑиÑтемный загрузчик не будет Ñохранён на диÑке воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð°: нет файла Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копией).</string>
- <string lang="ru" key="ERROR_MBR_PROTECTED">Ошибка запиÑи Ñектора MBR.\n\nBIOS в вашем ПК может быть наÑтроена на защиту Ñектора MBR. Проверьте в наÑтройках BIOS (нажмите клавишу F2, Delete или Esc Ñразу поÑле Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð°), не включена ли антивируÑнаÑ/MBR защита.</string>
- <string lang="ru" key="BOOT_LOADER_FINGERPRINT_CHECK_FAILED">Ð’ÐИМÐÐИЕ: Ошибка контрольной Ñуммы загрузчика VeraCrypt!\nВозможно, была попытка подделки информации на диÑке (атака "Evil Maid").\n\nЭто предупреждение также может поÑвитьÑÑ, еÑли вы воÑÑтановили загрузчик VeraCrypt Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ диÑка воÑÑтановлениÑ, Ñозданного другой верÑией VeraCrypt.\n\nРекомендуем немедленно изменить пароль, что одновременно воÑÑтановит нормальный загрузчик VeraCrypt. Также Ñтоит переуÑтановить VeraCrypt и принÑÑ‚ÑŒ меры по ограничению доÑтупа к Ñтому ПК нежелательных лиц.</string>
- <string lang="ru" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">Загрузчик VeraCrypt (Boot Loader) нужной верÑии ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÂ ÑƒÑтановлен. Это может препÑÑ‚Ñтвовать Ñохранению Ñ€Ñда уÑтановок.</string>
- <string lang="ru" key="CUSTOM_BOOT_LOADER_MESSAGE_HELP">Примечание: иногда бывает нужно, чтобы поÑторонний (неприÑтель), наблюдающий за Ñтартом ПК, не знал, что вы пользуетеÑÑŒ VeraCrypt. Эти параметры позволÑÑŽÑ‚ изменить Ñкран загрузки VeraCrypt. ЕÑли включить первую опцию, Ñкран загрузчика будет пуÑтым (даже при вводе неправильного паролÑ). При вводе Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐŸÐš будет выглÑдеть "завиÑшим". Кроме того, чтобы ввеÑти неприÑÑ‚ÐµÐ»Ñ Ð² заблуждение, можно включить вывод Ñвоего ÑообщениÑ. Ðапример, отображать ложные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках вроде "Missing operating system" (обычно Ñто выводит загрузчик Windows, когда не может найти загрузочный раздел Windows). Важно, однако, помнить, что еÑли неприÑтель Ñможет проанализировать Ñодержимое жёÑткого диÑка, то он Ñумеет найти на нём загрузчик VeraCrypt.</string>
- <string lang="ru" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">Ð’ÐИМÐÐИЕ: ЕÑли вы включите Ñту опцию, загрузчик VeraCrypt не будет выводить на Ñкран никаких Ñообщений (даже еÑли вы укажете неправильный пароль). При вводе Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€ будет выглÑдеть "завиÑшим" (не реагирующим), курÑор ÐЕ будет перемещатьÑÑ, а Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ ÐЕ будут ÑопровождатьÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð¾Ð¼ звёздочек.\n\nÐ’Ñ‹ дейÑтвительно хотите включить Ñту опцию?</string>
- <string lang="ru" key="SYS_PARTITION_OR_DRIVE_APPEARS_FULLY_ENCRYPTED">Ð¡ÑƒÐ´Ñ Ð¿Ð¾ вÑему, ÑиÑтемный раздел/диÑк уже полноÑтью зашифрован.</string>
+ <string lang="ru" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">ИÑходный ÑиÑтемный загрузчик не будет Ñохранён на диÑке воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (возможно, нет файла Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копией).</string>
+ <string lang="ru" key="ERROR_MBR_PROTECTED">Ошибка запиÑи Ñектора MBR.\n\nВозможно, в BIOS компьютера включена защита Ñектора MBR. Проверьте в наÑтройках BIOS (нажмите клавишу F2, Delete или Esc Ñразу поÑле Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð°), не включена ли антивируÑнаÑ/MBR защита.</string>
+ <string lang="ru" key="BOOT_LOADER_FINGERPRINT_CHECK_FAILED">Ð’ÐИМÐÐИЕ: Ошибка контрольной Ñуммы загрузчика VeraCrypt!\nВозможно, была попытка подделки информации на диÑке (атака 'Evil Maid').\n\nЭто предупреждение также может поÑвитьÑÑ, еÑли вы воÑÑтановили загрузчик VeraCrypt Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ диÑка воÑÑтановлениÑ, Ñозданного другой верÑией VeraCrypt.\n\nРекомендуем немедленно изменить пароль - Ñто воÑÑтановит нормальный загрузчик VeraCrypt. Также Ñтоит переуÑтановить VeraCrypt и ограничить нежелательным лицам доÑтуп к Ñтому ПК.</string>
+ <string lang="ru" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">Ðе уÑтановлен загрузчик VeraCrypt (Boot Loader) нужной верÑии. Это может препÑÑ‚Ñтвовать Ñохранению Ñ€Ñда параметров.</string>
+ <string lang="ru" key="CUSTOM_BOOT_LOADER_MESSAGE_HELP">Примечание: иногда нужно, чтобы поÑторонний (неприÑтель), наблюдающий за включением ПК, не знал, что вы пользуетеÑÑŒ VeraCrypt. Эти параметры позволÑÑŽÑ‚ изменить Ñкран загрузки VeraCrypt. ЕÑли включить первую опцию, Ñкран загрузчика будет пуÑтым (даже при вводе неправильного паролÑ). При вводе Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐŸÐš будет выглÑдеть 'завиÑшим'. Кроме того, чтобы ввеÑти неприÑÑ‚ÐµÐ»Ñ Ð² заблуждение, можно включить показ Ñвоего ÑообщениÑ. Ðапример, отображать ложные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках вроде 'Missing operating system' (обычно Ñто показывает загрузчик Windows, когда не может найти загрузочный раздел Windows). Учитите, однако, что еÑли у неприÑÑ‚ÐµÐ»Ñ Ð±ÑƒÐ´ÐµÑ‚ возможноÑÑ‚ÑŒ проанализировать Ñодержимое жёÑткого диÑка, то он Ñумеет найти на нём загрузчик VeraCrypt.</string>
+ <string lang="ru" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">Ð’ÐИМÐÐИЕ: ЕÑли включить Ñту опцию, загрузчик VeraCrypt не будет выводить на Ñкран никаких Ñообщений (даже еÑли указать неправильный пароль). При вводе Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€ будет выглÑдеть 'завиÑшим' (не реагирующим), курÑор ÐЕ будет перемещатьÑÑ, а Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ ÐЕ будут ÑопровождатьÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð¾Ð¼ звёздочек.\n\nÐ’Ñ‹ дейÑтвительно хотите включить Ñту опцию?</string>
+ <string lang="ru" key="SYS_PARTITION_OR_DRIVE_APPEARS_FULLY_ENCRYPTED">Ð¡ÑƒÐ´Ñ Ð¿Ð¾ вÑему, ÑиÑтемный раздел/диÑк полноÑтью зашифрован.</string>
<string lang="ru" key="SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK">VeraCrypt не поддерживает шифрование ÑиÑтемного диÑка, который был преобразован в динамичеÑкий диÑк.</string>
- <string lang="ru" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">СиÑтемный диÑк Ñодержит раÑширенные (логичеÑкие) разделы.\n\nÐ’Ñ‹ можете зашифровать веÑÑŒ ÑиÑтемный диÑк, Ñодержащий раÑширенные (логичеÑкие) разделы, только в Windows Vista и более новых верÑиÑÑ… Windows. Ð’ Windows XP зашифровать веÑÑŒ ÑиÑтемный диÑк можно при уÑловии, что он Ñодержит только первичные разделы.\n\n!!! Тем не менее, вмеÑто вÑего ÑиÑтемного диÑка вы можете зашифровать ÑиÑтемный раздел (а также Ñоздавать тома VeraCrypt на оÑнове разделов внутри любых неÑиÑтемных разделов на диÑке).</string>
- <string lang="ru" key="WDE_EXTENDED_PARTITIONS_WARNING">Ð’ÐИМÐÐИЕ: Так как вы работаете в Windows XP/2003, поÑле запуÑка ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка на нём ÐЕЛЬЗЯ Ñоздавать раÑширенные (логичеÑкие) разделы (разрешаетÑÑ Ñоздавать только первичные разделы). Любой раÑширенный (логичеÑкий) раздел на диÑке поÑле начала ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтанет недоÑтупным (ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð° диÑке нет таких разделов).\n\nПримечание: еÑли Ñто ограничение Ð´Ð»Ñ Ð²Ð°Ñ Ð½ÐµÐ¿Ñ€Ð¸ÐµÐ¼Ð»ÐµÐ¼Ð¾, вернитеÑÑŒ и выберите шифрование только ÑиÑтемного раздела, а не вÑего диÑка (также вы можете Ñоздать тома VeraCrypt на оÑнове разделов внутри любых не-ÑиÑтемных разделов на диÑке).\n\nЕÑли данное ограничение вам не подходит, вы можете перейти на Windows Vista или более новую верÑию Windows (шифрование вÑего ÑиÑтемного диÑка, Ñодержащего раÑширенные/логичеÑкие разделы, доÑтупно только в Windows Vista или более новых верÑиÑÑ…).</string>
- <string lang="ru" key="SYSDRIVE_NON_STANDARD_PARTITIONS">СиÑтемный диÑк Ñодержит неÑтандартный раздел.\n\nЕÑли вы иÑпользуете ноутбук, на ÑиÑтемном диÑке, вероÑтно, находитÑÑ Ð¾Ñобый раздел Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ. ПоÑле ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñего ÑиÑтемного диÑка (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð»ÑŽÐ±Ð¾Ð¹ раздел Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ) вы можете лишитьÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти загрузить ОС, еÑли в вашем ПК - не вполне ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ BIOS. Также, пока не будет дешифрован ÑиÑтемный диÑк, может оказатьÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼ иÑпользовать раздел Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ. ПоÑтому рекомендуем вам шифровать только ÑиÑтемный раздел.</string>
- <string lang="ru" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Хотите зашифровать вмеÑто вÑего диÑка только ÑиÑтемный раздел?\n\nОбратите внимание, что вы можете Ñоздавать тома VeraCrypt на оÑнове разделов внутри любых не-ÑиÑтемных разделов на диÑке (в добавок к шифрованию ÑиÑтемного раздела).</string>
- <string lang="ru" key="WHOLE_SYC_DEVICE_RECOM">ПоÑкольку ÑиÑтемный диÑк Ñодержит только один раздел, занимающий веÑÑŒ диÑк, предпочтительнее (более безопаÑно) зашифровать веÑÑŒ диÑк, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñвободное "резервное" меÑто, которое обычно окружает такой раздел.\n\nХотите зашифровать веÑÑŒ ÑиÑтемный диÑк?</string>
- <string lang="ru" key="TEMP_NOT_ON_SYS_PARTITION">Ваша ÑиÑтема наÑтроена так, что временные файлы хранÑÑ‚ÑÑ Ð½Ð° неÑиÑтемном разделе.\n\nВременные файлы должны хранитьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на ÑиÑтемном разделе.</string>
+ <string lang="ru" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">СиÑтемный диÑк Ñодержит раÑширенные (логичеÑкие) разделы.\n\nШифрование вÑего ÑиÑтемного диÑка, Ñодержащего раÑширенные (логичеÑкие) разделы, доÑтупно только в Windows Vista и более новых верÑиÑÑ… Windows. Ð’ Windows XP зашифровать веÑÑŒ ÑиÑтемный диÑк можно при уÑловии, что он Ñодержит только первичные разделы.\n\nТем не менее, вмеÑто вÑего ÑиÑтемного диÑка вы можете зашифровать ÑиÑтемный раздел (а также Ñоздавать тома VeraCrypt на оÑнове разделов внутри любых неÑиÑтемных разделов на диÑке).</string>
+ <string lang="ru" key="WDE_EXTENDED_PARTITIONS_WARNING">Ð’ÐИМÐÐИЕ: Так как вы работаете в Windows XP/2003, поÑле запуÑка ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка на нём ÐЕЛЬЗЯ Ñоздавать раÑширенные (логичеÑкие) разделы (разрешаетÑÑ Ñоздавать только первичные разделы). Любой раÑширенный (логичеÑкий) раздел на диÑке поÑле начала ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтанет недоÑтупным (ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð° диÑке нет таких разделов).\n\nПримечание: еÑли Ñто ограничение неприемлемо, вернитеÑÑŒ и выберите шифрование только ÑиÑтемного раздела, а не вÑего диÑка (также можно Ñоздать тома VeraCrypt на оÑнове разделов внутри любых неÑиÑтемных разделов на диÑке).\n\nЕÑли данное ограничение вам не подходит, перейдите на Windows Vista или более новую верÑию Windows (шифрование вÑего ÑиÑтемного диÑка, Ñодержащего раÑширенные/логичеÑкие разделы, доÑтупно только в Vista и более новых верÑиÑÑ… Windows).</string>
+ <string lang="ru" key="SYSDRIVE_NON_STANDARD_PARTITIONS">СиÑтемный диÑк Ñодержит неÑтандартный раздел.\n\nЕÑли вы иÑпользуете ноутбук, вероÑтно, на ÑиÑтемном диÑке находитÑÑ Ð¾Ñобый раздел Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ. ПоÑле ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñего ÑиÑтемного диÑка (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð»ÑŽÐ±Ð¾Ð¹ раздел Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ) компьютер может переÑтать загружатьÑÑ, еÑли в нём не вполне ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ BIOS. Также, пока не будет раÑшифрован ÑиÑтемный диÑк, Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать раздел Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ. ПоÑтому рекомендуем шифровать только ÑиÑтемный раздел.</string>
+ <string lang="ru" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Хотите зашифровать только ÑиÑтемный раздел, а не веÑÑŒ диÑк?\n\nОбратите внимание, что можно Ñоздавать тома VeraCrypt на оÑнове разделов внутри любых неÑиÑтемных разделов на диÑке (вдобавок к шифрованию ÑиÑтемного раздела).</string>
+ <string lang="ru" key="WHOLE_SYC_DEVICE_RECOM">ПоÑкольку ÑиÑтемный диÑк Ñодержит только один раздел, занимающий его целиком, предпочтительнее (безопаÑнее) зашифровать веÑÑŒ диÑк, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñвободное 'резервное' меÑто, которое обычно окружает такой раздел.\n\nХотите зашифровать веÑÑŒ ÑиÑтемный диÑк?</string>
+ <string lang="ru" key="TEMP_NOT_ON_SYS_PARTITION">Ваша ÑиÑтема наÑтроена на хранение временных файлов в неÑиÑтемном разделе.\n\nЭти файлы должны хранитьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на ÑиÑтемном разделе.</string>
<string lang="ru" key="USER_PROFILE_NOT_ON_SYS_PARTITION">Файлы вашего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÂ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð½Ð° ÑиÑтемном разделе.\n\nЭти файлы должны хранитьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на ÑиÑтемном разделе.</string>
- <string lang="ru" key="PAGING_FILE_NOT_ON_SYS_PARTITION">Ðа неÑиÑтемных разделах имеютÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ подкачки.\n\nФайлы подкачки должны находитьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на ÑиÑтемном разделе.</string>
- <string lang="ru" key="RESTRICT_PAGING_FILES_TO_SYS_PARTITION">ÐаÑтроить Windows так, чтобы файлы подкачки ÑоздавалиÑÑŒ только на разделе Ñ Windows?\n\nПри нажатии 'Да' компьютер будет перезагружен. ПоÑле Ñтого запуÑтите VeraCrypt и Ñнова попробуйте Ñоздать Ñкрытую ОС.</string>
- <string lang="ru" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> Ð’ противном Ñлучае Ñто неблагоприÑтно ÑкажетÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытой ОС.\n\nПримечание: еÑли неприÑтель проанализирует Ñодержимое таких файлов (находÑщихÑÑ Ð½Ð° неÑиÑтемном разделе), то Ñможет узнать, что вы пользовалиÑÑŒ Ñтим маÑтером в режиме ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ÑиÑтемы (что натолкнёт его на мыÑль о наличии Ñкрытой ОС в вашем ПК). Также учтите, что такие файлы, хранÑщиеÑÑ Ð½Ð° ÑиÑтемном разделе, будут надёжно удалены VeraCrypt при Ñоздании Ñкрытой ОС.</string>
- <string lang="ru" key="DECOY_OS_REINSTALL_WARNING">Ð’ÐИМÐÐИЕ: Во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС вам потребуетÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ñтью переуÑтановить текущую ОС (чтобы безопаÑно Ñоздать обманную ÑиÑтему).\n\nПримечание: Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ð°Ñ Ð² данный момент ОС и вÑÑ‘ Ñодержимое ÑиÑтемного раздела будут Ñкопированы в Ñкрытый том (чтобы Ñоздать Ñкрытую ÑиÑтему).\n\n\nÐ’Ñ‹ уверены, что Ñможете уÑтановить Windows Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ уÑтановочного ноÑÐ¸Ñ‚ÐµÐ»Ñ (или Ñо Ñлужебного раздела)?</string>
- <string lang="ru" key="DECOY_OS_REQUIREMENTS">Ð’ целÑÑ… безопаÑноÑти, еÑли Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ð°Ñ Ð² данный момент ОС требует активации, она должна быть активирована перед тем, как вы продолжите. Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ будет Ñоздана путём ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñодержимого ÑиÑтемного раздела в Ñкрытый том (поÑтому еÑли Ñта ОС не активирована, то не будет активирована и ÑкрытаÑ). ПодробноÑти Ñм. в разделе "Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти каÑательно Ñкрытых томов" в документации VeraCrypt.\n\nВажно: перед продолжением обÑзательно ознакомьтеÑÑŒ Ñ Ð³Ð»Ð°Ð²Ð¾Ð¹ "Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти каÑательно Ñкрытых томов" в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt.\n\n\nУдовлетворÑет ли выполнÑÐµÐ¼Ð°Ñ Ð² данный момент ОС указанному выше уÑловию?</string>
- <string lang="ru" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Ваша ÑиÑтема иÑпользует дополнительный загрузочный раздел. VeraCrypt не поддерживает гибернацию Ñкрытых операционных ÑиÑтем, иÑпользующих дополнительный загрузочный раздел (Ð³Ð¸Ð±ÐµÑ€Ð½Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ñ‹Ñ… ÑиÑтем никаких проблем не ÑоÑтавлÑет).\n\nУчтите, что загрузочный раздел иÑпользуетÑÑ ÐºÐ°Ðº обманной, так и Ñкрытой ÑиÑтемами. ПоÑтому Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚ÐµÑ‡ÐºÐ¸ данных и проблем Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð¾Ð¼ из гибернации VeraCrypt запретил Ñкрытой ÑиÑтеме запиÑÑŒ в общий загрузочный раздел и гибернацию.\n\n\nХотите продолжить? При ответе 'Ðет' вам будут даны инÑтрукции, как удалить дополнительный загрузочный раздел.</string>
- <string 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!!! Чтобы раÑпечатать Ñтот текÑÑ‚, нажмите кнопку 'Печать' ниже. ЕÑли вы Ñохраните или раÑпечатаете копию Ñтого текÑта (Ñто наÑтоÑтельно рекомендуетÑÑ Ñделать, еÑли только ваш принтер не хранит копии заданий на Ñвоём внутреннем накопителе), то поÑле ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ загрузочного раздела вÑе копии данного текÑта Ñледует уничтожить (иначе еÑли такую копию обнаружат, Ñто может навеÑти на мыÑль о наличии в ПК Ñкрытой ОС).</string>
- <string lang="ru" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Внимание! Между ÑиÑтемным разделом и первым разделом за ним имеетÑÑ Ð½ÐµÑ€Ð°Ñпределённое меÑто. ПоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой операционной ÑиÑтемы вы не должны Ñоздавать в Ñтой нераÑпределённой облаÑти никаких новых разделов. Ð’ противном Ñлучае ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ не Ñможет загрузитьÑÑ (до тех пор, пока не будут удалены такие вновь Ñозданные разделы).</string>
- <string lang="ru" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Ð’ данный момент Ñтот алгоритм Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы не поддерживаетÑÑ.</string>
+ <string lang="ru" key="PAGING_FILE_NOT_ON_SYS_PARTITION">Ðа неÑиÑтемных разделах имеютÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ подкачки.\n\nЭти файлы должны находитьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на ÑиÑтемном разделе.</string>
+ <string lang="ru" key="RESTRICT_PAGING_FILES_TO_SYS_PARTITION">ÐаÑтроить ÑиÑтему так, чтобы файлы подкачки ÑоздавалиÑÑŒ только на разделе Ñ Windows?\n\nПри нажатии 'Да' компьютер будет перезагружен. ПоÑле Ñтого запуÑтите VeraCrypt и Ñнова попробуйте Ñоздать Ñкрытую ОС.</string>
+ <string lang="ru" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> Ð’ противном Ñлучае Ñто неблагоприÑтно ÑкажетÑÑ Ð½Ð° правдоподобноÑти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñкрытой ОС.\n\nУчтите, что еÑли неприÑтель проанализирует Ñодержимое таких файлов (на неÑиÑтемном разделе), то Ñможет узнать, что вы пользовалиÑÑŒ Ñтим маÑтером в режиме ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ÑиÑтемы (что натолкнёт на мыÑль о наличии в ПК Ñкрытой ОС). Также имейте в виду, что такие файлы, хранÑщиеÑÑ Ð½Ð° ÑиÑтемном разделе, будут надёжно удалены VeraCrypt при Ñоздании Ñкрытой ОС.</string>
+ <string lang="ru" key="DECOY_OS_REINSTALL_WARNING">Ð’ÐИМÐÐИЕ: Во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС потребуетÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ñтью переуÑтановить текущую ОС (чтобы безопаÑно Ñоздать обманную ÑиÑтему).\n\nПримечание: Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡ и вÑÑ‘ Ñодержимое ÑиÑтемного раздела будут Ñкопированы в Ñкрытый том (чтобы Ñоздать Ñкрытую ÑиÑтему).\n\n\nÐ’Ñ‹ уверены, что Ñможете уÑтановить Windows Ñ Ð½Ð¾ÑÐ¸Ñ‚ÐµÐ»Ñ Ñ Ð´Ð¸Ñтрибутивом (или Ñо Ñлужебного раздела)?</string>
+ <string lang="ru" key="DECOY_OS_REQUIREMENTS">Ð’ целÑÑ… безопаÑноÑти, еÑли Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡ требует активации, то перед продолжением её нужно активировать. Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ будет Ñоздана копированием Ñодержимого ÑиÑтемного раздела в Ñкрытый том (поÑтому еÑли Ñта ОС не активирована, то не будет активирована и ÑкрытаÑ).\n\nÐ’ÐЖÐО: Прежде чем продолжить, обÑзательно ознакомьтеÑÑŒ Ñ Ð³Ð»Ð°Ð²Ð¾Ð¹ 'Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти каÑательно Ñкрытых томов' в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt.\n\n\nУдовлетворÑет ли Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡ указанному выше уÑловию?</string>
+ <string lang="ru" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Ваша ÑиÑтема иÑпользует дополнительный загрузочный раздел. VeraCrypt не поддерживает гибернацию Ñкрытых операционных ÑиÑтем Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ загрузочным разделом (Ð³Ð¸Ð±ÐµÑ€Ð½Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ñ‹Ñ… ÑиÑтем никаких проблем не вызывает).\n\nУчтите, что загрузочный раздел иÑпользуетÑÑ ÐºÐ°Ðº обманной, так и Ñкрытой ÑиÑтемами. ПоÑтому чтобы предотвратить утечки данных и проблемы Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð¾Ð¼ из гибернации, Ñкрытой ÑиÑтеме запрещены запиÑÑŒ в общий загрузочный раздел и гибернациÑ.\n\n\nПродолжить? При ответе 'Ðет' будут даны инÑтрукции, как удалить дополнительный загрузочный раздел.</string>
+ <string 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Чтобы раÑпечатать Ñтот текÑÑ‚, нажмите кнопку 'Печать'. ЕÑли вы Ñохраните или раÑпечатаете Ñтот текÑÑ‚ (наÑтоÑтельно рекомендуем Ñто Ñделать, еÑли только ваш принтер не хранит копии заданий на Ñвоём внутреннем накопителе), то поÑле ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ загрузочного раздела вÑе копии текÑта Ñледует уничтожить (иначе еÑли такую копию обнаружат, Ñто может навеÑти на мыÑль о наличии в ПК Ñкрытой ОС).</string>
+ <string lang="ru" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Ð’ÐИМÐÐИЕ: Между ÑиÑтемным разделом и первым идущим за ним разделом имеетÑÑ Ð½ÐµÑ€Ð°Ñпределённое меÑто. ПоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС вы не должны Ñоздавать в Ñтой нераÑпределённой облаÑти никаких новых разделов. Ð’ противном Ñлучае ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ не Ñможет загрузитьÑÑ (пока не будут удалены такие вновь Ñозданные разделы).</string>
+ <string lang="ru" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñтот алгоритм Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы не поддерживаетÑÑ.</string>
<string lang="ru" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Этот алгоритм не поддерживаетÑÑ Ð² режиме TrueCrypt.</string>
<string lang="ru" key="PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">PIM (перÑональный умножитель итераций) не поддерживаетÑÑ Ð² режиме TrueCrypt.</string>
- <string lang="ru" key="PIM_REQUIRE_LONG_PASSWORD">Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ PIM пароль должен быть не короче 20 Ñимволов.\nБолее короткие пароли можно применÑÑ‚ÑŒ только Ñ PIM, равным 485 или более.</string>
- <string lang="ru" key="BOOT_PIM_REQUIRE_LONG_PASSWORD">Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ PIM пароль дозагрузочной аутентификации должен Ñодержать 20 и более Ñимволов.\nБолее короткие пароли можно иÑпользовать только Ñ PIM, равным 98 или более.</string>
- <string lang="ru" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Ð’ наÑтоÑщий момент ключевые файлы Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы не поддерживаютÑÑ.</string>
- <string lang="ru" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Внимание! VeraCrypt не может воÑÑтановить первоначальную раÑкладку клавиатуры. Это может привеÑти к неправильному вводу паролÑ.</string>
- <string lang="ru" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Ошибка! Ðевозможно уÑтановить раÑкладку клавиатуры Ð´Ð»Ñ VeraCrypt в Ñтандартную американÑкую (US).\n\nОбратите внимание, что пароль вводитÑÑ Ð”Ðž загрузки Windows, когда любые раÑкладки клавиатуры, отличающиеÑÑ Ð¾Ñ‚ американÑкой, ещё недоÑтупны. ПоÑтому пароль вÑегда должен вводитьÑÑ Ð¿Ñ€Ð¸ Ñтандартной американÑкой раÑкладке.</string>
- <string lang="ru" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">ПоÑкольку VeraCrypt временно изменил раÑкладку клавиатуры на Ñтандартную американÑкую, ввод Ñимволов при нажатой правой клавише Alt невозможен. Тем не менее, большинÑтво таких Ñимволов можно ввеÑти ÑоответÑтвующими клавишами при нажатой клавише Shift.</string>
+ <string lang="ru" key="PIM_REQUIRE_LONG_PASSWORD">Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ PIM пароль должен быть не короче 20 Ñимволов.\nБолее короткие пароли можно применÑÑ‚ÑŒ только Ñ PIM не менее 485.</string>
+ <string lang="ru" key="BOOT_PIM_REQUIRE_LONG_PASSWORD">Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ PIM пароль дозагрузочной аутентификации должен быть не короче 20 Ñимволов.\nБолее короткие пароли можно иÑпользовать только Ñ PIM не менее 98.</string>
+ <string lang="ru" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ðµ файлы Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы не поддерживаютÑÑ.</string>
+ <string lang="ru" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Ð’ÐИМÐÐИЕ: VeraCrypt не удалоÑÑŒ воÑÑтановить первоначальную раÑкладку клавиатуры. Это может привеÑти к неправильному вводу паролÑ.</string>
+ <string lang="ru" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">ОШИБКÐ: Ðевозможно уÑтановить раÑкладку клавиатуры Ð´Ð»Ñ VeraCrypt в Ñтандартную американÑкую (US).\n\nПоÑкольку пароль требуетÑÑ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ ДО загрузки Windows, когда любые раÑкладки клавиатуры, отличные от американÑкой, ещё недоÑтупны, его нужно вÑегда вводить в Ñтандартной американÑкой раÑкладке.</string>
+ <string lang="ru" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">ПоÑкольку раÑкладка клавиатуры временно изменена на Ñтандартную американÑкую, ввод Ñимволов при нажатой правой клавише Alt невозможен. Тем не менее, большинÑтво таких Ñимволов можно ввеÑти ÑоответÑтвующими клавишами при нажатой клавише Shift.</string>
<string lang="ru" key="KEYB_LAYOUT_CHANGE_PREVENTED">Изменение раÑкладки клавиатуры заблокировано VeraCrypt.</string>
- <string lang="ru" key="KEYB_LAYOUT_SYS_ENC_EXPLANATION">Примечание: пароль вводитÑÑ Ð”Ðž загрузки Windows, когда любые раÑкладки клавиатуры, отличающиеÑÑ Ð¾Ñ‚ американÑкой, ещё недоÑтупны. ПоÑтому пароль вÑегда должен вводитьÑÑ Ð¿Ñ€Ð¸ Ñтандартной американÑкой раÑкладке. Важно учитывать, что вам ÐЕ нужно иметь наÑтоÑщую американÑкую клавиатуру. VeraCrypt автоматичеÑки обеÑпечивает вам безопаÑный ввод Ð¿Ð°Ñ€Ð¾Ð»Ñ (прÑмо ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ на Ñтадии перед загрузкой ОС), даже еÑли у Ð²Ð°Ñ ÐЕ наÑтоÑÑ‰Ð°Ñ Ð°Ð¼ÐµÑ€Ð¸ÐºÐ°Ð½ÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°.</string>
- <string lang="ru" key="RESCUE_DISK_INFO">Прежде чем приÑтупить к шифрованию раздела/диÑка, нужно Ñоздать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt Rescue Disk (VRD), обеÑпечивающий Ñледующее:\n\n- Ð’ Ñлучае Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt, маÑтер-ключа или других критичеÑких данных, VRD позволÑет их воÑÑтановить (при Ñтом вÑÑ‘ равно надо будет ввеÑти правильный пароль).\n- При повреждении и невозможноÑти загрузки Windows, VRD позволÑет перманентно раÑшифровать раздел/диÑк перед Ñтартом Windows.\n- VRD Ñодержит резервную копию текущего Ñодержимого первого цилиндра диÑка (в котором обычно находитÑÑ ÑиÑтемный загрузчик или менеджер загрузки) и позволÑет воÑÑтановить его.\n\nISO-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt будет Ñоздан тут:</string>
- <string lang="ru" key="RESCUE_DISK_WIN_ISOBURN_PRELAUNCH_NOTE">ПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ OK будет запущено ÑредÑтво запиÑи образов диÑков Windows. Запишите Ñ ÐµÑ‘ помощью ISO-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt на CD или DVD.\n\nЗатем вернитеÑÑŒ в окно маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt и Ñледуйте инÑтрукциÑм.</string>
- <string lang="ru" key="RESCUE_DISK_BURN_INFO">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в файле: %s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ нужно запиÑать Ñтот образ на CD или DVD.\n\n%lsПоÑле запиÑи диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¶Ð¼Ð¸Ñ‚Ðµ 'Далее', чтобы проверить, корректно ли он был запиÑан.</string>
- <string lang="ru" key="RESCUE_DISK_BURN_INFO_NO_CHECK">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в Ñтом файле: %s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ Ñледует либо запиÑать (прожечь) диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° CD/DVD, либо перемеÑтить его ISO-образ в безопаÑное меÑто Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² дальнейшем.\n\n%lsÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
- <string lang="ru" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">Ð’ÐЖÐО: Файл-образ должен быть запиÑан на CD/DVD как ISO-образ диÑка (а не как отдельный файл). О том, как Ñто Ñделать, Ñм. документацию на ваше ПО Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи CD/DVD. ЕÑли у Ð²Ð°Ñ Ð½ÐµÑ‚ программы, ÑпоÑобной запиÑать ISO-образ на CD/DVD, щёлкните по ÑÑылке ниже, чтобы загрузить такое беÑплатное ПО.\n\n</string>
+ <string lang="ru" key="KEYB_LAYOUT_SYS_ENC_EXPLANATION">Примечание: поÑкольку пароль требуетÑÑ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ ДО загрузки Windows, когда любые раÑкладки клавиатуры, отличные от американÑкой, ещё недоÑтупны, его нужно вÑегда вводить в Ñтандартной американÑкой раÑкладке. Важно учеÑÑ‚ÑŒ, что наÑтоÑÑ‰Ð°Ñ Ð°Ð¼ÐµÑ€Ð¸ÐºÐ°Ð½ÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° ÐЕ нужна. VeraCrypt автоматичеÑки обеÑпечивает безопаÑный ввод Ð¿Ð°Ñ€Ð¾Ð»Ñ (прÑмо ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ на Ñтадии перед загрузкой ОС), даже еÑли у Ð²Ð°Ñ ÐЕ наÑтоÑÑ‰Ð°Ñ Ð°Ð¼ÐµÑ€Ð¸ÐºÐ°Ð½ÑÐºÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°.</string>
+ <string lang="ru" key="RESCUE_DISK_INFO">Прежде чем приÑтупить к шифрованию раздела/диÑка, нужно Ñоздать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt Rescue Disk (VRD), обеÑпечивающий Ñледующее:\n\n- При повреждении загрузчика VeraCrypt, маÑтер-ключа или других критичеÑких данных, VRD позволÑет их воÑÑтановить (при Ñтом вÑÑ‘ равно надо будет ввеÑти правильный пароль).\n- При повреждении и невозможноÑти загрузки Windows, VRD позволÑет перманентно раÑшифровать раздел/диÑк перед запуÑком Windows.\n- VRD Ñодержит резервную копию текущего Ñодержимого первого цилиндра диÑка (в котором обычно находитÑÑ ÑиÑтемный загрузчик или менеджер загрузки) и позволÑет воÑÑтановить его.\n\nISO-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt будет Ñоздан тут:</string>
+ <string lang="ru" key="RESCUE_DISK_WIN_ISOBURN_PRELAUNCH_NOTE">ПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ OK будет запущено ÑредÑтво запиÑи образов диÑков Windows. Запишите Ñ ÐµÐ³Ð¾ помощью ISO-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° CD/DVD.\n\nЗатем вернитеÑÑŒ в окно маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt и Ñледуйте инÑтрукциÑм.</string>
+ <string lang="ru" key="RESCUE_DISK_BURN_INFO">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в файле\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð½ÑƒÐ¶Ð½Ð¾ запиÑать (прожечь) Ñтот образ на CD/DVD.\n\n%lsПоÑле запиÑи диÑка нажмите 'Далее', чтобы проверить, корректно ли он был запиÑан.</string>
+ <string lang="ru" key="RESCUE_DISK_BURN_INFO_NO_CHECK">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в файле\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ñледует либо запиÑать (прожечь) Ñтот образ на CD/DVD, либо перемеÑтить его в безопаÑное меÑто Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² дальнейшем.\n\n%lsÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
+ <string lang="ru" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">Ð’ÐЖÐО: Файл-образ должен быть запиÑан на CD/DVD как ISO-образ диÑка (а не как отдельный файл). О том, как Ñто Ñделать, Ñм. документацию на ваше ПО Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи CD/DVD. ЕÑли у Ð²Ð°Ñ Ð½ÐµÑ‚ программы запиÑи ISO-образов на CD/DVD, щёлкните по ÑÑылке ниже, чтобы загрузить такое беÑплатное ПО.\n\n</string>
<string lang="ru" key="LAUNCH_WIN_ISOBURN">ЗапуÑтить ÑредÑтво запиÑи образов диÑков Windows</string>
- <string lang="ru" key="RESCUE_DISK_BURN_NO_CHECK_WARN">Ð’ÐИМÐÐИЕ: ЕÑли ранее вы уже Ñоздавали диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, вы не Ñможете им воÑпользоватьÑÑ Ñнова Ð´Ð»Ñ Ñтого ÑиÑтемного раздела/диÑка, так как он был Ñоздан Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ маÑтер-ключа! При каждом шифровании ÑиÑтемного раздела/диÑка нужно Ñоздавать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, даже еÑли вы иÑпользуете тот же Ñамый пароль.</string>
- <string lang="ru" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">Ошибка! Ðевозможно Ñохранить уÑтановки ÑиÑтемного шифрованиÑ.</string>
+ <string lang="ru" key="RESCUE_DISK_BURN_NO_CHECK_WARN">Ð’ÐИМÐÐИЕ: ЕÑли ранее вы уже Ñоздавали диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, то не Ñможете им воÑпользоватьÑÑ Ñнова Ð´Ð»Ñ Ñтого ÑиÑтемного раздела/диÑка, так как он был Ñоздан Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ маÑтер-ключа! При каждом шифровании ÑиÑтемного раздела/диÑка нужно Ñоздавать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, даже еÑли иÑпользуетÑÑ Ñ‚Ð¾Ñ‚Â Ð¶Ðµ пароль.</string>
+ <string lang="ru" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">ОШИБКÐ: Ðевозможно Ñохранить параметры ÑиÑтемного шифрованиÑ.</string>
<string lang="ru" key="CANNOT_INITIATE_SYS_ENCRYPTION_PRETEST">Ðевозможно инициировать пре-теÑÑ‚ ÑиÑтемного шифрованиÑ.</string>
- <string lang="ru" key="CANNOT_INITIATE_HIDDEN_OS_CREATION">Ðевозможно начать процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой операционной ÑиÑтемы.</string>
+ <string lang="ru" key="CANNOT_INITIATE_HIDDEN_OS_CREATION">Ðевозможно начать Ñоздание Ñкрытой операционной ÑиÑтемы.</string>
<string lang="ru" key="WIPE_MODE_TITLE">Режим очиÑтки</string>
- <string lang="ru" key="INPLACE_ENC_WIPE_MODE_INFO">Ðа Ñ€Ñде перезапиÑываемых ноÑителей перезапиÑанные данные можно воÑÑтановить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпецтехник (магнитно-ÑÐ¸Ð»Ð¾Ð²Ð°Ñ Ð¼Ð¸ÐºÑ€Ð¾ÑкопиÑ). Это отноÑитÑÑ Ð¸ к данным, перезапиÑанным в зашифрованном виде (когда VeraCrypt шифрует незашифрованный ÑиÑтемный раздел/диÑк). ВоÑÑтановление перезапиÑанных данных можно предотвратить (или Ñильно оÑложнить) перезапиÑью пÑевдоÑлучайными или определёнными неÑлучайными данными некоторое чиÑло раз. ЕÑли ваши неприÑтели могут применить подобные методы Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, которые вы ÑобираетеÑÑŒ зашифровать, выберите один из режимов очиÑтки (имеющиеÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ ÐЕ будут уничтожены). ПоÑле ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°/диÑка очиÑтка ÐЕ выполнÑетÑÑ. Когда раздел/диÑк полноÑтью зашифрован, никакие незашифрованные данные на него не запиÑываютÑÑ. Любые данные Ñначала шифруютÑÑ Ð½Ð° лету в памÑти, и лишь затем ÑохранÑÑŽÑ‚ÑÑ (зашифрованными) на диÑке.</string>
- <string lang="ru" key="WIPE_MODE_INFO">Ðа Ñ€Ñде перезапиÑываемых ноÑителей перезапиÑанные данные (например когда данные удалены) можно воÑÑтановить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпецтехник (магнитно-ÑÐ¸Ð»Ð¾Ð²Ð°Ñ Ð¼Ð¸ÐºÑ€Ð¾ÑкопиÑ). ВоÑÑтановление перезапиÑанных данных можно предотвратить (или Ñильно оÑложнить) перезапиÑью пÑевдоÑлучайными или определёнными неÑлучайными данными некоторое чиÑло раз. ЕÑли ваши неприÑтели могут применить подобные техники Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, которые должны быть удалены, выберите один из многопроходных режимов очиÑтки.\n\nПримечание: чем больше проходов, тем дольше длитÑÑ Ñтирание данных.</string>
+ <string lang="ru" key="INPLACE_ENC_WIPE_MODE_INFO">Ðа Ñ€Ñде перезапиÑываемых ноÑителей перезапиÑанные данные можно воÑÑтановить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпецтехник (магнитно-Ñиловой микроÑкопии). Это отноÑитÑÑ Ð¸ к данным, перезапиÑанным в зашифрованном виде (когда VeraCrypt шифрует незашифрованный ÑиÑтемный раздел/диÑк). ВоÑÑтановление перезапиÑанных данных можно предотвратить (или Ñильно оÑложнить) многократной перезапиÑью пÑевдоÑлучайными или определёнными неÑлучайными данными. ЕÑли неприÑтель ÑпоÑобен применить подобные методы Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, которые вы ÑобираетеÑÑŒ зашифровать, выберите один из режимов очиÑтки (имеющиеÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ ÐЕ будут уничтожены). ПоÑле ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°/диÑка очиÑтка ÐЕ выполнÑетÑÑ. Когда раздел/диÑк полноÑтью зашифрован, никакие незашифрованные данные на него не запиÑываютÑÑ. Любые данные Ñначала шифруютÑÑ Ð½Ð° лету в памÑти и лишь затем ÑохранÑÑŽÑ‚ÑÑ (зашифрованными) на диÑке.</string>
+ <string lang="ru" key="WIPE_MODE_INFO">Ðа Ñ€Ñде перезапиÑываемых ноÑителей перезапиÑанные данные (например, когда данные удалены) можно воÑÑтановить Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпецтехник (магнитно-Ñиловой микроÑкопии). ВоÑÑтановление перезапиÑанных данных можно предотвратить (или Ñильно оÑложнить) многократной перезапиÑью пÑевдоÑлучайными или определёнными неÑлучайными данными. ЕÑли неприÑтель ÑпоÑобен применить подобные техники Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, которые должны быть удалены, выберите один из многопроходных режимов очиÑтки.\n\nПримечание: чем больше проходов, тем дольше длитÑÑ Ñтирание данных.</string>
<string lang="ru" key="DEVICE_WIPE_PAGE_TITLE">ОчиÑтка</string>
- <string lang="ru" key="DEVICE_WIPE_PAGE_INFO_HIDDEN_OS">\nПримечание: вы можете прервать процеÑÑ Ð¾Ñ‡Ð¸Ñтки, выключить компьютер, Ñнова запуÑтить Ñкрытую ÑиÑтему и затем продолжить очиÑтку (Ñтот маÑтер запуÑтитÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки). Однако в Ñлучае Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð²ÐµÑÑŒ процеÑÑ Ð¾Ñ‡Ð¸Ñтки придётÑÑ Ð½Ð°Ñ‡Ð°Ñ‚ÑŒ Ñначала.</string>
- <string lang="ru" key="DEVICE_WIPE_PAGE_INFO">\n\nПримечание: еÑли прервать очиÑтку, а затем попытатьÑÑ Ð²Ð¾Ð·Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ Ñтот процеÑÑ, то его придётÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ñ Ñамого начала.</string>
- <string lang="ru" key="CONFIRM_WIPE_ABORT">Ð’Ñ‹ хотите отменить очиÑтку (затирание данных)?</string>
- <string lang="ru" key="CONFIRM_WIPE_START">Внимание! Содержимое вÑего выбранного раздела/уÑтройÑтва будет уничтожено.</string>
+ <string lang="ru" key="DEVICE_WIPE_PAGE_INFO_HIDDEN_OS">\nПримечание: вы можете прервать процеÑÑ Ð¾Ñ‡Ð¸Ñтки, выключить компьютер, Ñнова запуÑтить Ñкрытую ÑиÑтему и затем продолжить очиÑтку (Ñтот маÑтер запуÑтитÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки). Однако в Ñтом Ñлучае веÑÑŒ процеÑÑ Ð¾Ñ‡Ð¸Ñтки придётÑÑ Ð½Ð°Ñ‡Ð°Ñ‚ÑŒ Ñначала.</string>
+ <string lang="ru" key="DEVICE_WIPE_PAGE_INFO">\n\nПримечание: еÑли прервать очиÑтку, то затем при возобновлении её придётÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ñ Ñамого начала.</string>
+ <string lang="ru" key="CONFIRM_WIPE_ABORT">Отменить очиÑтку (затирание данных)?</string>
+ <string lang="ru" key="CONFIRM_WIPE_START">Ð’ÐИМÐÐИЕ: Содержимое вÑего выбранного раздела/уÑтройÑтва будет уничтожено.</string>
<string lang="ru" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">Ð’ÑÑ‘ Ñодержимое раздела, где находитÑÑ Ð¸ÑÑ…Ð¾Ð´Ð½Ð°Ñ ÑиÑтема, будет уничтожено.\n\nПримечание: вÑÑ‘ Ñодержимое раздела, подлежащего Ñтиранию, было Ñкопировано в Ñтот Ñкрытый ÑиÑтемный раздел.</string>
- <string lang="ru" key="WIPE_MODE_WARN">Ð’ÐИМÐÐИЕ: ЕÑли выбрать, например, трёхпроходную очиÑтку, Ð²Ñ€ÐµÐ¼Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка/раздела увеличитÑÑ Ð² четыре раза. Ðналогично, при выборе 35-проходного режима Ð²Ñ€ÐµÐ¼Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡Ð¸Ñ‚ÑÑ Ð² 36 раз (и может ÑоÑтавить неÑколько недель).\n\nУчтите, однако, что очиÑтка ÐЕ выполнÑетÑÑ Ð¿Ð¾Ñле того, как раздел/диÑк зашифрован. Когда раздел/диÑк полноÑтью зашифрован, никаких незашифрованных данных на него не запиÑываетÑÑ. Любые запиÑываемые на него данные Ñначала шифруютÑÑ Ð½Ð° лету в памÑти, и только затем ÑохранÑÑŽÑ‚ÑÑ (в зашифрованном виде) на диÑке (Ñ‚.е. на производительноÑти Ñто ÐЕ отражаетÑÑ).\n\nÐ’Ñ‹ дейÑтвительно хотите иÑпользовать режим очиÑтки?</string>
+ <string lang="ru" key="WIPE_MODE_WARN">Ð’ÐИМÐÐИЕ: ЕÑли выбрать, например, трёхпроходную очиÑтку, Ð²Ñ€ÐµÐ¼Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка/раздела увеличитÑÑ Ð² четыре раза. Ðналогично, при выборе 35-проходного режима Ð²Ñ€ÐµÐ¼Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡Ð¸Ñ‚ÑÑ Ð² 36 раз (и может ÑоÑтавить неÑколько недель).\n\nУчтите, однако, что очиÑтка ÐЕ выполнÑетÑÑ Ð¿Ð¾Ñле того, как раздел/диÑк зашифрован. Когда раздел/диÑк полноÑтью зашифрован, никакие незашифрованные данные на него не запиÑываютÑÑ. Любые запиÑываемые на него данные Ñначала шифруютÑÑ Ð½Ð° лету в памÑти и только затем ÑохранÑÑŽÑ‚ÑÑ (в зашифрованном виде) на диÑке (Ñ‚.е. на производительноÑти Ñто ÐЕ отражаетÑÑ).\n\nÐ’Ñ‹ дейÑтвительно хотите иÑпользовать режим очиÑтки?</string>
<string lang="ru" key="WIPE_MODE_NONE">Ðет (Ñамый быÑтрый)</string>
<string lang="ru" key="WIPE_MODE_1_RAND">1 проход (Ñлучайные данные)</string>
<string lang="ru" key="WIPE_MODE_3_DOD_5220">3 прохода (US DoD 5220.22-M)</string>
<string lang="ru" key="WIPE_MODE_7_DOD_5220">7 проходов (US DoD 5220.22-M)</string>
- <string lang="ru" key="WIPE_MODE_35_GUTMANN">35 проходов ("Gutmann")</string>
+ <string lang="ru" key="WIPE_MODE_35_GUTMANN">35 проходов ('Gutmann')</string>
<string lang="ru" key="WIPE_MODE_256">256 проходов</string>
<string lang="ru" key="SYS_MULTI_BOOT_MODE_TITLE">ЧиÑло операционных ÑиÑтем</string>
<string lang="ru" key="MULTI_BOOT_FOR_ADVANCED_ONLY">Ð’ÐИМÐÐИЕ: Ðеопытным пользователÑм не Ñледует пытатьÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Windows в мультизагрузочных конфигурациÑÑ….\n\nПродолжить?</string>
- <string lang="ru" key="HIDDEN_OS_MULTI_BOOT">При Ñоздании/иÑпользовании Ñкрытой операционной ÑиÑтемы VeraCrypt поддерживает мультизагрузочные конфигурации только при Ñоблюдении Ñледующих уÑловий:\n\n- Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема должна быть уÑтановлена на загрузочном диÑке, на котором не может быть других операционных ÑиÑтем;\n\n- операционные ÑиÑтемы, уÑтановленные на других диÑках, не должны иÑпользовать загрузчик, находÑщийÑÑ Ð½Ð° диÑке, на котором уÑтановлена Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема.\n\nЭти уÑÐ»Ð¾Ð²Ð¸Ñ Ñоблюдены?</string>
+ <string lang="ru" key="HIDDEN_OS_MULTI_BOOT">При Ñоздании/иÑпользовании Ñкрытой операционной ÑиÑтемы VeraCrypt поддерживает мультизагрузочные конфигурации только при Ñледующих уÑловиÑÑ…:\n\n- Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡ должна быть уÑтановлена на загрузочном диÑке, на котором не должно быть других операционных ÑиÑтем;\n\n- операционные ÑиÑтемы, уÑтановленные на других диÑках, не должны иÑпользовать загрузчик, находÑщийÑÑ Ð½Ð° диÑке, где уÑтановлена Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡.\n\nЭти уÑÐ»Ð¾Ð²Ð¸Ñ Ñоблюдены?</string>
<string lang="ru" key="UNSUPPORTED_HIDDEN_OS_MULTI_BOOT_CFG">VeraCrypt не поддерживает Ñту мультизагрузочную конфигурацию при Ñоздании/иÑпользовании Ñкрытой операционной ÑиÑтемы.</string>
<string lang="ru" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_TITLE">Загрузочный диÑк</string>
- <string lang="ru" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Ð Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ Ð² данный момент Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема уÑтановлена на загрузочном диÑке?\n\nПримечание: иногда Windows бывает уÑтановлена не на том диÑке, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ она грузитÑÑ (где находитÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ñ‹Ð¹ раздел). ЕÑли Ñто ваш Ñлучай, то выберите 'Ðет'.</string>
- <string lang="ru" key="SYS_PARTITION_MUST_BE_ON_BOOT_DRIVE">Ð’ данный момент VeraCrypt не поддерживает шифрование операционной ÑиÑтемы, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ÑÑ Ð½ÐµÂ Ñ Ñ‚Ð¾Ð³Ð¾ же диÑка, на котором она уÑтановлена.</string>
+ <string lang="ru" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Ð Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема уÑтановлена на загрузочном диÑке?\n\nПримечание: иногда Windows бывает уÑтановлена не на том диÑке, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ она грузитÑÑ (где находитÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ñ‹Ð¹ раздел). ЕÑли Ñто ваш Ñлучай, то выберите 'Ðет'.</string>
+ <string lang="ru" key="SYS_PARTITION_MUST_BE_ON_BOOT_DRIVE">Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ VeraCrypt не поддерживает шифрование операционной ÑиÑтемы, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ÑÑ Ð½ÐµÂ Ñ Ñ‚Ð¾Ð³Ð¾ же диÑка, на котором она уÑтановлена.</string>
<string lang="ru" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_TITLE">ЧиÑло ÑиÑтемных диÑков</string>
<string lang="ru" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_HELP">Сколько диÑков Ñодержит Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема?\n\nПримечание: например, еÑли одна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема (Ñкажем, Windows, Mac OS X, Linux и т.д.) уÑтановлена у Ð²Ð°Ñ Ð½Ð° первичном диÑке, а Ð´Ñ€ÑƒÐ³Ð°Ñ Ð½Ð° вторичном, выберите '2 или более'.</string>
- <string lang="ru" key="WDE_UNSUPPORTED_FOR_MULTIPLE_SYSTEMS_ON_ONE_DRIVE">Ð’ данный момент VeraCrypt не поддерживает шифрование вÑего диÑка, который Ñодержит неÑколько операционных ÑиÑтем.\n\nВозможные варианты:\n\n- Ð’Ñ‹ можете зашифровать одну из ÑиÑтем, еÑли вернётеÑÑŒ назад и выберите шифрование только одного ÑиÑтемного раздела (а не вÑего ÑиÑтемного диÑка).\n\n- Ð’Ñ‹ Ñможете зашифровать веÑÑŒ диÑк, еÑли перемеÑтите некоторые ÑиÑтемы на другие диÑки, оÑтавив только одну ОС на диÑке, который хотите зашифровать.</string>
+ <string lang="ru" key="WDE_UNSUPPORTED_FOR_MULTIPLE_SYSTEMS_ON_ONE_DRIVE">Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ VeraCrypt не поддерживает шифрование вÑего диÑка, который Ñодержит неÑколько операционных ÑиÑтем.\n\nВозможные варианты:\n\n- Можно зашифровать одну из ÑиÑтем, еÑли вернутьÑÑ Ð½Ð°Ð·Ð°Ð´ и выбрать шифрование только одного ÑиÑтемного раздела (а не вÑего ÑиÑтемного диÑка).\n\n- Можно зашифровать веÑÑŒ диÑк, еÑли перемеÑтить некоторые ÑиÑтемы на другие диÑки, оÑтавив только одну ОС на диÑке, который хотите зашифровать.</string>
<string lang="ru" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_TITLE">ÐеÑколько ÑиÑтем на одном диÑке</string>
- <string lang="ru" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_HELP">Ðа диÑке, где уÑтановлена Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡, еÑÑ‚ÑŒ другие операционные ÑиÑтемы?\n\nПримечание: например, еÑли Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡ уÑтановлена на диÑке #0, Ñодержащем неÑколько разделов, и еÑли на одном из разделов находитÑÑ Windows, а на другом - ещё одна ОС (Ñкажем, Windows, Mac OS X, Linux и т.д.), то выберите 'Да'.</string>
+ <string lang="ru" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_HELP">Ðа диÑке, где уÑтановлена Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡, еÑÑ‚ÑŒ другие операционные ÑиÑтемы?\n\nПримечание: например, еÑли Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡ уÑтановлена на диÑке #0, Ñодержащем неÑколько разделов, и еÑли на одном из разделов находитÑÑ Windows, а на другом - ещё одна ОС (Windows, Mac OS X, Linux и т.д.), то выберите 'Да'.</string>
<string lang="ru" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_TITLE">Ðе-Windows загрузчик</string>
- <string lang="ru" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_HELP">УÑтановлен ли в главной загрузочной запиÑи (MBR) не отноÑÑщийÑÑ Ðº Windows загрузчик (или загрузочный менеджер)?\n\nПримечание: например, еÑли в первом цилиндре загрузочного диÑка ÑодержитÑÑ GRUB, LILO, XOSL или какой-то другой не отноÑÑщийÑÑ Ðº Windows загрузочный менеджер, выберите 'Да'.</string>
+ <string lang="ru" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_HELP">Ð’ главной загрузочной запиÑи (MBR) уÑтановлен не отноÑÑщийÑÑ Ðº Windows загрузчик (или загрузочный менеджер)?\n\nÐапример, еÑли в первом цилиндре загрузочного диÑка ÑодержитÑÑ GRUB, LILO, XOSL или какой-то другой не отноÑÑщийÑÑ Ðº Windows загрузочный менеджер, выберите 'Да'.</string>
<string lang="ru" key="SYSENC_MULTI_BOOT_OUTCOME_TITLE">Мультизагрузка</string>
- <string 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.</string>
- <string lang="ru" key="WINDOWS_BOOT_LOADER_HINTS">ЕÑли Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡ уÑтановлена на загрузочном разделе, то поÑле его ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð°Ð¼ потребуетÑÑ Ð²Ð²ÐµÑти правильный пароль, даже Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка незашифрованных Windows-ÑиÑтем (так как они будут ÑовмеÑтно иÑпользовать один и тот же зашифрованный загрузчик Windows).\n\nÐапротив, еÑли Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡ не уÑтановлена на загрузочном разделе (или загрузчик Windows не иÑпользуетÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ð¼Ð¸ иными ÑиÑтемами), тогда поÑле ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтой ÑиÑтемы вам не надо вводить пароль Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка других незашифрованных ÑиÑтем, доÑтаточно будет проÑто нажать Esc (в Ñлучае неÑкольких незашифрованных ÑиÑтем также потребуетÑÑ Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ нужную в меню загрузчика VeraCrypt).\n\nПримечание: как правило, в загрузочном разделе бывает уÑтановлена наиболее раннÑÑ Ð²ÐµÑ€ÑÐ¸Ñ Windows.</string>
+ <string 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.</string>
+ <string lang="ru" key="WINDOWS_BOOT_LOADER_HINTS">ЕÑли Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡ уÑтановлена на загрузочном разделе, то поÑле его ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ð²Ð²ÐµÑти правильный пароль, даже Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка незашифрованных Windows-ÑиÑтем (так как они будут ÑовмеÑтно иÑпользовать один и тот же зашифрованный загрузчик Windows).\n\nÐапротив, еÑли Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡ не уÑтановлена на загрузочном разделе (или загрузчик Windows не иÑпользуетÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ð¼Ð¸ иными ÑиÑтемами), тогда поÑле ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтой ÑиÑтемы не надо вводить пароль Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка других незашифрованных ÑиÑтем, доÑтаточно будет проÑто нажать Esc (в Ñлучае неÑкольких незашифрованных ÑиÑтем также потребуетÑÑ Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ нужную ОС в меню загрузчика VeraCrypt).\n\nПримечание: как правило, в загрузочном разделе бывает уÑтановлена наиболее раннÑÑ Ð²ÐµÑ€ÑÐ¸Ñ Windows.</string>
<string lang="ru" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Шифрование защищённой облаÑти Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (HPA)</string>
- <string lang="ru" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">Ð’ конце многих диÑков имеетÑÑ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ, в обычных уÑловиÑÑ… ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ñ‚ операционной ÑиÑтемы (Ñту облаÑÑ‚ÑŒ обычно называют Host Protected Area - Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ пользователÑ). Однако некоторые программы ÑпоÑобны читать и запиÑывать данные в таких облаÑÑ‚ÑÑ….\n\nÐ’ÐИМÐÐИЕ: Производители компьютеров (в чаÑтноÑти, ноутбуков) могут иÑпользовать облаÑти HPA Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² них утилит и данных Ð´Ð»Ñ RAID, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы, её наÑтройки, диагноÑтики и прочих нужд. ЕÑли такие утилиты или данные должны быть доÑтупны перед загрузкой ÑиÑтемы, Ñкрытую облаÑÑ‚ÑŒ ÐЕ Ñледует шифровать (выберите 'Ðет').\n\nХотите, чтобы VeraCrypt обнаружил и зашифровал Ñкрытую облаÑÑ‚ÑŒ (еÑли Ñ‚Ð°ÐºÐ¾Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ) в конце ÑиÑтемного диÑка?</string>
+ <string lang="ru" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">Ð’ конце многих диÑков имеетÑÑ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ, в обычных уÑловиÑÑ… ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ñ‚ операционной ÑиÑтемы (её обычно называют защищённой облаÑтью Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ - Host Protected Area). Однако некоторые программы ÑпоÑобны читать и запиÑывать данные в таких облаÑÑ‚ÑÑ….\n\nÐ’ÐИМÐÐИЕ: Производители компьютеров (в чаÑтноÑти, ноутбуков) могут иÑпользовать облаÑти HPA Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² них утилит и данных Ð´Ð»Ñ RAID, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы, её наÑтройки, диагноÑтики и пр. ЕÑли такие утилиты или данные должны быть доÑтупны перед загрузкой ÑиÑтемы, Ñкрытую облаÑÑ‚ÑŒ ÐЕ Ñледует шифровать (выберите 'Ðет').\n\nХотите, чтобы VeraCrypt обнаружила и зашифровала Ñкрытую облаÑÑ‚ÑŒ (еÑли Ñ‚Ð°ÐºÐ¾Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ) в конце ÑиÑтемного диÑка?</string>
<string lang="ru" key="SYSENC_TYPE_PAGE_TITLE">Тип ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы</string>
- <string lang="ru" key="SYSENC_NORMAL_TYPE_HELP">Выберите Ñту опцию, еÑли вы проÑто хотите зашифровать ÑиÑтемный раздел или веÑÑŒ ÑиÑтемный диÑк.</string>
- <string lang="ru" key="SYSENC_HIDDEN_TYPE_HELP">Может так ÑлучитьÑÑ, что Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ дешифровать ОС. Порой вы проÑто не Ñможете от Ñтого отказатьÑÑ (например при вымогательÑтве). Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет Ñоздать Ñкрытую ОС, наличие которой должно быть невозможно определить (при уÑловии ÑÐ¾Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… ниже рекомендаций). Таким образом, дешифровать Ñкрытую ОС или выдавать от неё пароль вам не придётÑÑ. Чтобы узнать подробноÑти, щёлкните по ÑÑылке ниже.</string>
- <string lang="ru" key="HIDDEN_OS_PREINFO">Может так ÑлучитьÑÑ, что Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ дешифровать ОС. Порой вы проÑто не Ñможете от Ñтого отказатьÑÑ (например при вымогательÑтве).\n\nC помощью Ñтого маÑтера вы можете Ñоздать Ñкрытую операционную ÑиÑтему, наличие которой должно быть невозможно определить (при уÑловии ÑÐ¾Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… ниже рекомендаций). Таким образом, дешифровать Ñкрытую ОС или выдавать от неё пароль вам не придётÑÑ.</string>
+ <string lang="ru" key="SYSENC_NORMAL_TYPE_HELP">Выберите Ñту опцию, чтобы проÑто зашифровать ÑиÑтемный раздел или веÑÑŒ ÑиÑтемный диÑк.</string>
+ <string lang="ru" key="SYSENC_HIDDEN_TYPE_HELP">Может так ÑлучитьÑÑ, что Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ раÑшифровать ОС. Порой вы проÑто не Ñможете от Ñтого отказатьÑÑ (например при вымогательÑтве). Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет Ñоздать Ñкрытую ОС, наличие которой должно быть невозможно определить (при уÑловии ÑÐ¾Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… ниже рекомендаций). Таким образом, не придётÑÑ Ñ€Ð°Ñшифровывать Ñкрытую ОС или выдавать от неё пароль. Чтобы узнать подробноÑти, щёлкните по ÑÑылке ниже.</string>
+ <string lang="ru" key="HIDDEN_OS_PREINFO">Может так ÑлучитьÑÑ, что Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ раÑшифровать ОС. Порой вы проÑто не Ñможете от Ñтого отказатьÑÑ (например при вымогательÑтве).\n\nC помощью Ñтого маÑтера можно Ñоздать Ñкрытую операционную ÑиÑтему, наличие которой должно быть невозможно определить (при уÑловии ÑÐ¾Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… ниже рекомендаций). Таким образом, не придётÑÑ Ñ€Ð°Ñшифровывать Ñкрытую ОС или выдавать от неё пароль.</string>
<string lang="ru" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_TITLE">Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема</string>
- <string lang="ru" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹ Ñоздадите два тома (внешний и Ñкрытый) в разделе, Ñледующим за ÑиÑтемным. Скрытый том будет Ñодержать Ñкрытую ОС, Ñоздаваемую копированием в него Ñодержимого ÑиÑтемного раздела (где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡). Во внешний том нужно Ñкопировать оÑмыÑленно выглÑдÑщие файлы, которые на Ñамом деле вам прÑтать ÐЕ требуетÑÑ, чтобы обмануть того, кто вынудит Ð²Ð°Ñ Ñообщить пароль от Ñкрытого ÑиÑтемного раздела (можно будет выдать пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома внутри Ñкрытого ÑиÑтемного раздела, наличие же Ñкрытой ОС оÑтанетÑÑ Ð² тайне).\n\nРна ÑиÑтемный раздел Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰ÐµÐ¹ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡ вы уÑтановите новую, так называемую "обманную" ОС и зашифруете её. Ð’ ней не должно быть конфиденциальных файлов, она нужна, еÑли Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ Ñообщить дозагрузочный пароль. Ð’ итоге будет три паролÑ. Два из них (Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС и внешнего тома) можно Ñообщать неприÑтелю. Третий пароль - запуÑк Ñкрытой ОС.</string>
+ <string lang="ru" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹ Ñоздадите два тома (внешний и Ñкрытый) в разделе, Ñледующим за ÑиÑтемным. Скрытый том будет Ñодержать Ñкрытую ОС, Ñоздаваемую копированием в него Ñодержимого ÑиÑтемного раздела (где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡). Во внешний том нужно Ñкопировать оÑмыÑленно выглÑдÑщие файлы, которые на Ñамом деле вам прÑтать ÐЕ требуетÑÑ, чтобы обмануть того, кто вынудит Ð²Ð°Ñ Ñообщить пароль от Ñкрытого ÑиÑтемного раздела (вы Ñообщите пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома внутри Ñкрытого ÑиÑтемного раздела, наличие же Ñкрытой ОС оÑтанетÑÑ Ð² тайне).\n\nРна ÑиÑтемный раздел Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰ÐµÐ¹ ÑÐµÐ¹Ñ‡Ð°Ñ ÐžÐ¡ вы уÑтановите новую, так называемую 'обманную' ОС и зашифруете её. Ð’ ней не должно быть конфиденциальных файлов, она нужна, еÑли Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ Ñообщить дозагрузочный пароль. Ð’ итоге будет три паролÑ. Два из них (Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС и внешнего тома) можно Ñообщать неприÑтелю. Третий пароль - Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñкрытой ОС.</string>
<string lang="ru" key="SYSENC_DRIVE_ANALYSIS_TITLE">ПоиÑк Ñкрытых Ñекторов</string>
- <string lang="ru" key="SYSENC_DRIVE_ANALYSIS_INFO">Подождите, VeraCrypt ищет Ñкрытые Ñектора, которые могут приÑутÑтвовать в конце ÑиÑтемного диÑка. Это может занÑÑ‚ÑŒ продолжительное времÑ.\n\nПримечание: в очень редких ÑлучаÑÑ… на некоторых компьютерах во Ð²Ñ€ÐµÐ¼Ñ Ñтой операции ÑиÑтема может переÑтать реагировать. Ð’ Ñтом Ñлучае перезагрузите компьютер, запуÑтите VeraCrypt, повторите предыдущие Ñтапы, но пропуÑтите Ñтот Ñтап поиÑка. ПроÑим учеÑÑ‚ÑŒ, что Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° вызвана не ошибкой в VeraCrypt.</string>
+ <string lang="ru" key="SYSENC_DRIVE_ANALYSIS_INFO">Подождите, идёт поиÑк Ñкрытых Ñекторов в конце ÑиÑтемного диÑка. Это может занÑÑ‚ÑŒ продолжительное времÑ.\n\nПримечание: в очень редких ÑлучаÑÑ… на некоторых ПК во Ð²Ñ€ÐµÐ¼Ñ Ñтой операции ÑиÑтема может переÑтать реагировать. ЕÑли Ñто произошло, перезагрузите ПК, запуÑтите VeraCrypt, повторите предыдущие Ñтапы, но пропуÑтите данный Ñтап поиÑка. Примечание: Ñта проблема вызвана не ошибкой в VeraCrypt.</string>
<string lang="ru" key="SYS_ENCRYPTION_SPAN_TITLE">ОблаÑÑ‚ÑŒ шифрованиÑ</string>
- <string lang="ru" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Выберите Ñту опцию, еÑли вы хотите зашифровать веÑÑŒ диÑк, где уÑтановлена ныне Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ Windows. Будет зашифрован веÑÑŒ диÑк, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð²Ñе его разделы, кроме первой дорожки, где находитÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸Ðº VeraCrypt. Ð”Ð»Ñ Ð´Ð¾Ñтупа к уÑтановленной на Ñтом диÑке ОС или файлам на нём потребуетÑÑ Ð²Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ пароль перед каждой загрузкой ÑиÑтемы. Эту опцию Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ или внешнего диÑка, еÑли Windows на нём не уÑтановлена или загружаетÑÑ Ð½ÐµÂ Ñ Ð½ÐµÐ³Ð¾.</string>
+ <string lang="ru" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Выберите Ñту опцию, еÑли хотите зашифровать веÑÑŒ диÑк, где уÑтановлена Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Windows. Будет зашифрован веÑÑŒ диÑк, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð²Ñе его разделы, кроме первой дорожки, где находитÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸Ðº VeraCrypt. Ð”Ð»Ñ Ð´Ð¾Ñтупа к уÑтановленной на Ñтом диÑке ОС или файлам на нём потребуетÑÑ Ð²Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ пароль перед каждой загрузкой ÑиÑтемы. Эту опцию Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ или внешнего диÑка, еÑли Windows на нём не уÑтановлена или загружаетÑÑ Ð½ÐµÂ Ñ Ð½ÐµÐ³Ð¾.</string>
<string lang="ru" key="COLLECTING_RANDOM_DATA_TITLE">Сбор Ñлучайных данных</string>
<string lang="ru" key="KEYS_GEN_TITLE">Сгенерированные ключи</string>
- <string lang="ru" key="CD_BURNER_NOT_PRESENT">VeraCrypt не удалоÑÑŒ найти в компьютере запиÑывающий CD/DVD-накопитель. Такой накопитель требуетÑÑ VeraCrypt Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи загрузочного диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (VeraCrypt Rescue Disk) Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ ключей шифрованиÑ, загрузчика VeraCrypt, иÑходного ÑиÑтемного загрузчика и др.\n\nМы наÑтоÑтельно рекомендуем вам запиÑать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt.</string>
+ <string lang="ru" key="CD_BURNER_NOT_PRESENT">Ðе удалоÑÑŒ найти подключённый к ПК пишущий CD/DVD-накопитель, необходимый Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи загрузочного диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (VeraCrypt Rescue Disk) Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ ключей шифрованиÑ, загрузчика VeraCrypt, иÑходного ÑиÑтемного загрузчика и др.\n\nÐаÑтоÑтельно рекомендуетÑÑ Ð·Ð°Ð¿Ð¸Ñать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt.</string>
<string lang="ru" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO">Пишущего CD/DVD-Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð½ÐµÑ‚, но Ñ Ñохраню ISO-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ñменном ноÑителе (например на флÑшке).</string>
<string lang="ru" key="CD_BURNER_NOT_PRESENT_WILL_CONNECT_LATER">Я подключу пишущий CD/DVD-накопитель позже. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñ Ñ…Ð¾Ñ‡Ñƒ прервать процеÑÑ.</string>
<string lang="ru" key="CD_BURNER_NOT_PRESENT_CONNECTED_NOW">Пишущий CD/DVD-накопитель ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ñ‘Ð½ к ПК. Продолжить и запиÑать диÑк воÑÑтановлениÑ.</string>
- <string lang="ru" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Сделайте Ñледующее:\n\n1) Подключите к ПК Ñменный накопитель (например флÑшку).\n\n2) Скопируйте на Ñменный накопитель файл-образ (%s) диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt.\n\nЕÑли в будущем вам понадобитÑÑ Ð´Ð¸Ñк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, вы проÑто подключите Ñменный накопитель (Ñ Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð¼ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt) к ПК Ñ Ð¿Ð¸ÑˆÑƒÑ‰Ð¸Ð¼ CD/DVD-накопителем и запишете Ñтот образ на CD или DVD. Ð’ÐЖÐО: Учтите, что файл-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt нужно запиÑать на CD/DVD как ISO-образ диÑка (а не как обычный файл).</string>
+ <string lang="ru" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Сделайте Ñледующее:\n\n1) Подключите к ПК Ñменный накопитель (например флÑшку).\n\n2) Скопируйте на Ñменный накопитель файл-образ (%s) диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt.\n\nЕÑли в будущем вам понадобитÑÑ Ð´Ð¸Ñк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, вы проÑто подключите Ñменный накопитель (Ñ Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð¼ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt) к ПК Ñ Ð¿Ð¸ÑˆÑƒÑ‰Ð¸Ð¼ CD/DVD-накопителем и запишете Ñтот образ на CD или DVD. Ð’ÐЖÐО: Файл-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt нужно запиÑать на CD/DVD как ISO-образ диÑка (а не как обычный файл).</string>
<string lang="ru" key="RESCUE_DISK_RECORDING_TITLE">ЗапиÑÑŒ диÑка воÑÑтановлениÑ</string>
<string lang="ru" key="RESCUE_DISK_CREATED_TITLE">ДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан</string>
<string lang="ru" key="SYS_ENCRYPTION_PRETEST_TITLE">Пре-теÑÑ‚ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы</string>
<string lang="ru" key="RESCUE_DISK_DISK_VERIFIED_TITLE">ДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÐ½</string>
- <string lang="ru" key="RESCUE_DISK_VERIFIED_INFO">\nДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk) прошёл проверку уÑпешно. Выньте его из Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ уберите в надёжное меÑто.\n\nÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
- <string lang="ru" key="REMOVE_RESCUE_DISK_FROM_DRIVE">Ð’ÐИМÐÐИЕ: Во Ð²Ñ€ÐµÐ¼Ñ Ñледующих Ñтапов в накопителе ÐЕ должно быть диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, иначе Ñти Ñтапы не удаÑÑ‚ÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾ завершить.\n\nВыньте диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ помеÑтите в надёжное меÑто. Затем нажмите OK.</string>
- <string lang="ru" key="PREBOOT_NOT_LOCALIZED">Внимание! Ð’ÑледÑтвие техничеÑких ограничений Ñреды до загрузки ОС, ÑообщениÑ, выводимые VeraCrypt на Ñтом Ñтапе (Ñ‚.е. до Ñтарта Windows), не подлежат локализации. ПользовательÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt - полноÑтью на английÑком Ñзыке.\n\nПродолжить?</string>
- <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO">Прежде чем зашифровать ÑиÑтемный раздел или диÑк, VeraCrypt должен проверить, что вÑÑ‘ работает должным образом.\n\nПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ 'ТеÑÑ‚' будут уÑтановлены вÑе необходимые компоненты (например дозагрузочный аутентификатор, Ñ‚.е. загрузчик VeraCrypt), и компьютер перезагрузитÑÑ. Затем на Ñкране загрузчика (VeraCrypt Boot Loader), который поÑвитÑÑ Ð´Ð¾ Ñтарта Windows, вам потребуетÑÑ Ð²Ð²ÐµÑти Ñвой пароль. ПоÑле запуÑка Windows вам автоматичеÑки Ñообщат о результатах Ñтого предварительного теÑта.\n\nБудет изменено Ñледующее уÑтройÑтво: ДиÑк #%d\n\n\nЕÑли ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ 'Отмена', то ничего уÑтановлено не будет, и пре-теÑÑ‚ не Ñтанет выполнÑÑ‚ÑŒÑÑ.</string>
- <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_1">Ð’ÐЖÐЫЕ ЗÐМЕЧÐÐИЯ -- ПРОЧИТÐЙТЕ ИЛИ РÐСПЕЧÐТÐЙТЕ (нажмите 'Печать'):\n\nÐикакие файлы не будут зашифрованы, пока вы не перезагрузите уÑпешно Ñвой ПК и не запуÑтите Windows. ПоÑтому еÑли произойдёт какой-то Ñбой, Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ данными ничего не ÑлучитÑÑ. Однако в Ñлучае, еÑли что-то пойдёт не так, возможны ÑложноÑти Ñ Ð·Ð°Ð¿ÑƒÑком Windows. ПоÑтому прочитайте (и, по возможноÑти, раÑпечатайте) Ñледующие рекомендации о том, что делать, еÑли Windows отказываетÑÑ Ð·Ð°Ð¿ÑƒÑкатьÑÑ Ð¿Ð¾Ñле перезагрузки ПК.\n\n</string>
- <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_2">Что делать, еÑли Windows не загружаетÑÑ ------------------------------------------------\n\nПРИМЕЧÐÐИЕ: Эти инÑтрукции дейÑтвительны, только еÑли вы не начинали шифрование.\n\n- ЕÑли вы вводите правильный пароль, а Windows не загружаетÑÑ (или еÑли при вводе правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ VeraCrypt раз за разом Ñообщает, что пароль неверный), не паникуйте. Перезагрузите (выключите и вновь включите) компьютер и при поÑвлении Ñкрана загрузчика VeraCrypt нажмите клавишу Esc на клавиатуре (а еÑли у Ð²Ð°Ñ Ð½ÐµÑколько ОС, выберите нужную Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка). ПоÑле Ñтого Windows должна запуÑтитьÑÑ (при уÑловии, что она не зашифрована), а VeraCrypt автоматичеÑки ÑпроÑит, хотите ли вы удалить компонент дозагрузочной аутентификации. Обратите внимание, что предыдущие шаги ÐЕ работают, еÑли ÑиÑтемный раздел/диÑк зашифрован (запуÑтить Windows или получить доÑтуп к зашифрованным данным без правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÂ Ð¼Ð¾Ð¶ÐµÑ‚ никто, даже еÑли он(а) выполнит предыдущие Ñтапы).\n\n</string>
- <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_3">- ЕÑли вышеÑказанное не помогает или еÑли Ñкран загрузчика VeraCrypt не поÑвлÑетÑÑ (перед Ñтартом Windows), вÑтавьте в CD/DVD-накопитель диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk) и перезагрузите ПК. ЕÑли Ñкран загрузчика VeraCrypt не поÑвлÑетÑÑ (или еÑли вы не видите пункта 'Repair Options' в группе 'Keyboard Controls' на Ñкране загрузчика VeraCrypt), возможно, в BIOS вашего ПК наÑтроена загрузка Ñначала Ñ Ð¶Ñ‘Ñткого диÑка, и лишь затем Ñ CD/DVD. ЕÑли Ñто так, перезагрузите ПК, нажмите F2 или Delete (как только увидите начальный Ñкран BIOS) и дождитеÑÑŒ поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñкрана Ñ Ð½Ð°Ñтройками BIOS. ЕÑли Ñтот Ñкран не поÑвилÑÑ, Ñнова перезагрузите ПК (нажмите кнопку Reset), Ñразу же начав чаÑто нажимать клавиши F2 или Delete. Ð’ поÑвившемÑÑ Ñкране наÑтроек BIOS Ñконфигурируйте ПК так, чтобы он Ñначала загружалÑÑ Ñ CD/DVD (о том, как Ñто Ñделать, Ñм. в документации на вашу ÑиÑтемную плату/BIOS). Снова перезагрузите компьютер. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ поÑвитьÑÑ Ñкран диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt. Ðа Ñтом Ñкране выберите 'Repair Options', нажав F8 на клавиатуре. Ð’ меню 'Repair Options' выберите 'Restore original system loader'. ПоÑле Ñтого выньте диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· CD/DVD-Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ перезагрузите ПК. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Windows должна запуÑтитьÑÑ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾ (при уÑловии, что она не зашифрована).\n\n</string>
- <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_4">Обратите внимание, что предыдущие шаги ÐЕ работают, еÑли ÑиÑтемный раздел/диÑк зашифрован (запуÑтить Windows или получить доÑтуп к зашифрованным данным без ввода правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÂ Ð¼Ð¾Ð¶ÐµÑ‚ никто, даже еÑли он(а) выполнит предыдущие Ñтапы).\n\n\nТакже имейте в виду, что еÑли вы потерÑете Ñвой диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, а ваш неприÑтель его найдёт, он ÐЕ Ñможет Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого диÑка раÑшифровать ÑиÑтемный раздел или диÑк, еÑли не знает правильного паролÑ.</string>
+ <string lang="ru" key="RESCUE_DISK_VERIFIED_INFO">\nДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk) уÑпешно прошёл проверку. Извлеките его из Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ уберите в надёжное меÑто.\n\nÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
+ <string lang="ru" key="REMOVE_RESCUE_DISK_FROM_DRIVE">Ð’ÐИМÐÐИЕ: Во Ð²Ñ€ÐµÐ¼Ñ Ñледующих Ñтапов в накопителе ÐЕ должно быть диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, иначе Ñти Ñтапы не удаÑÑ‚ÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾ завершить.\n\nИзвлеките диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ помеÑтите в надёжное меÑто. Затем нажмите OK.</string>
+ <string lang="ru" key="PREBOOT_NOT_LOCALIZED">Внимание! Ð’ÑледÑтвие техничеÑких ограничений дозагрузочной Ñреды, ÑообщениÑ, выводимые VeraCrypt на Ñтом Ñтапе (Ñ‚.е. до Ñтарта Windows), не подлежат локализации. Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt - полноÑтью на английÑком Ñзыке.\n\nПродолжить?</string>
+ <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO">Прежде чем зашифровать ÑиÑтемный раздел или диÑк, необходимо проверить, что вÑÑ‘ работает должным образом.\n\nПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ 'ТеÑÑ‚' будут уÑтановлены вÑе необходимые компоненты (например дозагрузочный аутентификатор, Ñ‚.е. загрузчик VeraCrypt), и компьютер перезагрузитÑÑ. Затем на Ñкране загрузчика (VeraCrypt Boot Loader), который поÑвитÑÑ Ð´Ð¾ Ñтарта Windows, вам потребуетÑÑ Ð²Ð²ÐµÑти Ñвой пароль. Результаты Ñтого предварительного теÑта будут автоматичеÑки показаны поÑле запуÑка Windows.\n\nБудет изменено Ñледующее уÑтройÑтво: ДиÑк #%d\n\n\nЕÑли ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ 'Отмена', то ничего уÑтановлено не будет, и пре-теÑÑ‚ не Ñтанет выполнÑÑ‚ÑŒÑÑ.</string>
+ <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_1">Ð’ÐЖÐЫЕ ЗÐМЕЧÐÐИЯ -- ПРОЧИТÐЙТЕ ИЛИ РÐСПЕЧÐТÐЙТЕ (нажмите 'Печать'):\n\nÐикакие файлы не будут зашифрованы, пока вы не перезагрузите уÑпешно ПК и не запуÑтите Windows. ПоÑтому еÑли произойдёт какой-то Ñбой, Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ данными ничего не ÑлучитÑÑ. Однако еÑли что-то пойдёт не так, возможны ÑложноÑти Ñ Ð·Ð°Ð¿ÑƒÑком Windows. ПоÑтому прочитайте (и по возможноÑти раÑпечатайте) Ñледующие рекомендации о том, что делать, еÑли Windows отказываетÑÑ Ð·Ð°Ð¿ÑƒÑкатьÑÑ Ð¿Ð¾Ñле перезагрузки ПК.\n\n</string>
+ <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_2">Что делать, еÑли Windows не загружаетÑÑ\n------------------------------------------------\n\nПРИМЕЧÐÐИЕ: Эти инÑтрукции дейÑтвительны, только еÑли не было начато шифрование.\n\n- ЕÑли вы вводите правильный пароль, а Windows не загружаетÑÑ (или при вводе правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ VeraCrypt раз за разом Ñообщает, что пароль неверный), не паникуйте. Перезагрузите (выключите и включите) ПК и при поÑвлении Ñкрана загрузчика VeraCrypt нажмите Esc (а еÑли у Ð²Ð°Ñ Ð½ÐµÑколько ОС, то выберите нужную). ПоÑле Ñтого Windows должна запуÑтитьÑÑ (еÑли она не зашифрована), а VeraCrypt автоматичеÑки ÑпроÑит, нужно ли удалить компонент дозагрузочной аутентификации. Внимание: предыдущие шаги ÐЕ работают, еÑли ÑиÑтемный раздел/диÑк зашифрован (без правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ð¸ÐºÑ‚Ð¾ не может запуÑтить Windows или получить доÑтуп к зашифрованным данным, даже еÑли выполнит предыдущие Ñтапы).\n\n</string>
+ <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_3">- ЕÑли вышеÑказанное не помогает или Ñкран загрузчика VeraCrypt не поÑвлÑетÑÑ (перед Ñтартом Windows), вÑтавьте в CD/DVD-накопитель диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk) и перезагрузите ПК. ЕÑли Ñкран загрузчика VeraCrypt не поÑвлÑетÑÑ (или нет пункта 'Repair Options' в группе 'Keyboard Controls' на Ñкране загрузчика VeraCrypt), возможно, в BIOS вашего ПК наÑтроена загрузка Ñначала Ñ Ð¶Ñ‘Ñткого диÑка, и лишь затем Ñ CD/DVD. ЕÑли Ñто так, перезагрузите ПК, нажмите F2 или Delete (как только увидите начальный Ñкран BIOS) и дождитеÑÑŒ поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñкрана Ñ Ð½Ð°Ñтройками BIOS. ЕÑли Ñтот Ñкран не поÑвилÑÑ, Ñнова перезагрузите ПК (нажмите кнопку Reset), Ñразу же начав чаÑто нажимать клавиши F2 или Delete. Ð’ поÑвившемÑÑ Ñкране наÑтроек BIOS Ñконфигурируйте ПК так, чтобы он Ñначала загружалÑÑ Ñ CD/DVD (о том, как Ñто Ñделать, Ñм. в документации на вашу ÑиÑтемную плату/BIOS). Снова перезагрузите компьютер. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ поÑвитьÑÑ Ñкран диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt. Ðа Ñтом Ñкране выберите 'Repair Options', нажав клавишу F8. Ð’ меню 'Repair Options' выберите 'Restore original system loader'. ПоÑле Ñтого извлеките диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· CD/DVD-Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ перезагрузите ПК. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Windows должна запуÑтитьÑÑ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾ (при уÑловии, что она не зашифрована).\n\n</string>
+ <string lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_4">Внимание: предыдущие шаги ÐЕ работают, еÑли ÑиÑтемный раздел/диÑк зашифрован (без правильного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ð¸ÐºÑ‚Ð¾ не может запуÑтить Windows или получить доÑтуп к зашифрованным данным, даже еÑли выполнит предыдущие Ñтапы).\n\n\nЕÑли вы потерÑете диÑк воÑÑтановлениÑ, а его найдёт неприÑтель, то он ÐЕ Ñможет Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого диÑка раÑшифровать ÑиÑтемный раздел или диÑк, еÑли не знает правильного паролÑ.</string>
<string lang="ru" key="SYS_ENCRYPTION_PRETEST_RESULT_TITLE">Пре-теÑÑ‚ выполнен</string>
- <string lang="ru" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">Пре-теÑÑ‚ уÑпешно завершён.\n\nÐ’ÐИМÐÐИЕ: ЕÑли во Ð²Ñ€ÐµÐ¼Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾Ð¹Ð´Ñ‘Ñ‚ Ñбой Ð¿Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ из-за программной/аппаратной ошибки завиÑнет Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема, в то времÑ, как VeraCrypt шифрует имеющиеÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ 'на меÑте', некоторые данные почти навернÑка окажутÑÑ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ñ‹Ð¼Ð¸ или утерÑнными. ПоÑтому прежде чем начать шифрование, убедитеÑÑŒ, что Ñделали резервную копию файлов, которые ÑобираетеÑÑŒ зашифровать. ЕÑли нет, то Ñделайте Ñто ÑÐµÐ¹Ñ‡Ð°Ñ (нажмите 'Отложить', Ñкопируйте файлы, затем в любое Ð²Ñ€ÐµÐ¼Ñ Ñнова запуÑтите VeraCrypt, выберите 'СиÑтема' &gt; 'Возобновить прерванный процеÑÑ', чтобы начать шифрование).\n\nКогда будете готовы, нажмите 'ШифрациÑ', чтобы приÑтупить к шифрованию.</string>
+ <string lang="ru" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">Пре-теÑÑ‚ уÑпешно завершён.\n\nÐ’ÐИМÐÐИЕ: ЕÑли во Ð²Ñ€ÐµÐ¼Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾Ð¹Ð´Ñ‘Ñ‚ Ñбой Ð¿Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ из-за программной/аппаратной ошибки завиÑнет Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема в то времÑ, как VeraCrypt шифрует имеющиеÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ 'на меÑте', некоторые из них окажутÑÑ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ñ‹Ð¼Ð¸ или утерÑнными. ПоÑтому прежде чем начать шифрование, убедитеÑÑŒ, что Ñделали резервную копию файлов, которые ÑобираетеÑÑŒ зашифровать. ЕÑли нет, то Ñделайте Ñто ÑÐµÐ¹Ñ‡Ð°Ñ (нажмите 'Отложить', Ñкопируйте файлы, затем в любое Ð²Ñ€ÐµÐ¼Ñ Ñнова запуÑтите VeraCrypt, выберите 'СиÑтема' &gt; 'Возобновить прерванный процеÑÑ', чтобы начать шифрование).\n\nКогда будете готовы, нажмите 'ШифрациÑ', чтобы приÑтупить к шифрованию.</string>
<string lang="ru" key="SYSENC_ENCRYPTION_PAGE_INFO">Ð’Ñ‹ можете в любой момент нажать 'Пауза' или 'Отложить', прервав (де)шифрование, выйти из Ñтого маÑтера, перезагрузить или выключить ПК, а затем продолжить процеÑÑ (он возобновитÑÑ Ñ Ñ‚Ð¾Ð¹ точки, где был приоÑтановлен). Ð”Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð¼ÐµÐ´Ð»ÐµÐ½Ð¸Ñ, когда ÑиÑтема или Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑÑŽÑ‚ чтение или запиÑÑŒ на ÑиÑтемном диÑке, VeraCrypt ждёт, пока данные будут запиÑаны или прочтены (Ñм. Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð²Ñ‹ÑˆÐµ), а затем продолжает (де)шифрование.</string>
- <string lang="ru" key="NONSYS_INPLACE_ENC_ENCRYPTION_PAGE_INFO">\n\nÐ’Ñ‹ можете в любой момент нажать 'Пауза' или 'Отложить', прервав шифрование, выйти из Ñтого маÑтера, перезагрузить или выключить ПК, а затем продолжить процеÑÑ (он возобновитÑÑ Ñ Ñ‚Ð¾Ð¹ точки, где был приоÑтановлен). Учтите, что том не может быть Ñмонтирован, пока не будет полноÑтью зашифрован.</string>
- <string lang="ru" key="NONSYS_INPLACE_DEC_DECRYPTION_PAGE_INFO">\n\nÐ’Ñ‹ можете в любой момент нажать 'Пауза' или 'Отложить', прервав дешифрование, выйти из Ñтого маÑтера, перезагрузить или выключить ПК, а затем продолжить процеÑÑ (он возобновитÑÑ Ñ Ñ‚Ð¾Ð¹ точки, где был приоÑтановлен). Учтите, что том не может быть Ñмонтирован, пока не будет полноÑтью раÑшифрован.</string>
+ <string lang="ru" key="NONSYS_INPLACE_ENC_ENCRYPTION_PAGE_INFO">\n\nÐ’Ñ‹ можете в любой момент нажать 'Пауза' или 'Отложить', прервав шифрование, выйти из Ñтого маÑтера, перезагрузить или выключить ПК, а затем продолжить процеÑÑ (он возобновитÑÑ Ñ Ñ‚Ð¾Ð¹ точки, где был приоÑтановлен). Учтите, что том Ð½ÐµÐ»ÑŒÐ·Ñ Ñмонтировать, пока он не будет полноÑтью зашифрован.</string>
+ <string lang="ru" key="NONSYS_INPLACE_DEC_DECRYPTION_PAGE_INFO">\n\nÐ’Ñ‹ можете в любой момент нажать 'Пауза' или 'Отложить', прервав дешифрование, выйти из Ñтого маÑтера, перезагрузить или выключить ПК, а затем продолжить процеÑÑ (он возобновитÑÑ Ñ Ñ‚Ð¾Ð¹ точки, где был приоÑтановлен). Учтите, что том Ð½ÐµÐ»ÑŒÐ·Ñ Ñмонтировать, пока он не будет полноÑтью раÑшифрован.</string>
<string lang="ru" key="SYSENC_HIDDEN_OS_INITIAL_INFO_TITLE">Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтема запущена</string>
<string lang="ru" key="SYSENC_HIDDEN_OS_WIPE_INFO_TITLE">ИÑÑ…Ð¾Ð´Ð½Ð°Ñ ÑиÑтема</string>
- <string lang="ru" key="SYSENC_HIDDEN_OS_WIPE_INFO">Windows Ñоздаёт (обычно без вашего ведома или ÑоглаÑиÑ) различные файлы отчётов, временные файлы и т.п. на ÑиÑтемном разделе. Кроме того, там же она ÑохранÑет Ñодержимое ОЗУ Ð´Ð»Ñ Ñна/гибернации и файлы подкачки. ПоÑтому еÑли неприÑтель проанализирует файлы на разделе Ñ Ð¸Ñходной ÑиÑтемой (клоном которой ÑвлÑетÑÑ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡), он может узнать, например, что вы пользовалиÑÑŒ маÑтером VeraCrypt в режиме ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ÑиÑтемы (и заподозрить наличие Ñкрытой ОС в вашем ПК).\n\nЧтобы Ñто предотвратить, на Ñледующих Ñтапах VeraCrypt надёжно Ñотрёт вÑÑ‘ Ñодержимое раздела, где находитÑÑ Ð¸ÑÑ…Ð¾Ð´Ð½Ð°Ñ ÑиÑтема. Затем Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð´Ð¾Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾Ñти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‡Ð°ÑтноÑти вам потребуетÑÑ ÑƒÑтановить в раздел новую ÑиÑтему и зашифровать её. Таким образом, вы Ñоздадите обманную ОС, и на Ñтом процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС будет завершён.</string>
+ <string lang="ru" key="SYSENC_HIDDEN_OS_WIPE_INFO">Windows Ñоздаёт на ÑиÑтемном разделе (обычно без вашего ведома или ÑоглаÑиÑ) различные файлы журналов, временные файлы и т.п. Кроме того, там же ÑохранÑÑŽÑ‚ÑÑ Ñодержимое ОЗУ Ð´Ð»Ñ Ñна/гибернации и файлы подкачки. ПоÑтому еÑли неприÑтель проанализирует файлы на разделе Ñ Ð¸Ñходной ÑиÑтемой (клоном которой ÑвлÑетÑÑ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡), он может узнать, например, что вы пользовалиÑÑŒ маÑтером VeraCrypt в режиме ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ÑиÑтемы (и заподозрить наличие в ПК Ñкрытой ОС).\n\nЧтобы Ñто предотвратить, на Ñледующих Ñтапах VeraCrypt надёжно Ñотрёт вÑÑ‘ Ñодержимое раздела, где находитÑÑ Ð¸ÑÑ…Ð¾Ð´Ð½Ð°Ñ ÑиÑтема. Затем Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð´Ð¾Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾Ñти Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‡Ð°ÑтноÑти вам потребуетÑÑ ÑƒÑтановить в раздел новую ÑиÑтему и зашифровать её. Таким образом, вы Ñоздадите обманную ОС, и на Ñтом процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС будет завершён.</string>
<string lang="ru" key="OS_WIPING_NOT_FINISHED_ASK">Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ уÑпешно Ñоздана. Ðо прежде чем её можно будет иÑпользовать (и иметь возможноÑÑ‚ÑŒ правдоподобного Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‡Ð°ÑтноÑти), требуетÑÑ Ð½Ð°Ð´Ñ‘Ð¶Ð½Ð¾ удалить (Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ VeraCrypt) вÑÑ‘ Ñодержимое раздела, в котором ÑÐµÐ¹Ñ‡Ð°Ñ ÑƒÑтановлена Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐžÐ¡. Прежде чем Ñто Ñделать, перезагрузите ПК и на Ñкране загрузчика VeraCrypt (выводимого до Ñтарта Windows) введите пароль дозагрузочной аутентификации Ð´Ð»Ñ Ñкрытой ОС. Затем поÑле Ñтарта Ñкрытой ÑиÑтемы автоматичеÑки запуÑтитÑÑ Ð¼Ð°Ñтер VeraCrypt.\n\nПримечание: еÑли ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ñ‚ÑŒ Ñоздание Ñкрытой ОС, то возобновить Ñтот процеÑÑ ÐЕ удаÑÑ‚ÑÑ, и ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡ окажетÑÑ Ð½ÐµÐ´Ð¾Ñтупна (так как будет удалён загрузчик VeraCrypt).</string>
- <string lang="ru" key="HIDDEN_OS_CREATION_NOT_FINISHED_ASK">Ð’Ñ‹ запланировали Ñоздание Ñкрытой операционной ÑиÑтемы. Этот процеÑÑ ÐµÑ‰Ñ‘ не закончен. Чтобы его завершить, нужно перезагрузить компьютер и на Ñкране загрузчика VeraCrypt (он поÑвлÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ запуÑком Windows) ввеÑти пароль Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы.\n\nПримечание: еÑли вы решите прервать ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС, вы уже ÐЕ Ñможете его возобновить.</string>
+ <string lang="ru" key="HIDDEN_OS_CREATION_NOT_FINISHED_ASK">Ð’Ñ‹ запланировали Ñоздание Ñкрытой операционной ÑиÑтемы. Этот процеÑÑ ÐµÑ‰Ñ‘ не закончен. Чтобы его завершить, нужно перезагрузить компьютер и на Ñкране загрузчика VeraCrypt (он поÑвлÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ запуÑком Windows) ввеÑти пароль Ð´Ð»Ñ Ñкрытой операционной ÑиÑтемы.\n\nПримечание: еÑли вы решите прервать ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС, то уже ÐЕ Ñможете его возобновить.</string>
<string lang="ru" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_RETRY">Перезагрузить ПК и продолжить</string>
<string lang="ru" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_TERMINATE">Окончательно прервать Ñоздание Ñкрытой ОС</string>
<string lang="ru" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_ASK_LATER">Ðичего не делать ÑейчаÑ, ÑпроÑить позже</string>
<string lang="ru" key="RESCUE_DISK_HELP_PORTION_1">\nПО ВОЗМОЖÐОСТИ РÐСПЕЧÐТÐЙТЕ ЭТОТ ТЕКСТ (нажмите 'Печать' ниже).\n\n\nКак и когда иÑпользовать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (поÑле шифрованиÑ) -----------------------------------------------------------------------------------\n\n</string>
- <string 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</string>
+ <string 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</string>
<string lang="ru" key="RESCUE_DISK_HELP_PORTION_3">II. Когда и как иÑпользовать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (поÑле шифрованиÑ)\n\n</string>
- <string 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</string>
- <string lang="ru" key="RESCUE_DISK_HELP_PORTION_5">2) ЕÑли вы вводите правильный пароль, а VeraCrypt говорит, что пароль неверный, возможно, повреждены маÑтер-ключ или другие критичеÑкие данные. ДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt позволÑет воÑÑтановить их и, таким образом, вновь получить доÑтуп к зашифрованной ÑиÑтеме и данным (однако вам вÑÑ‘ равно будет нужно ввеÑти правильный пароль). Ðа Ñкране Rescue Disk выберите 'Repair Options' &gt; 'Restore key data'. Затем введите Ñвой пароль, нажмите 'Y' Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð´ÐµÐ¹ÑтвиÑ, выньте диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· CD/DVD-Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ перезагрузите компьютер.\n\n</string>
+ <string 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</string>
+ <string lang="ru" key="RESCUE_DISK_HELP_PORTION_5">2) ЕÑли вы вводите правильный пароль, а VeraCrypt говорит, что он неверный, возможно, повреждены маÑтер-ключ или другие важные данные. ДиÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt позволÑет воÑÑтановить их и, таким образом, вновь получить доÑтуп к зашифрованной ÑиÑтеме и данным (однако вÑÑ‘ равно нужно будет ввеÑти правильный пароль). Ðа Ñкране Rescue Disk выберите 'Repair Options' &gt; 'Restore key data'. Затем введите Ñвой пароль, нажмите 'Y' Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð´ÐµÐ¹ÑтвиÑ, выньте диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· CD/DVD-Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‚ÐµÐ»Ñ Ð¸ перезагрузите компьютер.\n\n</string>
<string lang="ru" key="RESCUE_DISK_HELP_PORTION_6">3) ЕÑли загрузчик VeraCrypt повреждён или инфицирован вируÑом, вы можете избежать его выполнениÑ, загрузившиÑÑŒ непоÑредÑтвенно Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt. Ð’Ñтавьте диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð² CD/DVD-накопитель и затем введите Ñвой пароль на Ñкране Rescue Disk.\n\n</string>
- <string 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</string>
- <string lang="ru" key="RESCUE_DISK_HELP_PORTION_8">Ðльтернативный вариант: еÑли Windows повреждена (не запуÑкаетÑÑ), и вам нужно её воÑÑтановить (или получить доÑтуп к её файлам), Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного раздела/диÑка можно избежать, еÑли выполнить Ñледующие шаги. ЕÑли в вашем компьютере уÑтановлено неÑколько операционных ÑиÑтем, загрузите ту из них, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½ÐµÂ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ дозагрузочной аутентификации. ЕÑли в ПК нет неÑкольких уÑтановленных ОС, можно загрузитьÑÑ Ñ CD/DVD Ñ WinPE или BartPE, либо подключить ÑиÑтемный диÑк как вторичный или внешний накопитель к другому компьютеру и загрузить уÑтановленную на Ñтом ПК операционную ÑиÑтему. ПоÑле того как ÑиÑтема загрузитÑÑ, запуÑтите VeraCrypt, нажмите кнопку 'УÑтройÑтво', выберите неиÑправный ÑиÑтемный раздел, нажмите OK, выберите 'СиÑтема' &gt; 'Смонтировать без дозагрузочной аутентификации', введите Ñвой пароль Ð´Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации и нажмите OK. Раздел будет Ñмонтирован как обычный том VeraCrypt (данные будут как обычно раÑшифровыватьÑÑ/шифроватьÑÑ 'на лету' в ОЗУ при доÑтупе к ним).\n\n\n</string>
+ <string 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</string>
+ <string lang="ru" key="RESCUE_DISK_HELP_PORTION_8">Ðльтернативный вариант: еÑли Windows повреждена (не запуÑкаетÑÑ), и вам нужно её воÑÑтановить (или получить доÑтуп к её файлам), Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного раздела/диÑка можно избежать, выполнив Ñледующее. ЕÑли в компьютере уÑтановлено неÑколько операционных ÑиÑтем, загрузите ту из них, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½ÐµÂ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ дозагрузочной аутентификации. ЕÑли неÑкольких ОС нет, то можно загрузитьÑÑ Ñ CD/DVD Ñ WinPE или BartPE, либо подключить ÑиÑтемный диÑк как вторичный или внешний накопитель к другому компьютеру и загрузить уÑтановленную на Ñтом ПК операционную ÑиÑтему. ПоÑле того как ÑиÑтема загрузитÑÑ, запуÑтите VeraCrypt, нажмите кнопку 'УÑтройÑтво', выберите неиÑправный ÑиÑтемный раздел, нажмите OK, выберите 'СиÑтема' &gt; 'Смонтировать без дозагрузочной аутентификации', введите Ñвой пароль Ð´Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации и нажмите OK. Раздел будет Ñмонтирован как обычный том VeraCrypt (данные будут как обычно раÑшифровыватьÑÑ/шифроватьÑÑ 'на лету' в ОЗУ при доÑтупе к ним).\n\n\n</string>
<string lang="ru" key="RESCUE_DISK_HELP_PORTION_9">Обратите внимание, что еÑли вы потерÑете Ñвой диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, а ваш неприÑтель его найдёт, он ÐЕ Ñможет Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого диÑка раÑшифровать ÑиÑтемный раздел или диÑк, еÑли не знает правильного паролÑ.</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_1">\n\nÐ’ РЖ РО -- ПО ВОЗМОЖÐОСТИ РÐСПЕЧÐТÐЙТЕ ЭТОТ ТЕКСТ (нажмите 'Печать').\n\n\nПримечание: Ñтот текÑÑ‚ отображаетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки при каждом запуÑке Ñкрытой ÑиÑтемы, пока не будет Ñоздана Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡.\n\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_2">Как надёжно и безопаÑно Ñоздать обманную ÑиÑтему ----------------------------------------------------------------------------\n\nЧтобы добитьÑÑ Ð¿Ñ€Ð°Ð²Ð´Ð¾Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾Ð³Ð¾ Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ñ‡Ð°ÑтноÑти, вам нужно Ñоздать ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½ÑƒÑŽ операционную ÑиÑтему. Ð”Ð»Ñ Ñтого выполните Ñледующее:\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_3">1) Ð’ целÑÑ… безопаÑноÑти выключите компьютер и не включайте его Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ неÑколько минут (чем дольше, тем лучше). Это нужно Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñтки памÑти, Ñодержащей конфиденциальные данные. Затем включите ПК, но не загружайте Ñкрытую ÑиÑтему.\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_4">2) УÑтановите Windows в раздел, Ñодержимое которого было удалено (Ñ‚.е. в раздел, где была иÑÑ…Ð¾Ð´Ð½Ð°Ñ ÐžÐ¡, клоном которой Ñтала ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтема).\n\nÐ’ÐЖÐО: КОГДРВЫ ÐÐЧÐÐТЕ УСТÐÐÐВЛИВÐТЬ ОБМÐÐÐУЮ ОС, ЗÐГРУЗКРСКРЫТОЙ СИСТЕМЫ СТÐÐЕТ *ÐЕВОЗМОЖÐОЙ* (так как загрузчик VeraCrypt будет Ñтёрт уÑтановщиком Windows). ЭТО ÐОРМÐЛЬÐÐЯ СИТУÐЦИЯ, ТÐК И ДОЛЖÐО БЫТЬ. ÐЕ ПÐÐИКУЙТЕ. ВЫ СМОЖЕТЕ СÐОВРЗÐГРУЖÐТЬ СКРЫТУЮ ОС, КÐК ТОЛЬКО ПРИСТУПИТЕ К ШИФРОВÐÐИЮ ОБМÐÐÐОЙ СИСТЕМЫ (поÑкольку VeraCrypt затем автоматичеÑки уÑтановит Ñвой загрузчик на ÑиÑтемный диÑк).\n\nÐ’ÐЖÐО: Размер раздела Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС должен оÑтаватьÑÑ Ñ‚Ð°ÐºÐ¸Ð¼ же, как и размер Ñкрытого тома (Ñто уÑловие ÑÐµÐ¹Ñ‡Ð°Ñ Ñоблюдено). Более того, Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздавать никаких разделов между разделами Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ и Ñкрытой ÑиÑтемами.\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_5">3) Загрузите обманную ОС (уÑтановленную на Ñтапе 2) и уÑтановите в ней VeraCrypt.\n\nПомните, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡ не должна Ñодержать никаких конфиденциальных данных.\n\n</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_4">2) УÑтановите Windows в раздел, Ñодержимое которого было удалено (Ñ‚.е. в раздел, где была иÑÑ…Ð¾Ð´Ð½Ð°Ñ ÐžÐ¡, клоном которой Ñтала ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтема).\n\nÐ’ÐЖÐО: КОГДРВЫ ÐÐЧÐÐТЕ УСТÐÐÐВЛИВÐТЬ ОБМÐÐÐУЮ ОС, ЗÐГРУЗКРСКРЫТОЙ СИСТЕМЫ СТÐÐЕТ *ÐЕВОЗМОЖÐОЙ* (так как загрузчик VeraCrypt будет Ñтёрт уÑтановщиком Windows). ЭТО ÐОРМÐЛЬÐÐЯ СИТУÐЦИЯ, ТÐК И ДОЛЖÐО БЫТЬ. ÐЕ ПÐÐИКУЙТЕ. ВЫ СМОЖЕТЕ СÐОВРЗÐГРУЖÐТЬ СКРЫТУЮ ОС, КÐК ТОЛЬКО ПРИСТУПИТЕ К ШИФРОВÐÐИЮ ОБМÐÐÐОЙ СИСТЕМЫ (поÑкольку VeraCrypt затем автоматичеÑки уÑтановит Ñвой загрузчик на ÑиÑтемный диÑк).\n\nÐ’ÐЖÐО: Размер раздела Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС должен оÑтаватьÑÑ Ñ‚Ð°ÐºÐ¸Ð¼Â Ð¶Ðµ, как и размер Ñкрытого тома (Ñто уÑловие ÑÐµÐ¹Ñ‡Ð°Ñ Ñоблюдено). Более того, Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздавать никаких разделов между разделами Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ и Ñкрытой ÑиÑтемами.\n\n</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_5">3) Загрузите обманную ОС (уÑтановленную на Ñтапе 2) и уÑтановите в ней VeraCrypt.\n\nПомните, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡ не должна Ñодержать никаких конфиденциальных данных.\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_6">4) Ð’ обманной ОС запуÑтите VeraCrypt и выберите 'СиÑтема' &gt; 'Зашифровать ÑиÑтемный раздел/диÑк'. Должно поÑвитьÑÑ Ð¾ÐºÐ½Ð¾ маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt.\n\nСледующие шаги отноÑÑÑ‚ÑÑ Ðº Ñтому маÑтеру.\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_7">5) Ð’ окне маÑтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² ÐЕ выбирайте опцию 'Скрытый'. ОÑтавьте опцию 'Обычный' и нажмите 'Далее'.\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_8">6) Выберите опцию 'Зашифровать ÑиÑтемный раздел Windows' и нажмите 'Далее'.\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_9">7) ЕÑли в ПК уÑтановлены только ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¸ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÑиÑтемы, выберите опцию 'ÐžÐ´Ð¸Ð½Ð¾Ñ‡Ð½Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ°' (еÑли в ПК больше ОС, чем Ñти две ÑиÑтемы, выберите 'Мультизагрузка'). Ðажмите 'Далее'.\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_10">8) Ð’ÐЖÐО: Ðа Ñтом Ñтапе, ДЛЯ ОБМÐÐÐОЙ ОС, ВЫ ДОЛЖÐЫ ВЫБРÐТЬ ТЕ ЖЕ ÐЛГОРИТМЫ ШИФРОВÐÐИЯ И ХЕШИРОВÐÐИЯ, ЧТО И ДЛЯ СКРЫТОЙ СИСТЕМЫ! ИÐÐЧЕ СКРЫТÐЯ СИСТЕМРБУДЕТ ÐЕДОСТУПÐÐ! Иными Ñловами, Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡ должна быть зашифрована тем же алгоритмом, что и ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡. Примечание: причина Ñтого Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² том, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ Ð¸ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтемы иÑпользуют один и тот же загрузчик, поддерживающий только один алгоритм, выбранный пользователем (Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ алгоритма еÑÑ‚ÑŒ Ñвой загрузчик VeraCrypt).\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_11">9) Выберите пароль Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС. Это пароль, который вы можете выдать неприÑтелю, еÑли Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ Ñообщить пароль дозагрузочной аутентификации (ещё один пароль, который мы можете Ñообщить - Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома). СущеÑтвование третьего Ð¿Ð°Ñ€Ð¾Ð»Ñ (Ñ‚.е.Â Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации Ð´Ð»Ñ Ñкрытой ОС) оÑтанетÑÑ Ñ‚Ð°Ð¹Ð½Ð¾Ð¹.\n\nÐ’ÐЖÐО: Пароль Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС должен ÑущеÑтвенно отличатьÑÑ Ð¾Ñ‚ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð»Ñ Ñкрытого тома (Ñ‚.е.Â Ð´Ð»Ñ Ñкрытой ОС).\n\n</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_9">7) ЕÑли в ПК уÑтановлены только ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð¸ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÑиÑтемы, выберите опцию 'ÐžÐ´Ð¸Ð½Ð¾Ñ‡Ð½Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ°' (еÑли помимо Ñтих двух ÑиÑтем в ПК еÑÑ‚ÑŒ другие ОС, выберите 'Мультизагрузка'). Ðажмите 'Далее'.\n\n</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_10">8) Ð’ÐЖÐО: Ðа Ñтом Ñтапе, ДЛЯ ОБМÐÐÐОЙ ОС, ВЫ ДОЛЖÐЫ ВЫБРÐТЬ ТЕ ЖЕ ÐЛГОРИТМЫ ШИФРОВÐÐИЯ И ХЕШИРОВÐÐИЯ, ЧТО И ДЛЯ СКРЫТОЙ СИСТЕМЫ! ИÐÐЧЕ СКРЫТÐЯ СИСТЕМРБУДЕТ ÐЕДОСТУПÐÐ! Иными Ñловами, Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡ должна быть зашифрована тем же алгоритмом, что и ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐžÐ¡. Причина Ñтого Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² том, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ Ð¸ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтемы иÑпользуют один и тот же загрузчик, поддерживающий только один алгоритм, выбранный пользователем (Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ алгоритма еÑÑ‚ÑŒ Ñвой загрузчик VeraCrypt).\n\n</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_11">9) Выберите пароль Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС. Это пароль, который можно выдать неприÑтелю, еÑли Ð²Ð°Ñ Ð²Ñ‹Ð½ÑƒÐ´ÑÑ‚ Ñообщить пароль дозагрузочной аутентификации (также можно Ñообщить пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома). СущеÑтвование третьего Ð¿Ð°Ñ€Ð¾Ð»Ñ (Ñ‚.е.Â Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации Ð´Ð»Ñ Ñкрытой ОС) оÑтанетÑÑ Ñ‚Ð°Ð¹Ð½Ð¾Ð¹.\n\nÐ’ÐЖÐО: Пароль Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС должен ÑущеÑтвенно отличатьÑÑ Ð¾Ñ‚ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð»Ñ Ñкрытого тома (Ñ‚.е.Â Ð´Ð»Ñ Ñкрытой ОС).\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_12">10) Следуйте инÑтрукциÑм маÑтера Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС.\n\n\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_13">ПоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ÑиÑтемы ------------------------------------------------\n\nПо окончании ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой ОС будет завершён, и вы Ñможете пользоватьÑÑ Ñ‚Ñ€ÐµÐ¼Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñми:\n\n1) Пароль дозагрузочной аутентификации Ð´Ð»Ñ Ñкрытой ОС.\n\n2) Пароль дозагрузочной аутентификации Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС.\n\n3) Пароль Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома.\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_14">ЕÑли вы хотите запуÑтить Ñкрытую ОС, нужно проÑто ввеÑти пароль Ð´Ð»Ñ Ñкрытой ОС на Ñкране загрузчика VeraCrypt (который поÑвлÑетÑÑ Ð¿Ñ€Ð¸ включении или перезагрузке ПК).\n\nЕÑли вам нужно загрузить обманную ОС, введите пароль Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС на Ñкране загрузчика VeraCrypt.\n\nПароль Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС можно Ñообщать вÑÑкому, кто потребует выдать пароль дозагрузочной аутентификации. Ðаличие Ñкрытого тома (и Ñкрытой ОС) оÑтанетÑÑ Ð² Ñекрете.\n\n</string>
<string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_15">Третий пароль (Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ тома) можно Ñообщать вÑÑкому, кто потребует выдать пароль Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ раздела, Ñледующего за ÑиÑтемным, где находÑÑ‚ÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¹ и Ñкрытый тома (Ñо Ñкрытой ОС). СущеÑтвование Ñкрытого тома (и Ñкрытой ОС) оÑтанетÑÑ Ñекретом.\n\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_16">ЕÑли вы Ñообщите неприÑтелю пароль от обманной ОС, и он ÑпроÑит, почему Ñвободное меÑто на (обманном) ÑиÑтемном разделе Ñодержит Ñлучайные данные, вы Ñможете, например, ответить: "Этот раздел раньше Ñодержал ÑиÑтему, зашифрованную VeraCrypt, но Ñ Ð·Ð°Ð±Ñ‹Ð»(а) пароль дозагрузочной аутентификации (или ÑиÑтема повредилаÑÑŒ и переÑтала загружатьÑÑ), поÑтому мне пришлоÑÑŒ переуÑтановить Windows и Ñнова зашифровать раздел".\n\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_17">ЕÑли выполнены вÑе инÑтрукции и учтены меры предоÑторожноÑти, опиÑанные в главе "Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти каÑательно Ñкрытых томов" в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt, определить наличие Ñкрытого тома и Ñкрытой ОС должно быть невозможно, даже еÑли Ñмонтирован внешний том или раÑшифрована/запущена Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡.\n\nЕÑли вы Ñохраните или раÑпечатаете копию Ñтого текÑта (Ñто наÑтоÑтельно рекомендуетÑÑ Ñделать, еÑли только ваш принтер не хранит копии заданий на Ñвоём внутреннем накопителе), то, Ñоздав обманную ÑиÑтему и убедившиÑÑŒ, что вы понÑли вÑÑ‘, что тут напиÑано, вÑе копии данного текÑта Ñледует уничтожить (иначе еÑли такую копию обнаружат, Ñто может навеÑти на мыÑль о наличии в ПК Ñкрытой ОС).\n\n</string>
- <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_18">Ð’ÐИМÐÐИЕ: ЕСЛИ ВЫ ÐЕ ЗÐЩИТИЛИ СКРЫТЫЙ ТОМ (о том, как Ñто Ñделать, Ñм. главу "Защита Ñкрытых томов от повреждений" в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt), ÐЕ ВЫПОЛÐЯЙТЕ ЗÐПИСЬ ВО Ð’ÐЕШÐИЙ ТОМ (обратите внимание, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡ уÑтановлена ÐЕ во внешнем томе). ИÐÐЧЕ ВЫ МОЖЕТЕ ПЕРЕЗÐПИСÐТЬ И ПОВРЕДИТЬ СКРЫТЫЙ ТОМ (И СКРЫТУЮ ОС Ð’ÐУТРИ ÐЕГО)!</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_16">ЕÑли вы Ñообщите неприÑтелю пароль от обманной ОС, и он ÑпроÑит, почему Ñвободное меÑто на (обманном) ÑиÑтемном разделе Ñодержит Ñлучайные данные, вы Ñможете, например, ответить: 'Этот раздел раньше Ñодержал ÑиÑтему, зашифрованную VeraCrypt, но Ñ Ð·Ð°Ð±Ñ‹Ð»(а) пароль дозагрузочной аутентификации (или ÑиÑтема повредилаÑÑŒ и переÑтала загружатьÑÑ), поÑтому мне пришлоÑÑŒ переуÑтановить Windows и Ñнова зашифровать раздел'.\n\n\n</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_17">ЕÑли выполнены вÑе инÑтрукции и учтены меры предоÑторожноÑти из главы 'Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти и меры предоÑторожноÑти каÑательно Ñкрытых томов' в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt, определить наличие Ñкрытого тома и Ñкрытой ОС должно быть невозможно, даже еÑли Ñмонтирован внешний том или раÑшифрована/запущена Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡.\n\nЕÑли вы Ñохраните или раÑпечатаете копию Ñтого текÑта (что наÑтоÑтельно рекомендуетÑÑ Ñделать, еÑли только принтер не хранит копии заданий на Ñвоём внутреннем накопителе), то, Ñоздав обманную ÑиÑтему и убедившиÑÑŒ, что вы понÑли вÑÑ‘, что тут напиÑано, вÑе копии данного текÑта Ñледует уничтожить (иначе еÑли такую копию обнаружат, Ñто может навеÑти на мыÑль о наличии в ПК Ñкрытой ОС).\n\n</string>
+ <string lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_18">Ð’ÐИМÐÐИЕ: ЕСЛИ ВЫ ÐЕ ЗÐЩИТИЛИ СКРЫТЫЙ ТОМ (Ñм. главу 'Защита Ñкрытых томов от повреждений' в РуководÑтве Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ VeraCrypt), ÐЕ ВЫПОЛÐЯЙТЕ ЗÐПИСЬ ВО Ð’ÐЕШÐИЙ ТОМ (обратите внимание, что Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ ÐžÐ¡ уÑтановлена ÐЕ во внешнем томе). ИÐÐЧЕ ВЫ МОЖЕТЕ ПЕРЕЗÐПИСÐТЬ И ПОВРЕДИТЬ СКРЫТЫЙ ТОМ (И СКРЫТУЮ ОС Ð’ÐУТРИ ÐЕГО)!</string>
<string lang="ru" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Клонирование ОС</string>
<string lang="ru" key="HIDDEN_OS_CREATION_PREINFO_HELP">Ðа Ñледующих Ñтапах VeraCrypt ÑоздаÑÑ‚ Ñкрытую ОС, Ñкопировав Ñодержимое ÑиÑтемного раздела в Ñкрытый том (копируемые данные шифруютÑÑ 'на лету' Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼, отличным от иÑпользуемого Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС).\n\nУчтите, что процеÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ Ð½Ð° дозагрузочной Ñтадии (до запуÑка Windows) и может занÑÑ‚ÑŒ много времени (неÑколько чаÑов или даже дней, в завиÑимоÑти от размера ÑиÑтемного раздела и быÑтродейÑÑ‚Ð²Ð¸Ñ ÐŸÐš).\n\nÐ’Ñ‹ Ñможете прервать Ñтот процеÑÑ, выключить ПК, запуÑтить ОС и затем возобновить его. Однако в Ñлучае прерываниÑ, копирование ÑиÑтемы придётÑÑ Ð½Ð°Ñ‡Ð°Ñ‚ÑŒ Ñначала (так как при клонировании Ñодержимое ÑиÑтемного раздела не должно изменÑÑ‚ÑŒÑÑ).</string>
- <string lang="ru" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Ð’Ñ‹ хотите отменить веÑÑŒ процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой операционной ÑиÑтемы?\n\nПримечание: в Ñлучае отмены вы ÐЕ Ñможете возобновить процеÑÑ.</string>
+ <string lang="ru" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Ð’Ñ‹ хотите отменить веÑÑŒ процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой операционной ÑиÑтемы?\n\nПри отмене вы ÐЕ Ñможете затем продолжить процеÑÑ.</string>
<string lang="ru" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Ð’Ñ‹ хотите отменить пре-теÑÑ‚ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы?</string>
- <string lang="ru" key="BOOT_PRETEST_FAILED_RETRY">Пре-теÑÑ‚ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы не пройден. Хотите повторить попытку?\n\nПри выборе 'Ðет' компонент дозагрузочной аутентификации будет удалён.\n\nПримечаниÑ:\n\n- ЕÑли загрузчик VeraCrypt не проÑил Ð²Ð°Ñ Ð²Ð²ÐµÑти пароль перед Ñтартом Windows, возможно, ваша ОС загружаетÑÑ Ð½ÐµÂ Ñ Ñ‚Ð¾Ð³Ð¾ диÑка, на котором она уÑтановлена. Ð¢Ð°ÐºÐ°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½ÐµÂ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ÑÑ.\n\n- ЕÑли вы иÑпользуете отличный от AES алгоритм шифрованиÑ, и пре-теÑÑ‚ выдаёт ошибку (и вы ввели пароль), Ñто может быть вызвано некорректным драйвером. Выберите 'Ðет' и попробуйте Ñнова зашифровать ÑиÑтемный раздел/диÑк, но Ñ Ð¸Ñпользованием алгоритма AES (он предъÑвлÑет наименьшие Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº памÑти).\n\n- С другими причинами и решениÑми вы можете ознакомитьÑÑ Ð·Ð´ÐµÑÑŒ: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
- <string lang="ru" key="SYS_DRIVE_NOT_ENCRYPTED">Ð¡ÑƒÐ´Ñ Ð¿Ð¾ вÑему, ÑиÑтемный раздел/диÑк не зашифрован (ни чаÑтично, ни полноÑтью).</string>
- <string lang="ru" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">СиÑтемный раздел/диÑк зашифрован (чаÑтично или полноÑтью).\n\nПрежде чем продолжить, полноÑтью дешифруйте ÑиÑтемный раздел/диÑк. Чтобы Ñто Ñделать, выберите в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Перманентно раÑшифровать ÑиÑтемный раздел/диÑк'.</string>
- <string lang="ru" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">ЕÑли ÑиÑтемный раздел/диÑк зашифрован (чаÑтично или полноÑтью), уÑтанавливать VeraCrypt более Ñтарой верÑии Ð½ÐµÐ»ÑŒÐ·Ñ (но можно уÑтанавливать более новую или ту же верÑию).</string>
- <string lang="ru" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Ð’ данный момент идёт шифрование, дешифрование или Ð¸Ð½Ð°Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ ÑиÑтемного раздела/диÑка. Прежде чем продолжить, прервите процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ/дешифрованиÑ/модификации (или дождитеÑÑŒ его окончаниÑ).</string>
- <string lang="ru" key="SYSTEM_ENCRYPTION_IN_PROGRESS_ELSEWHERE">Ð’ ÑиÑтеме уже запущена ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð°Ñтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt, она выполнÑет или подготавливает шифрование/дешифрование ÑиÑтемного раздела/диÑка. Прежде чем продолжить, дождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ маÑтера или закройте его. ЕÑли закрыть окно маÑтера не удаётÑÑ, перезагрузите ПК и продолжите.</string>
- <string lang="ru" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">Шифрование или дешифрование ÑиÑтемного раздела/диÑка не завершено. Прежде чем продолжить, дождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñтого процеÑÑа.</string>
+ <string 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</string>
+ <string lang="ru" key="SYS_DRIVE_NOT_ENCRYPTED">Похоже, ÑиÑтемный раздел/диÑк не зашифрован (ни чаÑтично, ни полноÑтью).</string>
+ <string lang="ru" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">СиÑтемный раздел/диÑк зашифрован (чаÑтично или полноÑтью).\n\nПрежде чем продолжить, полноÑтью раÑшифруйте ÑиÑтемный раздел/диÑк. Чтобы Ñто Ñделать, выберите в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Перманентно раÑшифровать ÑиÑтемный раздел/диÑк'.</string>
+ <string lang="ru" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">ЕÑли ÑиÑтемный раздел/диÑк зашифрован (чаÑтично или полноÑтью), Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÑтанавливать VeraCrypt более Ñтарой верÑии (но можно более новую или ту же верÑию).</string>
+ <string lang="ru" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ (де)шифрование или Ð¸Ð½Ð°Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ ÑиÑтемного раздела/диÑка. Прежде чем продолжить, прервите процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ/дешифрованиÑ/модификации (или дождитеÑÑŒ его окончаниÑ).</string>
+ <string lang="ru" key="SYSTEM_ENCRYPTION_IN_PROGRESS_ELSEWHERE">Ð’ ÑиÑтеме уже запущена ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð°Ñтера ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ð¼Ð¾Ð² VeraCrypt, она выполнÑет или подготавливает (де)шифрование ÑиÑтемного раздела/диÑка. Прежде чем продолжить, дождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ маÑтера или закройте его. ЕÑли закрыть окно маÑтера не удаётÑÑ, перезагрузите ПК и продолжите.</string>
+ <string lang="ru" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">(Де)шифрование ÑиÑтемного раздела/диÑка не завершено. Прежде чем продолжить, дождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñтого процеÑÑа.</string>
<string lang="ru" key="ERR_ENCRYPTION_NOT_COMPLETED">ОШИБКÐ: Шифрование раздела/диÑка не было завершено. Сначала его нужно завершить.</string>
<string lang="ru" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">ОШИБКÐ: Шифрование раздела/тома не было завершено. Сначала его нужно завершить.\n\nПримечание: чтобы возобновить процеÑÑ, выберите команду 'Тома' &gt; 'Продолжить прерванный процеÑÑ' в меню главного окна VeraCrypt.</string>
- <string lang="ru" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Пароль правильный. VeraCrypt уÑпешно раÑшифровал заголовок тома и обнаружил, что Ñтот том ÑвлÑетÑÑ Ñкрытым ÑиÑтемным томом. Однако изменить заголовок Ñкрытого ÑиÑтемного тома таким ÑпоÑобом нельзÑ.\n\nЧтобы изменить пароль Ñкрытого ÑиÑтемного тома, загрузите ОС, раÑположенную в Ñкрытом томе, поÑле чего в главном окне VeraCrypt выберите в меню 'СиÑтема' &gt; 'Изменить пароль'.\n\nЧтобы уÑтановить алгоритм деривации ключа заголовка, загрузите Ñкрытую ОС и выберите 'СиÑтема' &gt; 'УÑтановить алгоритм деривации ключа заголовка'.</string>
- <string lang="ru" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt не поддерживает дешифрование Ñкрытого ÑиÑтемного раздела на меÑте.\n\nПримечание: еÑли вы хотите дешифровать обманный ÑиÑтемный раздел, загрузите обманную ОС, поÑле чего выберите в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Перманентно раÑшифровать ÑиÑтемный раздел/диÑк'.</string>
+ <string lang="ru" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Пароль правильный. Программа VeraCrypt уÑпешно раÑшифровала заголовок тома и обнаружила, что Ñто Ñкрытый ÑиÑтемный том. Однако изменить заголовок Ñкрытого ÑиÑтемного тома таким ÑпоÑобом нельзÑ.\n\nЧтобы изменить пароль Ñкрытого ÑиÑтемного тома, загрузите ОС, раÑположенную в Ñкрытом томе, поÑле чего в главном окне VeraCrypt выберите в меню 'СиÑтема' &gt; 'Изменить пароль'.\n\nЧтобы уÑтановить алгоритм деривации ключа заголовка, загрузите Ñкрытую ОС и выберите 'СиÑтема' &gt; 'УÑтановить алгоритм деривации ключа заголовка'.</string>
+ <string lang="ru" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt не поддерживает дешифрование Ñкрытого ÑиÑтемного раздела 'на меÑте'.\n\nПримечание: еÑли вы хотите раÑшифровать обманный ÑиÑтемный раздел, загрузите обманную ОС, поÑле чего выберите в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Перманентно раÑшифровать ÑиÑтемный раздел/диÑк'.</string>
<string lang="ru" key="ERR_PARAMETER_INCORRECT">ОШИБКÐ: Ðеверный/недопуÑтимый параметр.</string>
<string lang="ru" key="DEVICE_SELECTED_IN_NON_DEVICE_MODE">Ð’Ñ‹ выбрали раздел или уÑтройÑтво, но выбранный режим маÑтера подходит только Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ñ‹Ñ… контейнеров.\n\nХотите изменить режим маÑтера?</string>
<string lang="ru" key="CONFIRM_CHANGE_WIZARD_MODE_TO_FILE_CONTAINER">Хотите вмеÑто Ñтого Ñоздать файловый контейнер VeraCrypt?</string>
<string lang="ru" key="CONFIRM_SYSTEM_ENCRYPTION_MODE">Ð’Ñ‹ указали ÑиÑтемный раздел/диÑк (или загрузочный раздел), но выбранный режим маÑтера подходит только Ð´Ð»Ñ Ð½ÐµÑиÑтемных разделов/диÑков.\n\nХотите уÑтановить дозагрузочную аутентификацию (Ñ‚.е. нужно будет вводить пароль перед каждым запуÑком Windows) и зашифровать ÑиÑтему/раздел?</string>
<string lang="ru" key="CONFIRM_DECRYPT_SYS_DEVICE">Ð’Ñ‹ дейÑтвительно хотите перманентно раÑшифровать ÑиÑтемный раздел/диÑк?</string>
- <string lang="ru" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">ОСТОРОЖÐО: ЕÑли вы перманентно раÑшифруете ÑиÑтемный раздел/диÑк, данные на него будут запиÑыватьÑÑ Ð² незашифрованном виде.\n\nÐ’Ñ‹ дейÑтвительно хотите перманентно раÑшифровать ÑиÑтемный раздел/диÑк?</string>
+ <string lang="ru" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">ОСТОРОЖÐО: ЕÑли перманентно раÑшифровать ÑиÑтемный раздел/диÑк, данные на него будут запиÑыватьÑÑ Ð² незашифрованном виде.\n\nÐ’Ñ‹ дейÑтвительно хотите перманентно раÑшифровать ÑиÑтемный раздел/диÑк?</string>
<string lang="ru" key="CONFIRM_DECRYPT_NON_SYS_DEVICE">Ð’Ñ‹ дейÑтвительно хотите перманентно раÑшифровать Ñтот том?</string>
- <string lang="ru" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">ОСТОРОЖÐО: ЕÑли вы перманентно раÑшифруете том VeraCrypt, данные на диÑк будут запиÑыватьÑÑ Ð² незашифрованном виде.\n\nÐ’Ñ‹ дейÑтвительно хотите перманентно раÑшифровать выбранный том?</string>
- <string lang="ru" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Ð’ÐИМÐÐИЕ: Ð’ Ñлучае иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ñкада шифров при шифровании ÑиÑтемы возможны Ñледующие затруднениÑ:\n\n1) Так как загрузчик VeraCrypt больше Ñтандартного, на первой дорожке диÑка недоÑтаточно меÑта Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐµÐ³Ð¾ копии. ПоÑтому еÑли загрузчик VeraCrypt окажетÑÑ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½ (что чаÑто ÑлучаетÑÑ, например, при активации некоторых некорректно напиÑанных программ), потребуетÑÑ Ð´Ð¸Ñк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (VeraCrypt Rescue Disk), чтобы загрузитьÑÑ Ñ Ð½ÐµÐ³Ð¾ или иÑправить загрузчик VeraCrypt.\n\n2) Ðа некоторых компьютерах воÑÑтановление из ÑоÑтоÑÐ½Ð¸Ñ Ñна/гибернации проиÑходит дольше обычного.\n\nЭтих потенциальных проблем можно избежать, еÑли выбрать некаÑкадный алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (например AES).\n\nÐ’Ñ‹ наÑтаиваете на иÑпользовании каÑкадного шифрованиÑ?</string>
- <string lang="ru" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">ЕÑли вы ÑтолкнулиÑÑŒ Ñ Ð»ÑŽÐ±Ð¾Ð¹ из ранее опиÑанных проблем, дешифруйте раздел/диÑк (еÑли он зашифрован), поÑле чего попробуйте зашифровать его Ñнова, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð½Ðµ-каÑкадный алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (например AES).</string>
+ <string lang="ru" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">ОСТОРОЖÐО: ЕÑли перманентно раÑшифровать том VeraCrypt, данные на диÑк будут запиÑыватьÑÑ Ð² незашифрованном виде.\n\nÐ’Ñ‹ дейÑтвительно хотите перманентно раÑшифровать выбранный том?</string>
+ <string lang="ru" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Ð’ÐИМÐÐИЕ: При каÑкадном шифровании ÑиÑтемы возможны Ñледующие затруднениÑ:\n\n1) Так как загрузчик VeraCrypt больше Ñтандартного, на первой дорожке диÑка недоÑтаточно меÑта Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐµÐ³Ð¾ копии. ПоÑтому еÑли загрузчик VeraCrypt окажетÑÑ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½ (что чаÑто ÑлучаетÑÑ, например, при активации некоторых некорректно напиÑанных программ), потребуетÑÑ Ð´Ð¸Ñк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (VeraCrypt Rescue Disk), чтобы загрузитьÑÑ Ñ Ð½ÐµÐ³Ð¾ или иÑправить загрузчик VeraCrypt.\n\n2) Ðа некоторых компьютерах выход из ÑоÑтоÑÐ½Ð¸Ñ Ñна/гибернации проиÑходит дольше обычного.\n\nЭтих потенциальных проблем можно избежать, еÑли выбрать некаÑкадный алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (например AES).\n\nÐ’Ñ‹ наÑтаиваете на иÑпользовании каÑкадного шифрованиÑ?</string>
+ <string lang="ru" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">ЕÑли вы ÑтолкнулиÑÑŒ Ñ Ð»ÑŽÐ±Ð¾Ð¹ из ранее опиÑанных проблем, раÑшифруйте раздел/диÑк (еÑли он зашифрован), поÑле чего попробуйте зашифровать его Ñнова, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð½ÐµÐºÐ°Ñкадный алгоритм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (например AES).</string>
<string lang="ru" key="UPDATE_TC_IN_DECOY_OS_FIRST">Ð’ÐИМÐÐИЕ: Ð’ целÑÑ… безопаÑноÑти и надёжноÑти Ñледует обновить VeraCrypt в обманной операционной ÑиÑтеме, прежде чем вы обновите его в Ñкрытой ОС.\n\nЧтобы Ñто Ñделать, загрузите обманную ОС и запуÑтите в ней уÑтановщик VeraCrypt. Затем загрузите Ñкрытую ÑиÑтему и также запуÑтите уÑтановщик ещё и оттуда.\n\nПримечание: Ð¾Ð±Ð¼Ð°Ð½Ð½Ð°Ñ Ð¸ ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ ÑиÑтемы иÑпользуют один и тот же загрузчик. ЕÑли вы обновите VeraCrypt только на Ñкрытой ÑиÑтеме (но не на обманной), в обманной ÑиÑтеме могут оÑтатьÑÑ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€ и Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ VeraCrypt, чьи верÑии будут отличатьÑÑ Ð¾Ñ‚ верÑии загрузчика VeraCrypt. Такое различие может ÑвидетельÑтвовать о приÑутÑтвии в данном ПК Ñкрытой операционной ÑиÑтемы.\n\n\nХотите продолжить?</string>
<string lang="ru" key="UPDATE_TC_IN_HIDDEN_OS_TOO">Ðомер верÑии загрузчика VeraCrypt, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ которого была загружена Ñта ОС, отличаетÑÑ Ð¾Ñ‚ номера верÑии драйвера и приложений VeraCrypt, уÑтановленных в Ñтой ÑиÑтеме.\n\nВам Ñледует запуÑтить уÑтановщик VeraCrypt (той же верÑии, что и у загрузчика VeraCrypt), чтобы обновить VeraCrypt в Ñтой операционной ÑиÑтеме.</string>
<string lang="ru" key="BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION">Ðомер верÑии загрузчика VeraCrypt, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ которого загружена Ñта ОС, отличаетÑÑ Ð¾Ñ‚ номера верÑии драйвера VeraCrypt (и приложений VeraCrypt) в Ñтой ÑиÑтеме. Более Ñтарые верÑии могут Ñодержать ошибки, которых в новых верÑиÑÑ… уже нет.\n\nЕÑли вы не загружалиÑÑŒ Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñледует переуÑтановить VeraCrypt или обновить до новейшей Ñтабильной верÑии (при Ñтом загрузчик также будет обновлён).\n\nЕÑли вы загружалиÑÑŒ Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñледует обновить его ('СиÑтема' &gt; 'Создать диÑк воÑÑтановлениÑ').</string>
- <string lang="ru" key="BOOT_LOADER_UPGRADE_OK">Загрузчик VeraCrypt обновлён.\n\nÐаÑтоÑтельно рекомендуетÑÑ Ñоздать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk), который будет Ñодержать новую верÑию загрузчика VeraCrypt. Ð”Ð»Ñ Ñтого поÑле перезагрузки компьютера выберите меню 'СиÑтема' &gt; 'Создать диÑк воÑÑтановлениÑ'.</string>
+ <string lang="ru" key="BOOT_LOADER_UPGRADE_OK">Загрузчик VeraCrypt обновлён.\n\nÐаÑтоÑтельно рекомендуетÑÑ Ñоздать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (Rescue Disk), который будет Ñодержать новую верÑию загрузчика VeraCrypt. Ð”Ð»Ñ Ñтого поÑле перезагрузки ПК выберите меню 'СиÑтема' &gt; 'Создать диÑк воÑÑтановлениÑ'.</string>
<string lang="ru" key="BOOT_LOADER_UPGRADE_OK_HIDDEN_OS">Загрузчик VeraCrypt обновлён.\n\nÐаÑтоÑтельно рекомендуетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ обманную операционную ÑиÑтему и затем Ñоздать новый диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt (который будет Ñодержать новую верÑию загрузчика VeraCrypt). Ð”Ð»Ñ Ñтого выберите меню 'СиÑтема' &gt; 'Создать диÑк воÑÑтановлениÑ'.</string>
<string lang="ru" key="BOOT_LOADER_UPGRADE_FAILED">Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ð¸ÐºÐ° VeraCrypt.</string>
- <string lang="ru" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt не может определить наÑтоÑщий размер ÑиÑтемного диÑка, поÑтому будет иÑпользовать размер, Ñообщённый операционной ÑиÑтемой (который может быть меньше реального размера). Примечание: Ñто не ошибка в VeraCrypt.</string>
- <string lang="ru" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">Ð’ÐИМÐÐИЕ: Похоже, VeraCrypt уже пыталÑÑ Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶Ð¸Ñ‚ÑŒ Ñкрытые Ñектора на Ñтом ÑиÑтемном диÑке. ЕÑли во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ¹ попытки Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð²Ñ‹ ÑтолкнулиÑÑŒ Ñ ÐºÐ°ÐºÐ¸Ð¼Ð¸-то проблемами, то можете ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸Ñ… избежать, пропуÑтив операцию поиÑка Ñкрытых Ñекторов. Обратите внимание, что в Ñтом Ñлучае VeraCrypt будет иÑпользовать размер, Ñообщаемый операционной ÑиÑтемой (который может быть меньше дейÑтвительного размера диÑка).\n\nЭто проиÑходит не из-за какой-либо ошибки в VeraCrypt.</string>
+ <string lang="ru" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt не может определить наÑтоÑщий размер ÑиÑтемного диÑка, поÑтому будет иÑпользовать размер, Ñообщённый операционной ÑиÑтемой (он может быть меньше реального размера). Примечание: Ñто не ошибка в VeraCrypt.</string>
+ <string lang="ru" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">Ð’ÐИМÐÐИЕ: Похоже, программа VeraCrypt уже пыталаÑÑŒ обнаружить Ñкрытые Ñектора на Ñтом ÑиÑтемном диÑке. ЕÑли во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ¹ попытки Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð²Ñ‹ ÑтолкнулиÑÑŒ Ñ ÐºÐ°ÐºÐ¸Ð¼Ð¸-то проблемами, то можете ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸Ñ… избежать, пропуÑтив поиÑк Ñкрытых Ñекторов. Обратите внимание, что в Ñтом Ñлучае VeraCrypt будет иÑпользовать размер, Ñообщаемый операционной ÑиÑтемой (он может быть меньше дейÑтвительного размера диÑка).\n\nЭто проиÑходит не из-за какой-либо ошибки в VeraCrypt.</string>
<string lang="ru" key="SKIP_HIDDEN_SECTOR_DETECTION">Ðе выполнÑÑ‚ÑŒ поиÑк Ñкрытых Ñекторов (иÑпользовать размер, Ñообщённый ОС)</string>
<string lang="ru" key="RETRY_HIDDEN_SECTOR_DETECTION">Попробовать найти Ñкрытые Ñектора ещё раз</string>
- <string lang="ru" key="ENABLE_BAD_SECTOR_ZEROING">ОШИБКÐ: Ðе удаётÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ один или неÑколько Ñекторов на диÑке (вероÑтно, из-за физичеÑкого дефекта).\n\nШифрование 'на меÑте' может быть продолжено, только когда Ñекторы Ñнова будут доÑтупны Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. VeraCrypt может попытатьÑÑ Ñделать Ñти Ñектора читабельными путём запиÑи в них нулей (впоÑледÑтвии такие Ñодержащие одни нули блоки будут зашифрованы). Данные в нечитаемых Ñекторах при Ñтом будут утерÑны. ЕÑли вы хотите Ñтого избежать, попробуйте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ чаÑтично воÑÑтановить повреждённые данные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑоответÑтвующих программ Ñторонних фирм.\n\nПримечание: еÑли Ñекторы повреждены физичеÑки (в отличие от проÑтой порчи данных и ошибок контрольных Ñумм), большинÑтво уÑтройÑтв Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ внутренне перераÑпределÑÑŽÑ‚ Ñекторы при попытке запиÑать в них данные (поÑтому имеющиеÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ в повреждённых Ñекторах могут оÑтаватьÑÑ Ð½Ð° диÑке незашифрованными).\n\nХотите, чтобы VeraCrypt заполнил нулÑми нечитаемые Ñекторы?</string>
- <string lang="ru" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">ОШИБКÐ: Ðевозможно прочитать Ñодержимое одного или неÑкольких Ñекторов диÑка (вероÑтно, из-за физичеÑкого дефекта).\n\nЧтобы продолжить шифрование, VeraCrypt отброÑит Ñодержимое нечитаемых Ñекторов (оно будет заменено пÑевдоÑлучайными данными). Прежде чем продолжить, вы можете попытатьÑÑ Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ чаÑтично воÑÑтановить повреждённые данные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑоответÑтвующих программ Ñторонних фирм.\n\nХотите, чтобы VeraCrypt отверг ÑÐµÐ¹Ñ‡Ð°Ñ Ð´Ð°Ð½Ð½Ñ‹Ðµ в нечитаемых Ñекторах?</string>
- <string lang="ru" key="ZEROED_BAD_SECTOR_COUNT">Примечание: Ñодержимое %I64d нечитаемых Ñекторов (%s) заменено зашифрованными блоками Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼ нулевым текÑтом.</string>
+ <string lang="ru" key="ENABLE_BAD_SECTOR_ZEROING">ОШИБКÐ: Ðе удаётÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ñектора на диÑке (вероÑтно, из-за физичеÑкого дефекта).\n\nШифрование 'на меÑте' может быть продолжено, только когда Ñекторы Ñнова будут доÑтупны Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. VeraCrypt может попытатьÑÑ Ñделать Ñти Ñектора читабельными, запиÑав в них нули (впоÑледÑтвии такие Ñодержащие нули блоки будут зашифрованы). Данные в нечитаемых Ñекторах при Ñтом будут утерÑны. ЕÑли вы хотите Ñтого избежать, попробуйте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ чаÑтично воÑÑтановить повреждённые данные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑоответÑтвующих программ Ñторонних фирм.\n\nПримечание: еÑли Ñекторы повреждены физичеÑки (в отличие от проÑтой порчи данных и ошибок контрольных Ñумм), большинÑтво уÑтройÑтв Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ внутренне перераÑпределÑÑŽÑ‚ Ñекторы при попытке запиÑать в них данные (поÑтому имеющиеÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ в повреждённых Ñекторах могут оÑтаватьÑÑ Ð½Ð° диÑке незашифрованными).\n\nЗаполнить нулÑми нечитаемые Ñекторы?</string>
+ <string lang="ru" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">ОШИБКÐ: Ðевозможно прочитать Ñодержимое одного или неÑкольких Ñекторов диÑка (вероÑтно, из-за физичеÑкого дефекта).\n\nЧтобы продолжить шифрование, VeraCrypt отброÑит Ñодержимое нечитаемых Ñекторов (оно будет заменено пÑевдоÑлучайными данными). Прежде чем продолжить, вы можете попытатьÑÑ Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ чаÑтично воÑÑтановить повреждённые данные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑоответÑтвующих программ Ñторонних фирм.\n\nОтброÑить данные в нечитаемых Ñекторах?</string>
+ <string lang="ru" key="ZEROED_BAD_SECTOR_COUNT">Примечание: Ñодержимое %I64d нечитаемых Ñекторов (%s) заменено зашифрованными блоками Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼ заполненным нулÑми текÑтом.</string>
<string lang="ru" key="SKIPPED_BAD_SECTOR_COUNT">Примечание: Ñодержимое %I64d нечитаемых Ñекторов (%s) заменено пÑевдоÑлучайными данными.</string>
<string lang="ru" key="ENTER_TOKEN_PASSWORD">Введите пароль/PIN Ð´Ð»Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° '%s':</string>
<string lang="ru" key="PKCS11_LIB_LOCATION_HELP">Чтобы обеÑпечить VeraCrypt доÑтуп к токену безопаÑноÑти или Ñмарт-карте,\nÑначала нужно уÑтановить программную библиотеку PKCS #11 Ð´Ð»Ñ Ñ‚Ð¾ÐºÐµÐ½Ð°\nили Ñмарт-карты. Эта библиотека может поÑтавлÑÑ‚ÑŒÑÑ Ð²Ð¼ÐµÑте Ñ ÑƒÑтройÑтвом,\nлибо она имеетÑÑ Ð½Ð° Ñайте поÑтавщика или Ñторонней фирмы.\nУÑтановив библиотеку, вы можете выбрать её вручную, нажав 'Библиотека',\nлибо позволить VeraCrypt найти её автоматичеÑки, нажав 'Ðвтоопределение библиотеки' (поиÑк выполнÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в ÑиÑтемной папке Windows).</string>
@@ -1276,7 +1276,7 @@
<string lang="ru" key="NO_TOKENS_FOUND">Токен безопаÑноÑти не обнаружен.\n\nУбедитеÑÑŒ, что токен подключён к ПК, и Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ уÑтановлен корректный драйвер.</string>
<string lang="ru" key="TOKEN_KEYFILE_NOT_FOUND">Ключевой файл токена безопаÑноÑти не обнаружен.</string>
<string lang="ru" key="TOKEN_KEYFILE_ALREADY_EXISTS">Ключевой файл токена безопаÑноÑти Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует.</string>
- <string lang="ru" key="CONFIRM_SEL_FILES_DELETE">Вы хотите удалить выбранные файлы?</string>
+ <string lang="ru" key="CONFIRM_SEL_FILES_DELETE">Удалить выбранные файлы?</string>
<string lang="ru" key="INVALID_TOKEN_KEYFILE_PATH">Путь к ключевому файлу токена безопаÑноÑти неверен.</string>
<string lang="ru" key="SECURITY_TOKEN_ERROR">Ошибка токена безопаÑноÑти</string>
<string lang="ru" key="CKR_PIN_INCORRECT">Ðеверный пароль Ð´Ð»Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° безопаÑноÑти.</string>
@@ -1288,7 +1288,7 @@
<string lang="ru" key="TOKEN_DATA_OBJECT_LABEL">Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°</string>
<string lang="ru" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">Ð’ÐЖÐО: Учтите, что пароли дозагрузочной аутентификации вÑегда вводÑÑ‚ÑÑ Ð¿Ñ€Ð¸ Ñтандартной раÑкладке американÑкой клавиатуры. ПоÑтому том, пароль которого набран в любой другой раÑкладке, может оказатьÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ Ñмонтировать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кÑшированного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации (Ñто не ошибка VeraCrypt). Чтобы Ñмонтировать такой том Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¼ дозагрузочной аутентификации, выполните Ñледующее:\n\n1) Ðажмите кнопку 'Файл' или 'УÑтройÑтво' и выберите том.\n2) Ð’ меню 'Тома' выберите 'Изменить пароль тома'.\n3) Введите текущий пароль Ð´Ð»Ñ Ñтого тома.\n4) Измените раÑкладку клавиатуры на английÑкую (СШÐ), щёлкнув по значку Ñзыка в панели задач Windows.\n5) Ð’ окне VeraCrypt в поле Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ пароль Ð´Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации.\n6) Введите Ñтот же пароль ещё раз в поле Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ и нажмите OK.\nÐ’ÐИМÐÐИЕ: Помните, что в результате Ñтих дейÑтвий пароль тома нужно будет вÑегда вводить в американÑкой раÑкладке клавиатуры (ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾ включена только на Ñтапе дозагрузочной аутентификации).</string>
<string lang="ru" key="SYS_FAVORITES_KEYBOARD_WARNING">СиÑтемные избранные тома будут монтироватьÑÑ Ñ Ð¸Ñпользованием Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации. ЕÑли у какого-то из таких томов другой пароль, Ñтот том Ñмонтирован не будет.</string>
- <string lang="ru" key="SYS_FAVORITES_ADMIN_ONLY_INFO">ЕÑли вы хотите запретить функции VeraCrypt Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼Ð¸ томами ('Размонтировать вÑе', авторазмонтирование и др.) Ð´Ð»Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… ÑиÑтемных томов, нужно включить параметр 'ПроÑматривать/размонтировать ÑиÑтемные избранные тома могут лишь админиÑтраторы'. Кроме того, еÑли VeraCrypt запущен без прав админиÑтратора (что Ñтандартно Ð´Ð»Ñ Vista и более новых верÑий Windows), избранные ÑиÑтемные тома не будут отображатьÑÑ Ð² ÑпиÑке букв диÑков в главном окне VeraCrypt.</string>
+ <string lang="ru" key="SYS_FAVORITES_ADMIN_ONLY_INFO">ЕÑли вы хотите запретить функции VeraCrypt Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼Ð¸ томами ('Размонтировать вÑе', авторазмонтирование и др.) Ð´Ð»Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… ÑиÑтемных томов, нужно включить параметр 'ПроÑматривать/размонтировать ÑиÑтемные избранные тома могут лишь админиÑтраторы'. Кроме того, при запуÑке VeraCrypt без прав админиÑтратора (что Ñтандартно Ð´Ð»Ñ Vista и более новых верÑий Windows) избранные ÑиÑтемные тома не будут отображатьÑÑ Ð² ÑпиÑке букв диÑков в главном окне VeraCrypt.</string>
<string lang="ru" key="SYS_FAVORITES_ADMIN_ONLY_WARNING">Ð’ÐЖÐО: ЕÑли выбрана Ñта опциÑ, а VeraCrypt не имеет админиÑтративных привилегий, то Ñмонтированные ÑиÑтемные избранные тома ÐЕ отображаютÑÑ Ð² окне VeraCrypt и их Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð·Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ. ПоÑтому еÑли, например, нужно размонтировать ÑиÑтемный избранный том, Ñначала щёлкните ПКМ по значку VeraCrypt (в меню 'ПуÑк') и выберите запуÑк от имени админиÑтратора. То же Ñамое отноÑитÑÑ Ðº функции 'Размонтировать вÑе', функциÑм авторазмонтированиÑ, горÑчим клавишам 'Размонтировать вÑе' и т.д.</string>
<string lang="ru" key="SETTING_REQUIRES_REBOOT">Ð’ÐИМÐÐИЕ: Эта уÑтановка вÑтупит в Ñилу поÑле перезагрузки операционной ÑиÑтемы.</string>
<string lang="ru" key="COMMAND_LINE_ERROR">Ошибка обработки командной Ñтроки.</string>
@@ -1297,17 +1297,17 @@
<string lang="ru" key="SELECT_DEVICE_AND_MOUNT">Выбрать &amp;уÑтройÑтво и Ñмонтировать...</string>
<string lang="ru" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">ПроÑматривать/размонтировать ÑиÑтемные избранные тома могут лишь админиÑтраторы</string>
<string lang="ru" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Монтировать ÑиÑтемные избранные тома при Ñтарте Windows (в начальной фазе загрузки)</string>
- <string lang="ru" key="MOUNTED_VOLUME_DIRTY">Ð’ÐИМÐÐИЕ: Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема тома, Ñмонтированного как '%s', не была аккуратно размонтирована, и потому может Ñодержать ошибки. ИÑпользование повреждённой файловой ÑиÑтемы может привеÑти к потере или порче данных.\n\nПримечание: прежде чем физичеÑки удалÑÑ‚ÑŒ или выключать уÑтройÑтво (например флÑш-накопитель USB или внешний жёÑткий диÑк), на котором находитÑÑ Ñмонтированный том VeraCrypt, Ñначала вÑегда Ñледует размонтировать Ñтот том.\n\n\nХотите, чтобы Windows попыталаÑÑŒ найти и иÑправить ошибки (еÑли они еÑÑ‚ÑŒ) файловой ÑиÑтемы?</string>
- <string lang="ru" key="SYS_FAVORITE_VOLUME_DIRTY">Ð’ÐИМÐÐИЕ: Один или неÑколько ÑиÑтемных избранных томов не были чиÑто размонтированы и потому могут Ñодержать ошибки файловой ÑиÑтемы. См. подробноÑти в ÑиÑтемном отчёте о ÑобытиÑÑ….\n\nИÑпользование повреждённой файловой ÑиÑтемы может привеÑти к потере или повреждению данных. Проверьте такие тома на ошибки (щёлкните правой кнопкой мыши на томе и выберите команду починки файловой ÑиÑтемы).</string>
- <string lang="ru" key="FILESYS_REPAIR_CONFIRM_BACKUP">Ð’ÐИМÐÐИЕ: ИÑправление повреждённой файловой ÑиÑтемы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ утилиты\nMicrosoft 'chkdsk' может привеÑти к потере файлов в повреждённых учаÑтках.\nПоÑтому рекомендуетÑÑ Ñначала Ñкопировать файлы Ñ Ñ‚Ð¾Ð¼Ð° VeraCrypt на другой,\nнеповреждённый том VeraCrypt.\n\nÐ’Ñ‹ хотите иÑправить файловую ÑиÑтему ÑейчаÑ?</string>
- <string lang="ru" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Том '%s' Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ', так как была отвергнута попытка запиÑи.\n\nПроверьте, доÑтаточно ли у Ð²Ð°Ñ Ð¿Ñ€Ð°Ð² Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи в файловый контейнер (щёлкните ПКМ на контейнере и выберите 'СвойÑтва' &gt; 'БезопаÑноÑÑ‚ÑŒ').\n\nОбратите внимание, что из-за ошибки в Windows Ñто предупреждение может поÑвлÑÑ‚ÑŒÑÑ Ð´Ð°Ð¶Ðµ при правильной уÑтановке прав доÑтупа. Это не ошибка VeraCrypt. Возможное решение - Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð°, например, в вашу папку 'Документы'.\n\nЕÑли вы намереваетеÑÑŒ Ñохранить у Ñтого тома доÑтуп только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ, уÑтановите на контейнер атрибут 'Только чтение' (щёлкните по контейнеру ПКМ и выберите 'СвойÑтва' &gt; 'Только чтение'), чтобы избежать вывода данного предупреждениÑ.</string>
- <string lang="ru" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Том '%s' Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ', так как была отвергнута попытка запиÑи.\n\nПроверьте, не обращаютÑÑ ли к разделу/уÑтройÑтву, на котором раÑположен том, другие Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (например антивируÑное ПО).</string>
- <string lang="ru" key="MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION">Том '%s' Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ' - ОС запретила запиÑÑŒ на хоÑÑ‚-уÑтройÑтво.\n\nОбратите внимание, что некоторые драйверы чипÑета (ÐМС) ошибочно предÑтавлÑÑŽÑ‚ доÑтупные Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи ноÑители как уÑтройÑтва только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. Эта проблема не по вине VeraCrypt. Её можно решить обновлением или удалением имеющихÑÑ Ð²Â ÑиÑтеме драйверов чипÑета Ñторонних производителей (не Microsoft).</string>
+ <string lang="ru" key="MOUNTED_VOLUME_DIRTY">Ð’ÐИМÐÐИЕ: Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема тома, Ñмонтированного как '%s', не была аккуратно размонтирована и потому может Ñодержать ошибки. ИÑпользование повреждённой файловой ÑиÑтемы может привеÑти к потере или порче данных.\n\nПримечание: прежде чем физичеÑки удалÑÑ‚ÑŒ или выключать уÑтройÑтво (например флÑш-накопитель USB или внешний жёÑткий диÑк), на котором находитÑÑ Ñмонтированный том VeraCrypt, Ñначала вÑегда Ñледует размонтировать Ñтот том.\n\n\nХотите, чтобы Windows попыталаÑÑŒ найти и иÑправить ошибки (еÑли они еÑÑ‚ÑŒ) файловой ÑиÑтемы?</string>
+ <string lang="ru" key="SYS_FAVORITE_VOLUME_DIRTY">Ð’ÐИМÐÐИЕ: Один или неÑколько ÑиÑтемных избранных томов не были аккуратно размонтированы и потому могут Ñодержать ошибки файловой ÑиÑтемы. См. подробноÑти в ÑиÑтемном отчёте о ÑобытиÑÑ….\n\nИÑпользование повреждённой файловой ÑиÑтемы может привеÑти к потере или порче данных. Проверьте такие тома на ошибки (щёлкните ПКМ на томе и выберите команду починки файловой ÑиÑтемы).</string>
+ <string lang="ru" key="FILESYS_REPAIR_CONFIRM_BACKUP">Ð’ÐИМÐÐИЕ: ИÑправление повреждённой файловой ÑиÑтемы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ утилиты\nMicrosoft 'chkdsk' может привеÑти к потере файлов в повреждённых учаÑтках.\nПоÑтому рекомендуетÑÑ Ñначала Ñкопировать файлы Ñ Ñ‚Ð¾Ð¼Ð° VeraCrypt на другой,\nнеповреждённый том VeraCrypt.\n\nИÑправить файловую ÑиÑтему ÑейчаÑ?</string>
+ <string lang="ru" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Том '%s' Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ', поÑкольку была отвергнута попытка запиÑи.\n\nПроверьте, доÑтаточно ли у Ð²Ð°Ñ Ð¿Ñ€Ð°Ð² Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи в файловый контейнер (щёлкните ПКМ на контейнере и выберите 'СвойÑтва' &gt; 'БезопаÑноÑÑ‚ÑŒ').\n\nОбратите внимание, что из-за ошибки в Windows Ñто предупреждение может поÑвлÑÑ‚ÑŒÑÑ Ð´Ð°Ð¶Ðµ при правильной уÑтановке прав доÑтупа. Это не ошибка VeraCrypt. Возможное решение - Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð°, например, в вашу папку 'Документы'.\n\nЕÑли вы намереваетеÑÑŒ Ñохранить у Ñтого тома доÑтуп только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ, уÑтановите на контейнер атрибут 'Только чтение' (щёлкните по контейнеру ПКМ и выберите 'СвойÑтва' &gt; 'Только чтение'), чтобы избежать вывода данного предупреждениÑ.</string>
+ <string lang="ru" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Том '%s' Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ', поÑкольку была отвергнута попытка запиÑи.\n\nПроверьте, не обращаютÑÑ ли к разделу/уÑтройÑтву, на котором раÑположен том, другие Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (например антивируÑное ПО).</string>
+ <string lang="ru" key="MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION">Том '%s' Ñмонтирован как 'только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ' - ОС запретила запиÑÑŒ на хоÑÑ‚-уÑтройÑтво.\n\nОбратите внимание, что некоторые драйверы чипÑета (ÐМС) ошибочно предÑтавлÑÑŽÑ‚ доÑтупные Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи ноÑители как уÑтройÑтва только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. Эта проблема - не по вине VeraCrypt. Её можно решить обновлением или удалением имеющихÑÑ Ð²Â ÑиÑтеме драйверов чипÑета Ñторонних производителей (не Microsoft).</string>
<string lang="ru" key="LIMIT_ENC_THREAD_POOL_NOTE">Hyper-Threading - Ñто неÑколько логичеÑких Ñдер на одном физичеÑком Ñдре. ЕÑли Hyper-Threading включена, чиÑло выше показывает количеÑтво логичеÑких процеÑÑоров/Ñдер.</string>
<string lang="ru" key="NUMBER_OF_THREADS">%d шт.</string>
<string lang="ru" key="DISABLED_HW_AES_AFFECTS_PERFORMANCE">Ðппаратное уÑкорение AES отключено, что ÑкажетÑÑ Ð½Ð° результатах теÑта (ухудшит производительноÑÑ‚ÑŒ).\n\nЧтобы включить аппаратное уÑкорение, в меню 'ÐаÑтройки' выберите пункт 'БыÑтродейÑтвие' и включите ÑоответÑтвующий параметр.</string>
<string lang="ru" key="LIMITED_THREAD_COUNT_AFFECTS_PERFORMANCE">ЧиÑло потоков ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾, что ÑкажетÑÑ Ð½Ð° результатах теÑта (ухудшит производительноÑÑ‚ÑŒ).\n\nЧтобы задейÑтвовать веÑÑŒ потенциал ЦП, в меню 'ÐаÑтройки' выберите пункт 'БыÑтродейÑтвие' и отключите ÑоответÑтвующий параметр.</string>
- <string lang="ru" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Хотите, чтобы VeraCrypt попробовал отключить защиту от запиÑи у раздела/диÑка?</string>
+ <string lang="ru" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Хотите попробовать отключить защиту от запиÑи у раздела/диÑка?</string>
<string lang="ru" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">Ð’ÐИМÐÐИЕ: Этот параметр может ухудшить производительноÑÑ‚ÑŒ.\n\nÐ’Ñ‹ дейÑтвительно хотите его включить?</string>
<string lang="ru" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">Ð’ÐИМÐÐИЕ: Том VeraCrypt автоматичеÑки размонтирован</string>
<string lang="ru" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Прежде чем физичеÑки удалить или отключить уÑтройÑтво, Ñодержащее Ñмонтированный том, Ñначала Ñледует вÑегда размонтировать Ñтот том в VeraCrypt.\n\nÐеожиданное Ñамопроизвольное размонтирование бывает обычно вызвано периодичеÑкими ÑбоÑми в кабеле, диÑке (корпуÑе) и т.д.</string>
@@ -1380,39 +1380,48 @@
<string lang="ru" key="TB_PER_SEC">ТБ/Ñ</string>
<string lang="ru" key="PB_PER_SEC">ПБ/Ñ</string>
<string lang="ru" key="TRIPLE_DOT_GLYPH_ELLIPSIS">…</string>
- <control lang="ru" key="IDC_BOOT_LOADER_CACHE_PIM">С &amp;PIM при кÑшировании Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð¾Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ñ‡Ð½Ð¾Ð¹ аутентификации</control>
- <control lang="ru" key="IDC_PREF_CACHE_PIM">Включать PIM при кÑшировании паролÑ</control>
+ <control lang="ru" key="IDC_BOOT_LOADER_CACHE_PIM">КÑшировать &amp;PIM вмеÑте Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¼ дозагрузочной аутентификации</control>
+ <control lang="ru" key="IDC_PREF_CACHE_PIM">КÑшировать PIM вмеÑте Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¼</control>
<control lang="ru" key="IDC_SHOW_DISCONNECTED_NETWORK_DRIVES">Отключённые Ñетевые диÑки доÑтупны Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ</control>
<string lang="ru" key="PASSWORD_UTF8_TOO_LONG">Слишком длинный пароль: в UTF-8 он превышает 64 байта.</string>
<string lang="ru" key="PASSWORD_UTF8_INVALID">Введённый пароль Ñодержит Ñимволы Юникода, которые не удалоÑÑŒ преобразовать в UTF-8.</string>
<string lang="ru" key="INIT_DLL">ОШИБКÐ: Ðе удалоÑÑŒ загрузить ÑиÑтемную библиотеку.</string>
<string lang="ru" key="ERR_EXFAT_INVALID_VOLUME_SIZE">Указанный в командной Ñтроке размер файла тома неÑовмеÑтим Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð¹ файловой ÑиÑтемой exFAT.</string>
- <control lang="ru" key="IDT_ENTROPY_BAR">Хаотично из перемещений мыши</control>
+ <control lang="ru" key="IDT_ENTROPY_BAR">Собрано Ñнтропии из перемещений мыши</control>
<control lang="ru" key="IDT_VOLUME_ID">ID тома:</control>
<string lang="ru" key="VOLUME_ID">ID тома</string>
<control lang="ru" key="IDC_FAVORITE_USE_VOLUME_ID">ПрименÑÑ‚ÑŒ ID тома Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾</control>
<string lang="ru" key="VOLUME_ID_INVALID">Ðеверное значение ID тома</string>
<string lang="ru" key="VOLUME_ID_NOT_FOUND">Ð’ ÑиÑтеме нет тома Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ идентификатором (ID)</string>
<string lang="ru" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Скопировать значение в буфер обмена...</string>
- <control lang="ru" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Ðе Ñпрашивать PIM на Ñкране дозагрузочной аутентификации (PIM хранитÑÑ Ð½ÐµÐ·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼ на диÑке)</control>
+ <control lang="ru" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Без запроÑа PIM при дозагрузочной аутентификации (PIM на диÑке незашифрован)</control>
<string lang="ru" key="DISABLE_BOOT_LOADER_PIM_PROMPT">Ð’ÐИМÐÐИЕ: ЕÑли включить Ñту опцию, то значение PIM будет хранитьÑÑ Ð½Ð° диÑке в незашифрованном виде.\n\nÐ’Ñ‹ дейÑтвительно хотите включить Ñту опцию?</string>
<string lang="ru" key="PIM_TOO_BIG">МакÑимальное значение PIM (перÑонального ÑƒÐ¼Ð½Ð¾Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ð¹) равно 2147468.</string>
- <control lang="ru" key="IDC_SKIP_RESCUE_VERIFICATION">Ðе проверÑÑ‚ÑŒ диÑк воÑÑтановлениÑ</control>
+ <control lang="ru" key="IDC_SKIP_RESCUE_VERIFICATION">Ðе проверÑÑ‚ÑŒ VRD</control>
<control lang="ru" key="IDC_HIDE_WAITING_DIALOG">Ðе показывать окно Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹</control>
<control lang="ru" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Ðе Ñпрашивать алгоритм Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° Ñкране дозагрузочной аутентификации</control>
- <string lang="ru" key="GOST89_HELP">СоветÑкий и роÑÑийÑкий гоÑударÑтвенный Ñтандартный блочный шифр GOST Ñ Ñимметричным ключом, опубликованный в Ñтандарте ГОСТ 28147-89 под названием "Магма".\nРазработан в 1970-Ñ… годах под грифом "Совершенно Ñекретно", позже изменён на "Секретно". СоветÑÐºÐ°Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð° американÑкому алгоритму DES.</string>
- <string lang="ru" key="KUZNYECHIK_HELP">Блочный шифр "Кузнечик" (Kuznyechik) был впервые опубликован в 2015 году и утверждён в качеÑтве роÑÑийÑкого Ñтандарта GOST R 34.12-2015 и также RFC 7801. 256-бит ключ, 128-бит блок. Режим работы: XTS.</string>
- <string lang="ru" key="CAMELLIA_HELP">СовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° ÑпонÑких компаний Mitsubishi Electric и NTT. Впервые опубликован в 2000 г. 256-бит ключ, 128-бит блок. Режим работы: XTS. Одобрен Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ISO/IEC, проектом ЕвроÑоюза NESSIE и ÑпонÑким проектом CRYPTREC.</string>
+ <string lang="ru" key="GOST89_HELP">СоветÑкий и роÑÑийÑкий гоÑударÑтвенный Ñтандартный блочный шифр GOST Ñ Ñимметричным ключом, опубликованный в Ñтандарте ГОСТ 28147-89 под названием 'Магма'.\nРазработан в 1970-Ñ… годах под грифом 'Совершенно Ñекретно', позже изменён на 'Секретно'. СоветÑÐºÐ°Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð° американÑкому алгоритму DES.</string>
+ <string lang="ru" key="KUZNYECHIK_HELP">Блочный шифр 'Кузнечик' (Kuznyechik) был впервые опубликован в 2015 году и утверждён в качеÑтве роÑÑийÑкого Ñтандарта GOST R 34.12-2015 и также RFC 7801. Ключ: 256 бит, блок: 128 бит. Режим работы: XTS.</string>
+ <string lang="ru" key="CAMELLIA_HELP">СовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° ÑпонÑких компаний Mitsubishi Electric и NTT. Впервые опубликован в 2000 г. Ключ: 256 бит, блок: 128 бит. Режим работы: XTS. Одобрен Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ISO/IEC, проектом ЕвроÑоюза NESSIE и ÑпонÑким проектом CRYPTREC.</string>
<string lang="ru" key="TIME">ВремÑ</string>
<string lang="ru" key="ITERATIONS">Итерации</string>
<string lang="ru" key="PRE-BOOT">До загрузки</string>
- <string lang="ru" key="RESCUE_DISK_EFI_INFO">Перед шифрованием раздела необходимо Ñоздать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (VeraCrypt Rescue Disk, VRD), который Ñлужит Ñледующим целÑм:\n\n- При повреждении загрузчика VeraCrypt, маÑтер-ключа или других критичеÑких данных диÑк VRD позволÑет их воÑÑтановить (при Ñтом вÑÑ‘ равно понадобитÑÑ Ð²Ð²ÐµÑти правильный пароль).\n\n- При повреждении и невозможноÑти загрузки Windows диÑк VRD позволÑет перманентно раÑшифровать раздел до Ñтарта Windows.\n\n- VRD будет Ñодержать резервную копию текущего загрузчика EFI и позволит при необходимоÑти его воÑÑтановить.\n\nZip-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt будет Ñоздан в указанном ниже меÑте.</string>
- <string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO">Zip-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в Ñтом файле:\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ нужно раÑпаковать его на USB-флÑшку, отформатированную в FAT/FAT32.\n\n%lsПоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¶Ð¼Ð¸Ñ‚Ðµ "Далее", чтобы проверить, правильно ли он был Ñоздан.</string>
- <string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">Zip-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в Ñтом файле:\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ Ñледует либо раÑпаковать его на USB-флÑшку, отформатированную в FAT/FAT32, либо перенеÑти его в надёжное меÑто Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² будущем.\n\n%lsÐажмите "Далее" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
- <string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">Ð’ÐЖÐО: Zip-файл нужно раÑпаковать непоÑредÑтвенно в корневую папку USB-флÑшки. Ðапример, еÑли флÑшка имеет букву E:, то при раÑпаковке Zip-файла на USB-флÑшке должна быть Ñоздана папка E:\\EFI.\n\n</string>
- <string lang="ru" key="RESCUE_DISK_EFI_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ раÑпаковки диÑка воÑÑтановлениÑ.\n\nЕÑли вы уже раÑпаковали диÑк воÑÑтановлениÑ, выньте и Ñнова вÑтавьте USB-флÑшку; затем нажмите "Далее", чтобы повторить попытку. ЕÑли Ñто не поможет, иÑпользуйте другую флÑшку и/или другую Zip-программу.\n\nЕÑли вы ещё не раÑпаковали диÑк воÑÑтановлениÑ, Ñделайте Ñто и затем нажмите "Далее".\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt до запуÑка Ñтого маÑтера, учтите, что такой диÑк Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать, поÑкольку он был Ñоздан Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом. Вам нужно раÑпаковать вновь Ñозданный Zip-образ диÑка воÑÑтановлениÑ.</string>
- <string lang="ru" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ раÑпаковки диÑка воÑÑтановлениÑ.\n\nЕÑли вы уже раÑпаковали диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° USB-флÑшку, выньте её и Ñнова вÑтавьте; затем повторите попытку. ЕÑли Ñто не поможет, иÑпользуйте другую Zip-программу и/или ноÑитель.\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñозданный Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом, паролем, Ñолью и Ñ‚.д., учтите, что проверка такого диÑка будет вÑегда выдавать ошибку. Чтобы Ñоздать новый диÑк воÑÑтановлениÑ, полноÑтью ÑовмеÑтимый Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ конфигурацией, выберите 'СиÑтема' > 'Создать диÑк воÑÑтановлениÑ'.</string>
- <string lang="ru" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в Ñтом файле:\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¼ нужно раÑпаковать образ диÑка на USB-флÑшку, отформатированную в FAT/FAT32.\n\nÐ’ÐЖÐО: Zip-файл нужно раÑпаковать непоÑредÑтвенно в корневую папку USB-флÑшки. Ðапример, еÑли флÑшка имеет букву E:, то при раÑпаковке Zip-файла на USB-флÑшке должна быть Ñоздана папка E:\\EFI.\n\nПоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ 'СиÑтема' > 'Проверить диÑк воÑÑтановлениÑ', чтобы убедитьÑÑ, что диÑк Ñоздан правильно.</string>
+ <string lang="ru" key="RESCUE_DISK_EFI_INFO">Перед шифрованием раздела необходимо Ñоздать диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (VeraCrypt Rescue Disk, VRD), который Ñлужит Ñледующим целÑм:\n\n- При повреждении загрузчика VeraCrypt, маÑтер-ключа или других критичеÑких данных диÑк VRD позволÑет их воÑÑтановить (при Ñтом вÑÑ‘ равно понадобитÑÑ Ð²Ð²ÐµÑти правильный пароль).\n\n- При повреждении и невозможноÑти загрузки Windows диÑк VRD позволÑет перманентно раÑшифровать раздел до запуÑка Windows.\n\n- VRD будет Ñодержать резервную копию текущего загрузчика EFI и позволит при необходимоÑти его воÑÑтановить.\n\nZip-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt будет Ñоздан в указанном ниже меÑте.</string>
+ <string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO">Zip-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в Ñтом файле:\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð½ÑƒÐ¶Ð½Ð¾ раÑпаковать его на USB-флÑшку, отформатированную в FAT/FAT32.\n\n%lsПоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¶Ð¼Ð¸Ñ‚Ðµ 'Далее', чтобы проверить, правильно ли он был Ñоздан.</string>
+ <string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">Zip-образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в Ñтом файле:\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ñледует либо раÑпаковать его на USB-флÑшку, отформатированную в FAT/FAT32, либо перенеÑти в надёжное меÑто Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² будущем.\n\n%lsÐажмите 'Далее' Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.</string>
+ <string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">Ð’ÐЖÐО: Zip-файл необходимо раÑпаковать в корневую папку USB-флÑшки. Ðапример, еÑли флÑшка имеет букву E:, то при раÑпаковке Zip-файла на USB-флÑшке должна быть Ñоздана папка E:\\EFI.\n\n</string>
+ <string lang="ru" key="RESCUE_DISK_EFI_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ раÑпаковки диÑка воÑÑтановлениÑ.\n\nЕÑли вы его уже раÑпаковали, выньте и Ñнова вÑтавьте USB-флÑшку; затем нажмите 'Далее', чтобы повторить попытку. ЕÑли Ñто не поможет, иÑпользуйте другую флÑшку и/или другую программу Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Zip-архивами.\n\nЕÑли вы ещё не раÑпаковали диÑк воÑÑтановлениÑ, Ñделайте Ñто и затем нажмите 'Далее'.\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñозданный до запуÑка Ñтого маÑтера, учтите, что такой диÑк Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать, поÑкольку он был Ñоздан Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом. Ðужно раÑпаковать новый Ñозданный Zip-образ диÑка воÑÑтановлениÑ.</string>
+ <string lang="ru" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Ðевозможно проверить правильноÑÑ‚ÑŒ раÑпаковки диÑка воÑÑтановлениÑ.\n\nЕÑли вы его уже раÑпаковали на USB-флÑшку, выньте её и Ñнова вÑтавьте; затем повторите попытку. ЕÑли Ñто не поможет, иÑпользуйте другую Zip-программу и/или ноÑитель.\n\nЕÑли вы пыталиÑÑŒ проверить диÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ VeraCrypt, Ñозданный Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ маÑтер-ключом, паролем, Ñолью и Ñ‚.д., учтите, что проверка такого диÑка будет вÑегда выдавать ошибку. Чтобы Ñоздать новый диÑк воÑÑтановлениÑ, полноÑтью ÑовмеÑтимый Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ конфигурацией, выберите 'СиÑтема' > 'Создать диÑк воÑÑтановлениÑ'.</string>
+ <string lang="ru" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Образ диÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñоздан и Ñохранён в Ñтом файле:\n%s\n\nÐ¡ÐµÐ¹Ñ‡Ð°Ñ Ð½ÑƒÐ¶Ð½Ð¾ раÑпаковать образ диÑка на USB-флÑшку, отформатированную в FAT/FAT32.\n\nÐ’ÐЖÐО: Zip-файл необходимо раÑпаковать в корневую папку USB-флÑшки. Ðапример, еÑли флÑшка имеет букву E:, то при раÑпаковке Zip-файла на USB-флÑшке должна быть Ñоздана папка E:\\EFI.\n\nПоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ 'СиÑтема' > 'Проверить диÑк воÑÑтановлениÑ', чтобы убедитьÑÑ, что диÑк Ñоздан правильно.</string>
+ <control lang="ru" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">БезопаÑный рабочий Ñтол при вводе паролÑ</control>
+ <string lang="ru" key="ERR_REFS_INVALID_VOLUME_SIZE">Указанный в командной Ñтроке размер файла неÑовмеÑтим Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð¹ файловой ÑиÑтемой ReFS.</string>
+ <control lang="ru" key="IDC_EDIT_DCSPROP">Правка конфигурации загрузчика</control>
+ <control lang="ru" key="IDC_SHOW_PLATFORMINFO">Показать информацию о платформе EFI</control>
+ <string lang="ru" key="BOOT_LOADER_CONFIGURATION_FILE">Файл конфигурации загрузчика</string>
+ <string lang="ru" key="EFI_PLATFORM_INFORMATION">Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ платформе EFI</string>
+ <string lang="ru" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">Ð’ÐИМÐÐИЕ: ЕÑли у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно опыта, не Ñледует вручную редактировать наÑтройки загрузчика.\n\nПродолжить?</string>
+ <string lang="ru" key="DCSPROP_XML_VALIDATION_FAILED">Ð’ÐИМÐÐИЕ: Ошибка проверки корректноÑти XML-формата конфигурации загрузчика. Проверьте внеÑённые вами изменениÑ.</string>
+ <control lang="ru" key="IDT_ADVANCED_OPTIONS">РаÑширенные наÑтройки</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.sk.xml b/Translations/Language.sk.xml
index c1533ac..6da9be5 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="sk" name="SlovenÄina" en-name="Slovak" version="0.1.0" translators="Kamil David" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="sk" key="IDC_PREF_MOUNT_READONLY">PripojiÅ¥ zväzky len na Äítanie</control>
<control lang="sk" key="IDC_PREF_MOUNT_REMOVABLE">Pripojiť zväzky ako vymeniteľné média</control>
<control lang="sk" key="IDC_PREF_OPEN_EXPLORER">Otvoriť okno Prieskumníka pre úspešne pripojený zväzok</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="sk" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Odstrániť hesla z medzipamäte a automaticky odpojiť</control>
<control lang="sk" key="IDC_PREF_WIPE_CACHE_ON_EXIT">OdstrániÅ¥ hesla z medzipamäte pri skonÄenie</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.sl.xml b/Translations/Language.sl.xml
index 9a54345..b9c6c57 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="sl" name="SlovenÅ¡Äina" en-name="Slovenian" version="0.1.0" translators="Erik David Salam" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="sl" key="IDC_PREF_MOUNT_READONLY">Priklopi zbirnike samo za branje</control>
<control lang="sl" key="IDC_PREF_MOUNT_REMOVABLE">Priklopi zbirnike kot zamenljiv medij</control>
<control lang="sl" key="IDC_PREF_OPEN_EXPLORER">Odpri okno Raziskovalca za uspešno priklopljeni zbirnik</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="sl" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Pobriši gesla shranjena v predpomnilniku ob samodejnem odklopu</control>
<control lang="sl" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Pobriši gesla v predpomnilniku ob izhodu</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="sl" key="SYS_DRIVE_NOT_ENCRYPTED">Sistemski razdelek/pogon oÄitno ni Å¡ifriran (ne deloma ali v celoti).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.sv.xml b/Translations/Language.sv.xml
index 0a9749a..e7475d1 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="sv" name="Svenska" en-name="Swedish" version="1.0.0" translators="Peter Runesson" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="sv" key="IDC_PREF_MOUNT_READONLY">Montera volymer som &amp;skrivskyddade</control>
<control lang="sv" key="IDC_PREF_MOUNT_REMOVABLE">Montera volymer som &amp;flyttbara medier</control>
<control lang="sv" key="IDC_PREF_OPEN_EXPLORER">&amp;Öppna Utforskaren vid montering av volymer</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="sv" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Visa en alternativ ikon i Meddelandefältet när det finns volymer monterade</control>
<control lang="sv" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Töm lösenords&amp;cache vid automatisk demontering</control>
<control lang="sv" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Töm lösenordscac&amp;he vid avslut</control>
@@ -857,7 +857,7 @@
<string lang="sv" key="TC_INSTALLER_IS_RUNNING">VeraCrypts installationsprogram körs för närvarande och genomför eller förbereder en installation av VeraCrypt. Vänta på att installationsprogrammet slutförts eller stäng det innan du fortsätter. Starta om datorn, om programmet inte går att avsluta.</string>
<string lang="sv" key="INSTALL_FAILED">Installationen misslyckades.</string>
<string lang="sv" key="UNINSTALL_FAILED">Avinstallationen misslyckades.</string>
- <string lang="sv" key="DIST_PACKAGE_CORRUPTED">Installationspaketet är skadat. Försök att ladda ned det igen (företrädelsevis från VeraCrypts officiella webbplats, https://veracrypt.codeplex.com).</string>
+ <string lang="sv" key="DIST_PACKAGE_CORRUPTED">Installationspaketet är skadat. Försök att ladda ned det igen (företrädelsevis från VeraCrypts officiella webbplats, https://www.veracrypt.fr).</string>
<string lang="sv" key="CANNOT_WRITE_FILE_X">Kan inte skapa filen %s</string>
<string lang="sv" key="EXTRACTING_VERB">Packar upp</string>
<string lang="sv" key="CANNOT_READ_FROM_PACKAGE">Det går inte att läsa från installationspaketet.</string>
@@ -1232,7 +1232,7 @@
<string lang="sv" key="HIDDEN_OS_CREATION_PREINFO_HELP">I följande steg kommer VeraCrypt att skapa det dolda operativsystemet genom att kopiera systempartitionens innehåll till den dolda volymen. (Data som kopieras krypteras i realtid med en krypteringsnyckel skild från den som används för skenoperativsystemet.)\n\nObservera att kopieringen kommer att genomföras i förstartsmiljön (innan Windows startas) och kan ta lång tid att slutföra, allt från flera timmar till flera dagar (beroende på systempartitionens storlek och din dators prestanda).\n\nDu kan avbryta kloningsprocessen, stänga av din dator, starta operativsystemet igen och sedan återuppta processen. Hela kloningsprocessen kommer, om du avbryter den, emellertid att behöva börja om från början, eftersom systempartitionens innehåll inte får ändras under processens gång.</string>
<string lang="sv" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Vill du avbryta hela processen för att skapa ett dolt operativsystem?\n\nObservera: Du kommer INTE att kunna återuppta processen om du avbryter den nu.</string>
<string lang="sv" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Vill du avbryta det förberedande testet inför systemkrypteringen?</string>
- <string lang="sv" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypts förberedande test inför systemkrypteringen misslyckades. Vill du försöka igen?\n\nOm du väljer â€Nejâ€, kommer komponenten för förstartsautentiseringen att avinstalleras.\n\nObservera:\n\n· Om VeraCrypts startinläsare inte bad dig att ange lösenordet innan Windows startades, är det möjligt att ditt operativsystem inte startade frÃ¥n den enhet pÃ¥ vilket det är installerat. Detta förfarande stöds inte.\n\n· Om du använde en annan krypteringsalgoritm än AES och det förberedande testet misslyckades (och du dessutom angav rätt lösenord), kan det ha orsakats av en dÃ¥ligt anpassad drivrutin. Välj â€Nej†och försök att kryptera systempartitionen eller -enheten igen, men använd AES som krypteringsalgoritm, dÃ¥ den är minst minneskrävande.\n\n· För fler möjliga orsaker och lösningar, gÃ¥ till sidan https://veracrypt.codeplex.com/wikipage?title=Troubleshooting.</string>
+ <string lang="sv" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypts förberedande test inför systemkrypteringen misslyckades. Vill du försöka igen?\n\nOm du väljer â€Nejâ€, kommer komponenten för förstartsautentiseringen att avinstalleras.\n\nObservera:\n\n· Om VeraCrypts startinläsare inte bad dig att ange lösenordet innan Windows startades, är det möjligt att ditt operativsystem inte startade frÃ¥n den enhet pÃ¥ vilket det är installerat. Detta förfarande stöds inte.\n\n· Om du använde en annan krypteringsalgoritm än AES och det förberedande testet misslyckades (och du dessutom angav rätt lösenord), kan det ha orsakats av en dÃ¥ligt anpassad drivrutin. Välj â€Nej†och försök att kryptera systempartitionen eller -enheten igen, men använd AES som krypteringsalgoritm, dÃ¥ den är minst minneskrävande.\n\n· För fler möjliga orsaker och lösningar, gÃ¥ till sidan https://www.veracrypt.fr/en/Troubleshooting.html.</string>
<string lang="sv" key="SYS_DRIVE_NOT_ENCRYPTED">Systempartitionen eller -enheten verkar inte vara krypterad (varken helt eller delvis).</string>
<string lang="sv" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Din systempartition eller -enhet är krypterad (delvis eller fullständigt).\n\nDu mÃ¥ste dekryptera din systempartition eller -volym innan du fortsätter. Välj â€Permanent dekryptering av systempartition eller -enhet†under â€System†i rullgardinsmenyn.</string>
<string lang="sv" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Du kan inte nedgradera VeraCrypt när systempartitionen eller -enheten är krypterad (helt eller delvis). Du kan däremot uppgradera eller ominstallera samma version.</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.tr.xml b/Translations/Language.tr.xml
index 9413ee4..735a10e 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="tr" name="Türkçe" en-name="Turkish" version="0.1.0" translators="Ali İskender Turan, Zeynel Abidin Öztürk" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="tr" key="IDC_PREF_MOUNT_READONLY">Birimleri salt okunur olarak baÄŸla</control>
<control lang="tr" key="IDC_PREF_MOUNT_REMOVABLE">Birimleri çıkartılabilir ortam olarak bağla</control>
<control lang="tr" key="IDC_PREF_OPEN_EXPLORER">Başarıyla bağlanan birim için Gezgin penceresini aç</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="tr" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Önbellekteki parolaları otomatik bağlantı keserken temizle</control>
<control lang="tr" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Önbellekteki parolaları çıkışta temizle</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.uk.xml b/Translations/Language.uk.xml
index 4d72eeb..726ed4d 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="uk" name="УкраїнÑька" en-name="Ukrainian" version="1.0.0" translators="Kravchuk Olexandr, Babchuk Volodymyr" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="uk" key="IDC_PREF_MOUNT_READONLY">Монтувати Ñк том тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ</control>
<control lang="uk" key="IDC_PREF_MOUNT_REMOVABLE">Монтувати Ñк змінні ноÑÑ–Ñ—</control>
<control lang="uk" key="IDC_PREF_OPEN_EXPLORER">Відкривати вікно Провідника Ð´Ð»Ñ ÑƒÑпішно змонтованного тома</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="uk" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">ВикориÑтовувати інший значок панелі завдань, коли Ñ” підключені томи</control>
<control lang="uk" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Очищати кеш паролів при авторозмонтуванні</control>
<control lang="uk" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Очищати кеш паролів при виході</control>
@@ -857,7 +857,7 @@
<string lang="uk" key="TC_INSTALLER_IS_RUNNING">Ð’ Ñтой ÑиÑтеме ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½ инÑталлÑтор VeraCrypt. Он выполнÑет/готовит уÑтановку или обновление VeraCrypt. ДождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ работы или закройте его. ЕÑли закрыть инÑталлÑтор не получаетÑÑ, перезагрузите комп'ютер и лишь потом продолжите.</string>
<string lang="uk" key="INSTALL_FAILED">Ðевдале вÑтановлюваннÑ.</string>
<string lang="uk" key="UNINSTALL_FAILED">Ðевдале видаленнÑ.</string>
- <string lang="uk" key="DIST_PACKAGE_CORRUPTED">Цей файл вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾. Будь лаÑка, Ñпробуйте завантажити його знову (рекомендовано з офіційної Ñторінки VeraCrypt на https://veracrypt.codeplex.com).</string>
+ <string lang="uk" key="DIST_PACKAGE_CORRUPTED">Цей файл вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾. Будь лаÑка, Ñпробуйте завантажити його знову (рекомендовано з офіційної Ñторінки VeraCrypt на https://www.veracrypt.fr).</string>
<string lang="uk" key="CANNOT_WRITE_FILE_X">Ðеможливо запиÑати файл %s</string>
<string lang="uk" key="EXTRACTING_VERB">ВидобуваннÑ</string>
<string lang="uk" key="CANNOT_READ_FROM_PACKAGE">Ðеможливо прочитати дані з файлу вÑтановлюваннÑ.</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.uz.xml b/Translations/Language.uz.xml
index f77d9b6..611cbc4 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="uz" name="Ўзбекча" en-name="Uzbek (Cyrillic)" version="0.1.0" translators="Abdurauf Azizov, Dmitry Yerokhin" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="uz" key="IDC_PREF_MOUNT_READONLY">Монтировать как тома только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ</control>
<control lang="uz" key="IDC_PREF_MOUNT_REMOVABLE">Монтировать как Ñменные ноÑители</control>
<control lang="uz" key="IDC_PREF_OPEN_EXPLORER">Открывать окно Проводника Ð´Ð»Ñ ÑƒÑпешно Ñмонтированного тома</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="uz" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Очищать кÑш паролей при авторазмонтировании</control>
<control lang="uz" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Очищать кÑш паролей при выходе</control>
@@ -857,7 +857,7 @@
<string lang="uz" key="TC_INSTALLER_IS_RUNNING">Ð’ Ñтой ÑиÑтеме ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½ инÑталлÑтор VeraCrypt. Он выполнÑет/готовит уÑтановку или обновление VeraCrypt. ДождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ работы или закройте его. ЕÑли закрыть инÑталлÑтор не получаетÑÑ, перезагрузите компьютер и лишь потом продолжите.</string>
<string lang="uz" key="INSTALL_FAILED">УÑтановка не выполнена.</string>
<string lang="uz" key="UNINSTALL_FAILED">Удаление не выполнено.</string>
- <string lang="uz" key="DIST_PACKAGE_CORRUPTED">Этот диÑтрибутивный пакет повреждён. Загрузите его Ñнова (желательно Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñайта VeraCrypt - https://veracrypt.codeplex.com).</string>
+ <string lang="uz" key="DIST_PACKAGE_CORRUPTED">Этот диÑтрибутивный пакет повреждён. Загрузите его Ñнова (желательно Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñайта VeraCrypt - https://www.veracrypt.fr).</string>
<string lang="uz" key="CANNOT_WRITE_FILE_X">Ðевозможно запиÑать файл %s</string>
<string lang="uz" key="EXTRACTING_VERB">Извлечение</string>
<string lang="uz" key="CANNOT_READ_FROM_PACKAGE">Ðевозможно прочитать данные из диÑтрибутива.</string>
@@ -1232,7 +1232,7 @@
<string lang="uz" key="HIDDEN_OS_CREATION_PREINFO_HELP">Yf Ñледующих Ñтапах VeraCrypt ÑоздаÑÑ‚ Ñкрытую ОС, Ñкопировав Ñодержимое ÑиÑтемного раздела в Ñкрытый том (копируемые данные шифруютÑÑ 'на лету' Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼, отличным от иÑпользуемого Ð´Ð»Ñ Ð¾Ð±Ð¼Ð°Ð½Ð½Ð¾Ð¹ ОС).\n\nУчтите, что процеÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ Ð½Ð° предзагрузочной Ñтадии (до запуÑка Windows) и может занÑÑ‚ÑŒ много времени (неÑколько чаÑов или даже дней, в завиÑимоÑти от размера ÑиÑтемного раздела и быÑтродейÑÑ‚Ð²Ð¸Ñ ÐŸÐš).\n\nÐ’Ñ‹ Ñможете прервать Ñтот процеÑÑ, выключить ПК, запуÑтить ОС и затем возобновить его. Однако в Ñлучае прерываниÑ, копирование ÑиÑтемы придётÑÑ Ð½Ð°Ñ‡Ð°Ñ‚ÑŒ Ñначала (так как при клонировании Ñодержимое ÑиÑтемного раздела не должно изменÑÑ‚ÑŒÑÑ).</string>
<string lang="uz" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Ð’Ñ‹ хотите отменить веÑÑŒ процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрытой операционной ÑиÑтемы?\n\nПримечание: в Ñлучае отмены вы ÐЕ Ñможете возобновить процеÑÑ.</string>
<string lang="uz" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Ð’Ñ‹ хотите отменить пре-теÑÑ‚ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемы?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="uz" key="SYS_DRIVE_NOT_ENCRYPTED">Ð¡ÑƒÐ´Ñ Ð¿Ð¾ вÑему, ÑиÑтемный раздел/диÑк не зашифрован (ни чаÑтично, ни полноÑтью).</string>
<string lang="uz" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">СиÑтемный раздел/диÑк зашифрован (чаÑтично или полноÑтью).\n\nПрежде чем продолжить, полноÑтью дешифруйте ÑиÑтемный раздел/диÑк. Чтобы Ñто Ñделать, выберите в главном окне VeraCrypt меню 'СиÑтема' &gt; 'Permanently Decrypt System Partition/Drive'.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.vi.xml b/Translations/Language.vi.xml
index 671ecce..83f2553 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="vi" name="Tiếng Việt" en-name="Vietnamese" version="0.1.0" translators="Nguyễn Kim Huy" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="vi" key="IDC_PREF_MOUNT_READONLY">Nạp các tập Ä‘Ä©a kiểu chỉ-Ä‘á»c lên</control>
<control lang="vi" key="IDC_PREF_MOUNT_REMOVABLE">Nạp các tập Ä‘Ä©a kiểu môi trÆ°á»ng chứa rá»i được lên</control>
<control lang="vi" key="IDC_PREF_OPEN_EXPLORER">Mở cửa sổ Explorer của tập đĩa được nạp lên thành công</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="vi" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Xóa mật mã được tạm trữ khi tự-tháo xuống</control>
<control lang="vi" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Xóa mật mã được tạm trữ khi ra khá»i</control>
@@ -857,7 +857,7 @@
<string lang="vi" key="TC_INSTALLER_IS_RUNNING">Bộ cài đặt của VeraCrypt hiện đang chạy trong hệ thống này và đang thi hành hay chuẩn bị việc cài đặt hay cập nhật VeraCrypt. Trước khi bạn tiến hành, xin chỠcho nó chấm dứt hoặc đóng nó lại. Nếu bạn không đóng nó được thì xin bắt đầu máy điện toán của bạn lại trước khi tiến hành.</string>
<string lang="vi" key="INSTALL_FAILED">Không cài đặt được.</string>
<string lang="vi" key="UNINSTALL_FAILED">Không hủy cài đặt được.</string>
- <string lang="vi" key="DIST_PACKAGE_CORRUPTED">Kiện đồ phân phối này bị tổn hại. Xin tải nó xuống lại (tốt hơn là từ trang web chính thức của VeraCrypt tại https://veracrypt.codeplex.com).</string>
+ <string lang="vi" key="DIST_PACKAGE_CORRUPTED">Kiện đồ phân phối này bị tổn hại. Xin tải nó xuống lại (tốt hơn là từ trang web chính thức của VeraCrypt tại https://www.veracrypt.fr).</string>
<string lang="vi" key="CANNOT_WRITE_FILE_X">Không thể viết vào tập tin %s</string>
<string lang="vi" key="EXTRACTING_VERB">Äang rút ra</string>
<string lang="vi" key="CANNOT_READ_FROM_PACKAGE">Không thể Ä‘á»c dữ liệu từ kiện đồ được.</string>
@@ -1232,7 +1232,7 @@
<string lang="vi" key="HIDDEN_OS_CREATION_PREINFO_HELP">Trong các bÆ°á»›c kế tiếp, VeraCrypt sẽ cấu tạo hệ Ä‘iá»u hành ẩn bằng cách sao chép ná»™i dung của phân vùng hệ thống thành tập Ä‘Ä©a ẩn (dữ liệu đã được sao chép sẽ được mã hóa ở bá»™ phận fly vá»›i má»™t khoá mật mã khác vá»›i hệ sẽ được sá»­ dụng cho các hệ thống hoạt Ä‘á»™ng nghi trang).\n\nXin lÆ°u ý là quá trình này sẽ được thá»±c hiện trong môi trÆ°á»ng tiá»n khởi Ä‘á»™ng (trÆ°á»›c khi bắt đầu Windows) và nó có thể mất má»™t thá»i gian dài để hoàn thành; vài giá» hoặc thậm chí vài ngày (tùy thuá»™c vào kích cỡ của hệ thống phân vùng và vá» hiệu suất của máy Ä‘iện toán của bạn).\n\n Bạn sẽ có thể làm gián Ä‘oạn quá trình,. tắt máy, khởi Ä‘á»™ng hệ Ä‘iá»u hành và sau đó tiếp tục lại quá trình. Tuy nhiên, nếu bạn làm gián Ä‘oạn nó, toàn bá»™ quá trình sao chép hệ thống sẽ phải bắt đầu từ đầu (vì ná»™i dung của phân vùng hệ thống không phải thay đổi trong quá trình sao y).</string>
<string lang="vi" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Bạn có muốn hủy bá» toàn bá»™ quá trình sáng tạo của hệ Ä‘iá»u hành ẩn?\n\nLÆ°u ý: Bạn sẽ không thể tiếp tục lại quá trình nếu bạn hủy bá» nó ngay bây giá».</string>
<string lang="vi" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Bạn có muốn hủy bỠhệ thống mã hóa thử trước?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="vi" key="SYS_DRIVE_NOT_ENCRYPTED">Các phân vùng/ổ Ä‘Ä©a hệ thống dÆ°á»ng nhÆ° không được mã hóa (má»™t phần hoặc hoàn toàn).</string>
<string lang="vi" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Phân vùng/ổ Ä‘Ä©a hệ thống của bạn được mã hóa (má»™t phần hoặc hoàn toàn). \n\nXin giải mã phân vùng/ổ Ä‘Ä©a hệ thống của bạn hoàn toàn trÆ°á»›c khi tiến hành. Äể làm nhÆ° vậy, hãy chá»n 'Hệ thống'&gt; 'VÄ©nh viá»…n Giải mã Phân vùng/á»” Ä‘Ä©a Hệ thống' từ thanh trình Ä‘Æ¡n của cá»­a sổ VeraCrypt chính.</string>
<string lang="vi" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Khi phân vùng/ổ đĩa hệ thống được mã hóa (một phần hoặc hoàn toàn), bạn không thể hạ cấp VeraCrypt xuống (nhưng bạn có thể nâng cấp hoặc cài đặt một phiên bản giống vậy lại).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.zh-cn.xml b/Translations/Language.zh-cn.xml
index 74e7cac..4a86a82 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="zh-cn" name="简体中文" en-name="Chinese (Simplified)" version="1.0.0" translators="Barney Li and Zhangjintao" />
<!-- Fonts -->
@@ -857,7 +857,7 @@
<string lang="zh-cn" key="TC_INSTALLER_IS_RUNNING">VeraCrypt 安装程åºæ­£åœ¨æ‰§è¡Œ VeraCrypt 的安装或更新。在您继续进行å‰ï¼Œè¯·ç­‰å¾…其完æˆæˆ–者关闭它。如果您无法关闭它,请在继续之å‰é‡å¯è®¡ç®—机。</string>
<string lang="zh-cn" key="INSTALL_FAILED">安装失败。</string>
<string lang="zh-cn" key="UNINSTALL_FAILED">å¸è½½å¤±è´¥ã€‚</string>
- <string lang="zh-cn" key="DIST_PACKAGE_CORRUPTED">该安装包已ç»æŸå。请å°è¯•é‡æ–°ä¸‹è½½å®‰è£…包(优先建议从 VeraCrypt 官方网站 https://veracrypt.codeplex.com 下载)。</string>
+ <string lang="zh-cn" key="DIST_PACKAGE_CORRUPTED">该安装包已ç»æŸå。请å°è¯•é‡æ–°ä¸‹è½½å®‰è£…包(优先建议从 VeraCrypt 官方网站 https://www.veracrypt.fr 下载)。</string>
<string lang="zh-cn" key="CANNOT_WRITE_FILE_X">ä¸èƒ½å†™å…¥æ–‡ä»¶ %s</string>
<string lang="zh-cn" key="EXTRACTING_VERB">正在释放</string>
<string lang="zh-cn" key="CANNOT_READ_FROM_PACKAGE">ä¸èƒ½ä»Žå®‰è£…包中读å–æ•°æ®</string>
@@ -1232,7 +1232,7 @@
<string lang="zh-cn" key="HIDDEN_OS_CREATION_PREINFO_HELP">在下一步中,VeraCrypt 将会通过å¤åˆ¶å½“å‰è¿è¡Œç³»ç»Ÿçš„内容到éšè—加密å·æ¥åˆ›å»ºéšå½¢ç³»ç»Ÿï¼ˆè¢«å¤åˆ¶çš„æ•°æ®å°†ä¼šä½¿ç”¨ä¸Žè¿·æƒ‘系统ä¸åŒçš„密钥实时加密))。\n\n请注æ„该过程将会在å¯åŠ¨éªŒè¯çŽ¯å¢ƒä¸­æ‰§è¡Œï¼ˆåœ¨ Windows å¯åŠ¨å‰ï¼‰ï¼Œå¹¶å¯èƒ½èŠ±è´¹è¾ƒé•¿çš„时间;å¯èƒ½éœ€è¦èŠ±è´¹å‡ ä¸ªå°æ—¶æˆ–者几天(ä¾æ®ç³»ç»Ÿåˆ†åŒºå®¹é‡å’Œè®¡ç®—机性能而定,例如PM1.6GHz加密时大概的速度是0.5GB/分钟左å³ï¼‰ã€‚\n\n您å¯ä»¥ä¸­æ–­è¯¥è¿‡ç¨‹ï¼Œå…³æœºï¼Œå¯åŠ¨æ“作系统并在此之åŽç»§ç»­è¯¥è¿‡ç¨‹ã€‚然而,如果您中断该过程,整个å¤åˆ¶ç³»ç»Ÿçš„过程将会ä¸å¾—ä¸ä»Žå¤´å¼€å§‹ï¼ˆå› ä¸ºç³»ç»Ÿåˆ†åŒºçš„内容在克隆期间必须ä¸èƒ½è¢«æ”¹å˜ï¼‰ã€‚</string>
<string lang="zh-cn" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">您想è¦å–消整个éšå½¢æ“作系统的创建过程å—?\n\n注æ„:如果现在å–消,您将无法继续该进程。</string>
<string lang="zh-cn" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">您è¦å–消系统加密预测试å—?</string>
- <string lang="zh-cn" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt 系统加密预测试失败。您希望å†è¯•ä¸€æ¬¡å—?\n\n如果选择〖å¦ã€—,则å¯åŠ¨éªŒè¯ç»„件将会被å¸è½½ã€‚\n\n说明:如果 VeraCrypt å¯åŠ¨ç®¡ç†å™¨åœ¨ Windows å¯åŠ¨å‰ä¸è¦æ±‚您输入密ç ï¼Œè¿™å¾ˆå¯èƒ½æ˜¯æ‚¨çš„æ“作系统并没有从该系统所安装的驱动器引导的。目å‰å¹¶ä¸æ”¯æŒè¿™ç§æ–¹å¼ã€‚\n\n- 如果您使用了AES 之外的加密算法并且预测试失败了(并且您也输入了密ç ï¼‰ï¼Œè¿™å¯èƒ½ç”±æœ‰è®¾è®¡ç¼ºé™·çš„驱动导致的。选择〖å¦ã€—,å°è¯•å†æ¬¡åŠ å¯†ç³»ç»Ÿåˆ†åŒº/设备,但是è¦ä½¿ç”¨ AES 加密算法(该算法所需内存最低)。\n\n- 更多å¯èƒ½å¯¼è‡´è¯¥é”™è¯¯çš„原因,请å‚考: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="zh-cn" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt 系统加密预测试失败。您希望å†è¯•ä¸€æ¬¡å—?\n\n如果选择〖å¦ã€—,则å¯åŠ¨éªŒè¯ç»„件将会被å¸è½½ã€‚\n\n说明:如果 VeraCrypt å¯åŠ¨ç®¡ç†å™¨åœ¨ Windows å¯åŠ¨å‰ä¸è¦æ±‚您输入密ç ï¼Œè¿™å¾ˆå¯èƒ½æ˜¯æ‚¨çš„æ“作系统并没有从该系统所安装的驱动器引导的。目å‰å¹¶ä¸æ”¯æŒè¿™ç§æ–¹å¼ã€‚\n\n- 如果您使用了AES 之外的加密算法并且预测试失败了(并且您也输入了密ç ï¼‰ï¼Œè¿™å¯èƒ½ç”±æœ‰è®¾è®¡ç¼ºé™·çš„驱动导致的。选择〖å¦ã€—,å°è¯•å†æ¬¡åŠ å¯†ç³»ç»Ÿåˆ†åŒº/设备,但是è¦ä½¿ç”¨ AES 加密算法(该算法所需内存最低)。\n\n- 更多å¯èƒ½å¯¼è‡´è¯¥é”™è¯¯çš„原因,请å‚考: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="zh-cn" key="SYS_DRIVE_NOT_ENCRYPTED">该系统分区/驱动器看起æ¥æ²¡æœ‰è¢«åŠ å¯†ï¼ˆæˆ–者是没有被完全加密)。</string>
<string lang="zh-cn" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">您的系统分区/驱动器已加密(部分或完全加密)。\n\n请在继续进行å‰è§£å¯†è¯¥ç³»ç»Ÿåˆ†åŒº/驱动器。æ“作步骤:在 VeraCrypt 主窗å£çš„èœå•ä¸­ï¼Œé€‰æ‹©ã€–系统〗-&gt;〖永久解密系统分区/驱动器〗。</string>
<string lang="zh-cn" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">当系统分区/驱动器已部份或完全加密时,您ä¸èƒ½é™çº§ VeraCrypt 的版本(但是å¯ä»¥æ›´æ–°åˆ°æ–°ç‰ˆæœ¬æˆ–者从新安装åŒä¸€ç‰ˆæœ¬ï¼‰ã€‚</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.zh-hk.xml b/Translations/Language.zh-hk.xml
index 4845e85..dd863c9 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="zh-hk" name="ç¹é«”中文" en-name="Chinese (Hong Kong)" version="0.1.0" translators="PUN Chi Ho" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="zh-hk" key="IDC_PREF_MOUNT_READONLY">以唯讀模å¼è¼‰å…¥åŠ å¯†å·</control>
<control lang="zh-hk" key="IDC_PREF_MOUNT_REMOVABLE">以å¯ç§»å‹•ä»‹è³ªæ¨¡å¼è¼‰å…¥åŠ å¯†å·</control>
<control lang="zh-hk" key="IDC_PREF_OPEN_EXPLORER">為æˆåŠŸè¼‰å…¥çš„加密å·æ‰“開資æºç®¡ç†å™¨è¦–窗</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="zh-hk" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">自動å¸è¼‰æ™‚擦除緩存的密碼</control>
<control lang="zh-hk" key="IDC_PREF_WIPE_CACHE_ON_EXIT">退出時擦除緩存的密碼</control>
@@ -857,7 +857,7 @@
<string lang="zh-hk" key="TC_INSTALLER_IS_RUNNING">VeraCrypt 安è£ç¨‹å¼æ­£åœ¨åŸ·è¡Œ VeraCrypt 的安è£æˆ–更新。在您繼續進行å‰ï¼Œè«‹ç­‰å¾…其完æˆæˆ–者關閉它。如果您無法關閉它,請在繼續之å‰é‡å•Ÿé›»è…¦ã€‚</string>
<string lang="zh-hk" key="INSTALL_FAILED">安è£å¤±æ•—。</string>
<string lang="zh-hk" key="UNINSTALL_FAILED">å¸è¼‰å¤±æ•—。</string>
- <string lang="zh-hk" key="DIST_PACKAGE_CORRUPTED">該安è£åŒ…已經æ壞。請嘗試é‡æ–°ä¸‹è¼‰å®‰è£åŒ…(優先建議從 VeraCrypt 官方網站 https://veracrypt.codeplex.com 下載)。</string>
+ <string lang="zh-hk" key="DIST_PACKAGE_CORRUPTED">該安è£åŒ…已經æ壞。請嘗試é‡æ–°ä¸‹è¼‰å®‰è£åŒ…(優先建議從 VeraCrypt 官方網站 https://www.veracrypt.fr 下載)。</string>
<string lang="zh-hk" key="CANNOT_WRITE_FILE_X">ä¸èƒ½å¯«å…¥æª” %s</string>
<string lang="zh-hk" key="EXTRACTING_VERB">正在釋放</string>
<string lang="zh-hk" key="CANNOT_READ_FROM_PACKAGE">ä¸èƒ½å¾žå®‰è£åŒ…中讀å–資料</string>
@@ -1232,7 +1232,7 @@
<string lang="zh-hk" key="HIDDEN_OS_CREATION_PREINFO_HELP">在下一步中,VeraCrypt 將會通éŽè¤‡è£½ç•¶å‰é‹è¡Œç³»çµ±çš„內容到隱è—加密å·ä¾†å‰µå»ºéš±å½¢ç³»çµ±ï¼ˆè¢«è¤‡è£½çš„資料將會使用與迷惑系統ä¸åŒçš„密鑰å³æ™‚加密))。\n\n請注æ„該éŽç¨‹å°‡æœƒåœ¨å•Ÿå‹•é©—證環境中執行(在 Windows å•Ÿå‹•å‰ï¼‰ï¼Œä¸¦å¯èƒ½èŠ±è²»è¼ƒé•·çš„時間;å¯èƒ½éœ€è¦èŠ±è²»å¹¾å€‹å°æ™‚或者幾天(ä¾æ“šç³»çµ±åˆ†å€å®¹é‡å’Œé›»è…¦æ€§èƒ½è€Œå®šï¼Œä¾‹å¦‚PM1.6GHz加密時大概的速度是0.5GB/分é˜å·¦å³ï¼‰ã€‚\n\n您å¯ä»¥ä¸­æ–·è©²éŽç¨‹ï¼Œé—œæ©Ÿï¼Œå•Ÿå‹•ä½œæ¥­ç³»çµ±ä¸¦åœ¨æ­¤ä¹‹å¾Œç¹¼çºŒè©²éŽç¨‹ã€‚然而,如果您中斷該éŽç¨‹ï¼Œæ•´å€‹è¤‡è£½ç³»çµ±çš„éŽç¨‹å°‡æœƒä¸å¾—ä¸å¾žé ­é–‹å§‹ï¼ˆå› ç‚ºç³»çµ±åˆ†å€çš„內容在克隆期間必須ä¸èƒ½è¢«æ”¹è®Šï¼‰ã€‚</string>
<string lang="zh-hk" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">您想è¦å–消整個隱形作業系統的創建éŽç¨‹å—Žï¼Ÿ\n\n注æ„:如果ç¾åœ¨å–消,您將無法繼續該進程。</string>
<string lang="zh-hk" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">您è¦å–消系統加密é æ¸¬è©¦å—Žï¼Ÿ</string>
- <string lang="zh-hk" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt 系統加密é æ¸¬è©¦å¤±æ•—。您希望å†è©¦ä¸€æ¬¡å—Žï¼Ÿ\n\n如果您é¸æ“‡ 'å¦',則啟動驗證元件將會被å¸è¼‰ã€‚\n\n說明:如果 VeraCrypt 啟動管ç†å™¨åœ¨ Windows å•Ÿå‹•å‰ä¸è¦æ±‚您輸入密碼,這很å¯èƒ½æ˜¯æ‚¨çš„作業系統並沒有從該系統所安è£çš„驅動器引導的。目å‰ä¸¦ä¸æ”¯æ´é€™ç¨®æ–¹å¼ã€‚\n\n- 如果您使用了AES 之外的加密演算法並且é æ¸¬è©¦å¤±æ•—了(並且您也輸入了密碼),這å¯èƒ½ç”±æœ‰è¨­è¨ˆç¼ºé™·çš„驅動導致的。é¸æ“‡ 'å¦',嘗試å†æ¬¡åŠ å¯†ç³»çµ±åˆ†å€/設備,但是è¦ä½¿ç”¨ AES 加密演算法(該演算法所需記憶體最低)。\n\n- 更多å¯èƒ½å°Žè‡´è©²éŒ¯èª¤çš„原因,請åƒè€ƒ: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="zh-hk" key="BOOT_PRETEST_FAILED_RETRY">VeraCrypt 系統加密é æ¸¬è©¦å¤±æ•—。您希望å†è©¦ä¸€æ¬¡å—Žï¼Ÿ\n\n如果您é¸æ“‡ 'å¦',則啟動驗證元件將會被å¸è¼‰ã€‚\n\n說明:如果 VeraCrypt 啟動管ç†å™¨åœ¨ Windows å•Ÿå‹•å‰ä¸è¦æ±‚您輸入密碼,這很å¯èƒ½æ˜¯æ‚¨çš„作業系統並沒有從該系統所安è£çš„驅動器引導的。目å‰ä¸¦ä¸æ”¯æ´é€™ç¨®æ–¹å¼ã€‚\n\n- 如果您使用了AES 之外的加密演算法並且é æ¸¬è©¦å¤±æ•—了(並且您也輸入了密碼),這å¯èƒ½ç”±æœ‰è¨­è¨ˆç¼ºé™·çš„驅動導致的。é¸æ“‡ 'å¦',嘗試å†æ¬¡åŠ å¯†ç³»çµ±åˆ†å€/設備,但是è¦ä½¿ç”¨ AES 加密演算法(該演算法所需記憶體最低)。\n\n- 更多å¯èƒ½å°Žè‡´è©²éŒ¯èª¤çš„原因,請åƒè€ƒ: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="zh-hk" key="SYS_DRIVE_NOT_ENCRYPTED">該系統分å€/驅動器看起來沒有被加密(或者是沒有被完全加密)。</string>
<string lang="zh-hk" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">您的系統分å€/驅動器已加密(部分或完全加密)。\n\n請在繼續進行å‰è§£å¯†é€™å€‹ç³»çµ±åˆ†å€/驅動器。æ“作步驟:在 VeraCrypt 主視窗的功能表中,é¸æ“‡ '系統' &gt; '永久解密系統分å€/驅動器'。</string>
<string lang="zh-hk" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">當系統分å€/驅動器已被部份或完全加密時,您ä¸èƒ½é™ç´š VeraCrypt 的版本(但是å¯ä»¥æ›´æ–°åˆ°æ–°ç‰ˆæœ¬æˆ–者從新安è£åŒä¸€ç‰ˆæœ¬ï¼‰ã€‚</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.zh-tw.xml b/Translations/Language.zh-tw.xml
index b905edb..b5bfcc8 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.19">
+ <localization prog-version="1.21">
<!-- Languages -->
<language langid="zh-tw" name="ç¹é«”中文" en-name="Chinese (Taiwan)" version="0.1.0" translators="Barney Li, Simon Ma, ChangMing Hsu" />
<!-- Fonts -->
@@ -170,7 +170,7 @@
<control lang="zh-tw" key="IDC_PREF_MOUNT_READONLY">以唯讀模å¼æŽ›è¼‰åŠ å¯†å€</control>
<control lang="zh-tw" key="IDC_PREF_MOUNT_REMOVABLE">以å¸é™¤å¼åª’體模å¼æŽ›è¼‰åŠ å¯†å€</control>
<control lang="zh-tw" key="IDC_PREF_OPEN_EXPLORER">為æˆåŠŸæŽ›è¼‰çš„加密å€æ‰“é–‹ç€è¦½å™¨è¦–窗</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="zh-tw" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">自動å¸è¼‰æ™‚清除快å–的密碼</control>
<control lang="zh-tw" key="IDC_PREF_WIPE_CACHE_ON_EXIT">çµæŸæ™‚清除快å–的密碼</control>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="zh-tw" key="INSTALL_FAILED">安è£å¤±æ•—。</string>
<string lang="zh-tw" key="UNINSTALL_FAILED">移除失敗。</string>
- <string lang="zh-tw" key="DIST_PACKAGE_CORRUPTED">這發行包è£æª”已經æ壞。請試著å†ä¸‹è¼‰ä¸€æ¬¡(最好從 VeraCrypt 官方網站 https://veracrypt.codeplex.com 下載)。</string>
+ <string lang="zh-tw" key="DIST_PACKAGE_CORRUPTED">這發行包è£æª”已經æ壞。請試著å†ä¸‹è¼‰ä¸€æ¬¡(最好從 VeraCrypt 官方網站 https://www.veracrypt.fr 下載)。</string>
<string lang="zh-tw" key="CANNOT_WRITE_FILE_X">ä¸èƒ½å¯«å…¥æª”案 %s</string>
<string lang="zh-tw" key="EXTRACTING_VERB">正在解壓縮</string>
<string lang="zh-tw" key="CANNOT_READ_FROM_PACKAGE">ä¸èƒ½å¾žåŒ…è£æª”中讀å–資料</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="zh-tw" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">您è¦å–消系統加密é å…ˆæ¸¬è©¦å—Žï¼Ÿ</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="zh-tw" key="SYS_DRIVE_NOT_ENCRYPTED">系統分割å€/ç£ç¢Ÿæ©Ÿçœ‹èµ·ä¾†ä¸¦æœªåŠ å¯†(å³æ²’有部分也沒有完全加密)。</string>
<string lang="zh-tw" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">您的系統分割å€/ç£ç¢Ÿæ©Ÿå·²åŠ å¯†(部分或完全加密)。\n\n請在繼續進行之å‰è§£å¯†é€™å€‹ç³»çµ±åˆ†å‰²å€/ç£ç¢Ÿæ©Ÿã€‚è¦é€™æ¨£åšï¼Œåœ¨ VeraCrypt 主視窗的é¸å–®ä¸­ï¼Œé¸æ“‡ "系統" &gt; "永久解密系統分割å€/ç£ç¢Ÿæ©Ÿ"。</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/doc/EFI-DCS/dcs_tpm_owner_02.pdf b/doc/EFI-DCS/dcs_tpm_owner_02.pdf
new file mode 100644
index 0000000..128a753
--- /dev/null
+++ b/doc/EFI-DCS/dcs_tpm_owner_02.pdf
Binary files differ
diff --git a/doc/EFI-DCS/disk_encryption_v1_2.pdf b/doc/EFI-DCS/disk_encryption_v1_2.pdf
new file mode 100644
index 0000000..7a06d01
--- /dev/null
+++ b/doc/EFI-DCS/disk_encryption_v1_2.pdf
Binary files differ
diff --git a/doc/VeraCrypt User Guide.odt b/doc/VeraCrypt User Guide.odt
deleted file mode 100644
index ef4f3f3..0000000
--- a/doc/VeraCrypt User Guide.odt
+++ /dev/null
Binary files differ
diff --git a/doc/chm/VeraCrypt User Guide.chm b/doc/chm/VeraCrypt User Guide.chm
new file mode 100644
index 0000000..c64942f
--- /dev/null
+++ b/doc/chm/VeraCrypt User Guide.chm
Binary files differ
diff --git a/doc/chm/VeraCrypt.hhc b/doc/chm/VeraCrypt.hhc
new file mode 100644
index 0000000..500f906
--- /dev/null
+++ b/doc/chm/VeraCrypt.hhc
@@ -0,0 +1,415 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Table Of Contents">
+ <param name="Local" value="Documentation.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Preface">
+ <param name="Local" value="Preface.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Introduction">
+ <param name="Local" value="Introduction.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Beginner's Tutorial ">
+ <param name="Local" value="Beginner's Tutorial.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="VeraCrypt Volume ">
+ <param name="Local" value="VeraCrypt Volume.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Creating a New VeraCrypt Volume">
+ <param name="Local" value="Creating New Volumes.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Favorite Volumes">
+ <param name="Local" value="Favorite Volumes.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="System Favorite Volumes">
+ <param name="Local" value="System Favorite Volumes.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="System Encryption">
+ <param name="Local" value="System Encryption.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Hidden Operating System">
+ <param name="Local" value="Hidden Operating System.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Operating Systems Supported for System Encryption">
+ <param name="Local" value="Supported Systems for System Encryption.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="VeraCrypt Rescue Disk">
+ <param name="Local" value="VeraCrypt Rescue Disk.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Plausible Deniability">
+ <param name="Local" value="Plausible Deniability.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Hidden Volume">
+ <param name="Local" value="Hidden Volume.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Protection of Hidden Volumes Against Damage">
+ <param name="Local" value="Protection of Hidden Volumes.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Security Requirements and Precautions Pertaining to Hidden Volumes">
+ <param name="Local" value="Security Requirements for Hidden Volumes.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Hidden Operating System">
+ <param name="Local" value="VeraCrypt Hidden Operating System.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Main Program Window">
+ <param name="Local" value="Main Program Window.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Program Menu">
+ <param name="Local" value="Program Menu.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mounting Volumes">
+ <param name="Local" value="Mounting VeraCrypt Volumes.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Parallelization">
+ <param name="Local" value="Parallelization.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Pipelining">
+ <param name="Local" value="Pipelining.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Hardware acceleration">
+ <param name="Local" value="Hardware Acceleration.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Hot keys">
+ <param name="Local" value="Hot Keys.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Keyfiles">
+ <param name="Local" value="Keyfiles in VeraCrypt.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Security Tokens &amp; Smart Cards">
+ <param name="Local" value="Security Tokens & Smart Cards.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Portable Mode">
+ <param name="Local" value="Portable Mode.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="TrueCrypt Support">
+ <param name="Local" value="TrueCrypt Support.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Converting TrueCrypt Volumes &amp; Partitions">
+ <param name="Local" value="Converting TrueCrypt volumes and partitions.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Default Mount Parameters">
+ <param name="Local" value="Default Mount Parameters.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Language Packs">
+ <param name="Local" value="Language Packs.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Encryption Algorithms">
+ <param name="Local" value="Encryption Algorithms.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="AES">
+ <param name="Local" value="AES.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Camellia">
+ <param name="Local" value="Camellia.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Kuznyechik">
+ <param name="Local" value="Kuznyechik.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Serpent">
+ <param name="Local" value="Serpent.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Twofish">
+ <param name="Local" value="Twofish.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Cascades of ciphers">
+ <param name="Local" value="Cascades.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Hash Algorithms">
+ <param name="Local" value="Hash Algorithms.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="RIPEMD-160">
+ <param name="Local" value="RIPEMD-160.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="SHA-256">
+ <param name="Local" value="SHA-256.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="SHA-512">
+ <param name="Local" value="SHA-512.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Whirlpool">
+ <param name="Local" value="Whirlpool.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Streebog">
+ <param name="Local" value="Streebog.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Supported Operating Systems">
+ <param name="Local" value="Supported Operating Systems.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Command Line Usage">
+ <param name="Local" value="Command Line Usage.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Security Model">
+ <param name="Local" value="Security Model.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Security Requirements And Precautions">
+ <param name="Local" value="Security Requirements and Precautions.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Data Leaks">
+ <param name="Local" value="Data Leaks.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Paging File">
+ <param name="Local" value="Paging File.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Memory Dump Files">
+ <param name="Local" value="Memory Dump Files.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Hibernation File">
+ <param name="Local" value="Hibernation File.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Unencrypted Data in RAM">
+ <param name="Local" value="Unencrypted Data in RAM.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Physical Security">
+ <param name="Local" value="Physical Security.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Malware">
+ <param name="Local" value="Malware.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Multi-User Environment">
+ <param name="Local" value="Multi-User Environment.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Authenticity and Integrity">
+ <param name="Local" value="Authenticity and Integrity.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Choosing Passwords and Keyfiles">
+ <param name="Local" value="Choosing Passwords and Keyfiles.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Changing Passwords and Keyfiles">
+ <param name="Local" value="Changing Passwords and Keyfiles.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Trim Operation">
+ <param name="Local" value="Trim Operation.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Wear-Leveling">
+ <param name="Local" value="Wear-Leveling.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Reallocated Sectors">
+ <param name="Local" value="Reallocated Sectors.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Defragmenting">
+ <param name="Local" value="Defragmenting.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Journaling File Systems">
+ <param name="Local" value="Journaling File Systems.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Volume Clones">
+ <param name="Local" value="Volume Clones.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Additional Security Requirements and Precautions">
+ <param name="Local" value="Additional Security Requirements and Precautions.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="How To Back Up Securely">
+ <param name="Local" value="How to Back Up Securely.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Miscellaneous">
+ <param name="Local" value="Miscellaneous.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Using VeraCrypt Without Administrator Privileges">
+ <param name="Local" value="Using VeraCrypt Without Administrator Privileges.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Sharing Over Network">
+ <param name="Local" value="Sharing over Network.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="VeraCrypt Background Task">
+ <param name="Local" value="VeraCrypt Background Task.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Volume Mounted as Removable Medium">
+ <param name="Local" value="Removable Medium Volume.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="VeraCrypt System Files &amp; Application Data">
+ <param name="Local" value="VeraCrypt System Files.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="How To Remove Encryption">
+ <param name="Local" value="Removing Encryption.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Uninstalling VeraCrypt">
+ <param name="Local" value="Uninstalling VeraCrypt.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Digital Signatures">
+ <param name="Local" value="Digital Signatures.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Troubleshooting">
+ <param name="Local" value="Troubleshooting.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Incompatibilities">
+ <param name="Local" value="Incompatibilities.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Known Issues and Limitations">
+ <param name="Local" value="Issues and Limitations.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Frequently Asked Questions">
+ <param name="Local" value="FAQ.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Technical Details">
+ <param name="Local" value="Technical Details.html">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Notation">
+ <param name="Local" value="Notation.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Encryption Scheme">
+ <param name="Local" value="Encryption Scheme.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Modes of Operation">
+ <param name="Local" value="Modes of Operation.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Header Key Derivation, Salt, and Iteration Count">
+ <param name="Local" value="Header Key Derivation.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Random Number Generator">
+ <param name="Local" value="Random Number Generator.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Keyfiles">
+ <param name="Local" value="Keyfiles.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="PIM">
+ <param name="Local" value="Personal Iterations Multiplier (PIM).html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="VeraCrypt Volume Format Specification">
+ <param name="Local" value="VeraCrypt Volume Format Specification.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Compliance with Standards and Specifications">
+ <param name="Local" value="Standard Compliance.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Source Code">
+ <param name="Local" value="Source Code.html">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Contact">
+ <param name="Local" value="Contact.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Legal Information">
+ <param name="Local" value="Legal Information.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Version History">
+ <param name="Local" value="Release Notes.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Acknowledgements">
+ <param name="Local" value="Acknowledgements.html">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="References">
+ <param name="Local" value="References.html">
+ </OBJECT>
+</UL>
+</BODY></HTML>
diff --git a/doc/chm/VeraCrypt.hhk b/doc/chm/VeraCrypt.hhk
new file mode 100644
index 0000000..5d4da5c
--- /dev/null
+++ b/doc/chm/VeraCrypt.hhk
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<UL>
+<LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Table Of Contents">
+ <param name="Local" value="Documentation.html">
+ </OBJECT>
+
+</UL>
+</BODY></HTML>
diff --git a/doc/chm/VeraCrypt.hhp b/doc/chm/VeraCrypt.hhp
new file mode 100644
index 0000000..a6aca8a
--- /dev/null
+++ b/doc/chm/VeraCrypt.hhp
@@ -0,0 +1,174 @@
+[OPTIONS]
+Compatibility=1.1 or later
+Compiled file=VeraCrypt User Guide.chm
+Contents file=VeraCrypt.hhc
+Default topic=Documentation.html
+Display compile progress=No
+Full-text search=Yes
+Index file=VeraCrypt.hhk
+Language=0x409 English (United States)
+Title=VeraCrypt User Guide
+
+[FILES]
+Acknowledgements.html
+Additional Security Requirements and Precautions.html
+AES.html
+arrow_right.gif
+Authenticity and Integrity.html
+Authors.html
+bank_30x30.png
+Beginner's Tutorial.html
+Beginner's Tutorial_Image_001.jpg
+Beginner's Tutorial_Image_002.jpg
+Beginner's Tutorial_Image_003.jpg
+Beginner's Tutorial_Image_004.jpg
+Beginner's Tutorial_Image_005.jpg
+Beginner's Tutorial_Image_007.jpg
+Beginner's Tutorial_Image_008.jpg
+Beginner's Tutorial_Image_009.jpg
+Beginner's Tutorial_Image_010.jpg
+Beginner's Tutorial_Image_011.jpg
+Beginner's Tutorial_Image_012.jpg
+Beginner's Tutorial_Image_013.jpg
+Beginner's Tutorial_Image_014.jpg
+Beginner's Tutorial_Image_015.jpg
+Beginner's Tutorial_Image_016.jpg
+Beginner's Tutorial_Image_017.jpg
+Beginner's Tutorial_Image_018.jpg
+Beginner's Tutorial_Image_019.jpg
+Beginner's Tutorial_Image_020.jpg
+Beginner's Tutorial_Image_021.jpg
+Beginner's Tutorial_Image_022.jpg
+Beginner's Tutorial_Image_023.gif
+Beginner's Tutorial_Image_024.gif
+Beginner's Tutorial_Image_034.png
+Camellia.html
+Cascades.html
+Changing Passwords and Keyfiles.html
+Choosing Passwords and Keyfiles.html
+Command Line Usage.html
+Contact.html
+Contributed Resources.html
+Converting TrueCrypt volumes and partitions.html
+Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpg
+Creating New Volumes.html
+Data Leaks.html
+Default Mount Parameters.html
+Default Mount Parameters_VeraCrypt_password_using_default_parameters.png
+Defragmenting.html
+Digital Signatures.html
+Disclaimers.html
+Documentation.html
+Donation.html
+Donation_donate_CHF.gif
+Donation_donate_Dollars.gif
+Donation_donate_Euros.gif
+Donation_donate_GBP.gif
+Donation_donate_YEN.gif
+Donation_VeraCrypt_Bitcoin.png
+Encryption Algorithms.html
+Encryption Scheme.html
+FAQ.html
+Favorite Volumes.html
+flattr-badge-large.png
+gf2_mul.gif
+Hardware Acceleration.html
+Hash Algorithms.html
+Header Key Derivation.html
+Hibernation File.html
+Hidden Operating System.html
+Hidden Volume.html
+Home_facebook_veracrypt.png
+Home_reddit.png
+Home_tibitDonateButton.png
+Home_utilities-file-archiver-3.png
+Home_VeraCrypt_Default_Mount_Parameters.png
+Home_VeraCrypt_menu_Default_Mount_Parameters.png
+Hot Keys.html
+How to Back Up Securely.html
+Incompatibilities.html
+Introduction.html
+Issues and Limitations.html
+Journaling File Systems.html
+Keyfiles in VeraCrypt.html
+Keyfiles in VeraCrypt_Image_040.gif
+Keyfiles.html
+Kuznyechik.html
+Language Packs.html
+Legal Information.html
+Main Program Window.html
+Malware.html
+Memory Dump Files.html
+Miscellaneous.html
+Modes of Operation.html
+Mounting VeraCrypt Volumes.html
+Multi-User Environment.html
+Notation.html
+Paging File.html
+Parallelization.html
+Personal Iterations Multiplier (PIM).html
+Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png
+Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png
+Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png
+Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png
+Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png
+Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.png
+Physical Security.html
+Pipelining.html
+Plausible Deniability.html
+Portable Mode.html
+Preface.html
+Program Menu.html
+Protection of Hidden Volumes.html
+Protection of Hidden Volumes_Image_027.jpg
+Protection of Hidden Volumes_Image_028.jpg
+Protection of Hidden Volumes_Image_029.jpg
+Protection of Hidden Volumes_Image_030.jpg
+Protection of Hidden Volumes_Image_031.jpg
+Random Number Generator.html
+Reallocated Sectors.html
+References.html
+Release Notes.html
+Removable Medium Volume.html
+Removing Encryption.html
+RIPEMD-160.html
+Security Model.html
+Security Requirements and Precautions.html
+Security Requirements for Hidden Volumes.html
+Security Tokens & Smart Cards.html
+Serpent.html
+SHA-256.html
+SHA-512.html
+Sharing over Network.html
+Source Code.html
+Standard Compliance.html
+Streebog.html
+styles.css
+Supported Operating Systems.html
+Supported Systems for System Encryption.html
+System Encryption.html
+System Favorite Volumes.html
+Technical Details.html
+Trim Operation.html
+Troubleshooting.html
+TrueCrypt Support.html
+TrueCrypt Support_truecrypt_mode_gui.jpg
+twitter_veracrypt.PNG
+Twofish.html
+Unencrypted Data in RAM.html
+Uninstalling VeraCrypt.html
+Using VeraCrypt Without Administrator Privileges.html
+VeraCrypt Background Task.html
+VeraCrypt Hidden Operating System.html
+VeraCrypt License.html
+VeraCrypt Rescue Disk.html
+VeraCrypt System Files.html
+VeraCrypt Volume Format Specification.html
+VeraCrypt Volume.html
+VeraCrypt128x128.png
+Volume Clones.html
+Wear-Leveling.html
+Whirlpool.html
+
+[INFOTYPES]
+
diff --git a/doc/chm/create_chm.bat b/doc/chm/create_chm.bat
new file mode 100644
index 0000000..762371f
--- /dev/null
+++ b/doc/chm/create_chm.bat
@@ -0,0 +1,13 @@
+PATH=%PATH%;C:\Program Files (x86)\HTML Help Workshop
+
+set CHMBUILDPATH=%~dp0
+cd %CHMBUILDPATH%
+
+copy ..\html\* .
+
+hhc VeraCrypt.hhp
+
+del /F /Q *.html *.css *.jpg *.gif *.png
+
+
+
diff --git a/doc/html/AES.html b/doc/html/AES.html
new file mode 100644
index 0000000..38a56a3
--- /dev/null
+++ b/doc/html/AES.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Algorithms.html">Encryption Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="AES.html">AES</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>AES</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The Advanced Encryption Standard (AES) specifies a FIPS-approved cryptographic algorithm (Rijndael, designed by Joan Daemen and Vincent Rijmen, published in 1998) that may be used by US federal departments and agencies to cryptographically protect sensitive
+ information [3]. VeraCrypt uses AES with 14 rounds and a 256-bit key (i.e., AES-256, published in 2001) operating in
+<a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+XTS mode</a> (see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Modes of Operation</a>).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In June 2003, after the NSA (US National Security Agency) conducted a review and analysis of AES, the U.S. CNSS (Committee on National Security Systems) announced in [1] that the design and strength of AES-256 (and AES-192) are sufficient to protect classified
+ information up to the Top Secret level. This is applicable to all U.S. Government Departments or Agencies that are considering the acquisition or use of products incorporating the Advanced Encryption Standard (AES) to satisfy Information Assurance requirements
+ associated with the protection of national security systems and/or national security information [1].</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="Camellia.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Acknowledgements.html b/doc/html/Acknowledgements.html
new file mode 100644
index 0000000..54f5d7d
--- /dev/null
+++ b/doc/html/Acknowledgements.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Acknowledgements.html">Acknowledgements</a>
+</p></div>
+<div class="wikidoc">
+<div>
+<h1>Acknowledgements</h1>
+<p>We would like to thank the following people:</p>
+<p>The TrueCrypt Developers team who have done an amazing job over the course of 10 years. Without their hard work, VeraCrypt would not exist today.</p>
+<p>Paul Le Roux for making his E4M source code available. TrueCrypt 1.0 was derived from E4M and some parts of the E4M source code are still incorporated in the latest version of the TrueCrypt source code.</p>
+<p>Brian Gladman, who wrote the excellent AES, Twofish, and SHA-512 routines.</p>
+<p>Peter Gutmann for his paper on random numbers, and for creating his cryptlib, which was the source of parts of the random number generator source code.</p>
+<p>Wei Dai, who wrote the Serpent and RIPEMD-160 and Whirlpool routines.</p>
+<p>Tom St Denis, the author of LibTomCrypt which includes compact SHA-256 routines.</p>
+<p>Mark Adler and Jean-loup Gailly, who wrote the zlib library.</p>
+<p>The designers of the encryption algorithms, hash algorithms, and the mode of operation:</p>
+<p>Horst Feistel, Don Coppersmith, Walt Tuchmann, Lars Knudsen, Ross Anderson, Eli Biham, Bruce Schneier, David Wagner, John Kelsey, Niels Ferguson, Doug Whiting, Chris Hall, Joan Daemen, Vincent Rijmen, Carlisle Adams, Stafford Tavares, Phillip Rogaway, Hans
+ Dobbertin, Antoon Bosselaers, Bart Preneel, Paulo S. L. M. Barreto.</p>
+<p>Andreas Becker for designing VeraCrypt logo and icons.</p>
+<p>Xavier de Carn&eacute; de Carnavalet who proposed a speed optimization for PBKDF2 that reduced mount/boot time by half.</p>
+<p>kerukuro for cppcrypto library (http://cppcrypto.sourceforge.net/) from which Kuznyechik cipher implementation was taken.</p>
+<p><br>
+Dieter Baron and Thomas Klausner who wrote the libzip library.</p>
+<p><br>
+Jack Lloyd who wrote the SIMD optimized Serpent implementation.</p>
+<p>All the others who have made this project possible, all who have morally supported us, and all who sent us bug reports or suggestions for improvements.</p>
+<p>Thank you very much.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html>
diff --git a/doc/html/Additional Security Requirements and Precautions.html b/doc/html/Additional Security Requirements and Precautions.html
new file mode 100644
index 0000000..c7b5f06
--- /dev/null
+++ b/doc/html/Additional Security Requirements and Precautions.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Additional%20Security%20Requirements%20and%20Precautions.html">Additional Security Requirements and Precautions</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Additional Security Requirements and Precautions</h1>
+<p>In addition to the requirements and precautions described in this chapter (<a href="Security%20Requirements%20and%20Precautions.html"><em>Security Requirements and Precautions</em></a>), you must follow and keep in
+ mind the security requirements, precautions, and limitations listed in the following chapters and sections:</p>
+<ul>
+<li><a href="How%20to%20Back%20Up%20Securely.html"><em><strong>How to Back Up Securely</strong></em></a>
+</li><li><a href="Issues%20and%20Limitations.html"><em><strong>Limitations</strong></em></a>
+</li><li><a href="Security%20Model.html"><em><strong>Security Model</strong></em></a>
+</li><li><a href="Security%20Requirements%20for%20Hidden%20Volumes.html"><em><strong>Security Requirements and Precautions Pertaining to Hidden Volumes</strong></em></a>
+</li><li><a href="Plausible%20Deniability.html"><em><strong>Plausible Deniability</strong></em></a>
+</li></ul>
+<p>See also: <a href="Digital%20Signatures.html">
+<em>Digital Signatures</em></a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Authenticity and Integrity.html b/doc/html/Authenticity and Integrity.html
new file mode 100644
index 0000000..b7075be
--- /dev/null
+++ b/doc/html/Authenticity and Integrity.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Authenticity%20and%20Integrity.html">Authenticity and Integrity</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Authenticity and Integrity</h1>
+<p>VeraCrypt uses encryption to preserve the <em>confidentiality</em> of data it encrypts. VeraCrypt neither preserves nor verifies the integrity or authenticity of data it encrypts or decrypts. Hence, if you allow an adversary to modify data encrypted by VeraCrypt,
+ he can set the value of any 16-byte block of the data to a random value or to a previous value, which he was able to obtain in the past. Note that the adversary cannot choose the value that you will obtain when VeraCrypt decrypts the modified block &mdash;
+ the value will be random &mdash; unless the attacker restores an older version of the encrypted block, which he was able to obtain in the past. It is your responsibility to verify the integrity and authenticity of data encrypted or decrypted by VeraCrypt (for
+ example, by using appropriate third-party software).<br>
+<br>
+See also: <a href="Physical%20Security.html">
+<em>Physical Security</em></a>, <a href="Security%20Model.html">
+<em>Security Model</em></a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Authors.html b/doc/html/Authors.html
new file mode 100644
index 0000000..79b5063
--- /dev/null
+++ b/doc/html/Authors.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Volume.html">VeraCrypt Volume</a>
+</p></div>
+
+<div class="wikidoc">
+<h2>Authors</h2>
+<p>Mounir IDRASSI (<a href="https://www.idrix.fr" target="_blank">IDRIX</a>, <a href="https://fr.linkedin.com/in/idrassi" target="_blank">
+https://fr.linkedin.com/in/idrassi</a>) is the creator and main developer of VeraCrypt. He managed all development and deployment aspects on all supported platforms (Windows,Linux and OSX).</p>
+<p>Alex Kolotnikov (<a href="https://ru.linkedin.com/in/alex-kolotnikov-6625568b" target="_blank">https://ru.linkedin.com/in/alex-kolotnikov-6625568b</a>) is the author of VeraCrypt EFI bootloader. He manages all aspects of EFI support and his strong expertise
+ helps bring new exciting features to VeraCrypt Windows system encryption.</p>
+<p>&nbsp;</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Beginner's Tutorial.html b/doc/html/Beginner's Tutorial.html
new file mode 100644
index 0000000..454f1ed
--- /dev/null
+++ b/doc/html/Beginner's Tutorial.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Beginner's%20Tutorial.html">Beginner's Tutorial</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Beginner's Tutorial</h1>
+<h2>How to Create and Use a VeraCrypt Container</h2>
+<p>This chapter contains step-by-step instructions on how to create, mount, and use a VeraCrypt volume. We strongly recommend that you also read the other sections of this manual, as they contain important information.</p>
+<h4>STEP 1:</h4>
+<p>If you have not done so, download and install VeraCrypt. Then launch VeraCrypt by double-clicking the file VeraCrypt.exe or by clicking the VeraCrypt shortcut in your Windows Start menu.</p>
+<h4>STEP 2:</h4>
+<p><img src="Beginner's Tutorial_Image_001.jpg" alt="" width="579" height="498"><br>
+<br>
+The main VeraCrypt window should appear. Click <strong>Create Volume </strong>(marked with a red rectangle for clarity).</p>
+<h4>STEP 3:</h4>
+<p><img src="Beginner's Tutorial_Image_002.jpg" alt="" width="616" height="410"><br>
+<br>
+The VeraCrypt Volume Creation Wizard window should appear.<br>
+<br>
+In this step you need to choose where you wish the VeraCrypt volume to be created. A VeraCrypt volume can reside in a file, which is also called container, in a partition or drive. In this tutorial, we will choose the first option and create a VeraCrypt volume
+ within a file.<br>
+<br>
+As the option is selected by default, you can just click <strong>Next</strong>.</p>
+<p>Note: In the following steps, the screenshots will show only the right-hand part of the Wizard window.</p>
+<h4>STEP 4:</h4>
+<p><img src="Beginner's Tutorial_Image_003.jpg" alt="" width="371" height="333"><br>
+<br>
+In this step you need to choose whether to create a standard or hidden VeraCrypt volume. In this tutorial, we will choose the former option and create a standard VeraCrypt volume.<br>
+<br>
+As the option is selected by default, you can just click <strong>Next</strong>.</p>
+<h4>STEP 5:</h4>
+<p><img src="Beginner's Tutorial_Image_004.jpg" alt="" width="363" height="336"><br>
+<br>
+In this step you have to specify where you wish the VeraCrypt volume (file container) to be created. Note that a VeraCrypt container is just like any normal file. It can be, for example, moved or deleted as any normal file. It also needs a filename, which you
+ will choose in the next step.<br>
+<br>
+Click <strong>Select File</strong>.<br>
+<br>
+The standard Windows file selector should appear (while the window of the VeraCrypt Volume Creation Wizard remains open in the background).</p>
+<h4>STEP 6:</h4>
+<p><img src="Beginner's Tutorial_Image_005.jpg" alt="" width="720" height="452"><br>
+<br>
+In this tutorial, we will create our VeraCrypt volume in the folder F<em>:\Data\ </em>
+and the filename of the volume (container) will be <em>My Volume </em>(as can be seen in the screenshot above). You may, of course, choose any other filename and location you like (for example, on a USB memory stick). Note that the file
+<em>My Volume </em>does not exist yet &ndash; VeraCrypt will create it.</p>
+<p>IMPORTANT: Note that VeraCrypt will <em>not </em>encrypt any existing files (when creating a VeraCrypt file container). If you select an existing file in this step, it will be overwritten and replaced by the newly created volume (so the overwritten file
+ will be <em>lost</em>, <em>not </em>encrypted). You will be able to encrypt existing files (later on) by moving them to the VeraCrypt volume that we are creating now.*</p>
+<p>Select the desired path (where you wish the container to be created) in the file selector. Type the desired container file name in the
+<strong>Filename </strong>box.<br>
+<br>
+Click <strong>Save</strong>.<br>
+<br>
+The file selector window should disappear.<br>
+<br>
+In the following steps, we will return to the VeraCrypt Volume Creation Wizard.</p>
+<p>* Note that after you copy existing unencrypted files to a VeraCrypt volume, you should securely erase (wipe) the original unencrypted files. There are software tools that can be used for the purpose of secure erasure (many of them are free).</p>
+<h4>STEP 7:</h4>
+<p><img src="Beginner's Tutorial_Image_007.jpg" alt="" width="360" height="335"><br>
+<br>
+In the Volume Creation Wizard window, click <strong>Next</strong>.</p>
+<h4>STEP 8:</h4>
+<p><img src="Beginner's Tutorial_Image_008.jpg" alt="" width="359" height="331"><br>
+<br>
+Here you can choose an encryption algorithm and a hash algorithm for the volume. If you are not sure what to select here, you can use the default settings and click
+<strong>Next </strong>(for more information, see chapters <a href="Encryption Algorithms.html">
+<em>Encryption Algorithms</em></a> and <a href="Hash%20Algorithms.html">
+<em>Hash Algorithms</em></a>).</p>
+<h4>STEP 9:</h4>
+<p><img src="Beginner's Tutorial_Image_009.jpg" alt="" width="369" height="332"><br>
+<br>
+Here we specify that we wish the size of our VeraCrypt container to be 250 megabyte. You may, of course, specify a different size. After you type the desired size in the input field (marked with a red rectangle), click
+<strong>Next</strong>.</p>
+<h4>STEP 10:</h4>
+<p><img src="Beginner's Tutorial_Image_010.jpg" alt="" width="372" height="368"><br>
+<br>
+This is one of the most important steps. Here you have to choose a good volume password. Read carefully the information displayed in the Wizard window about what is considered a good password.<br>
+<br>
+After you choose a good password, type it in the first input field. Then re-type it in the input field below the first one and click
+<strong>Next</strong>.</p>
+<p>Note: The button <strong>Next </strong>will be disabled until passwords in both input fields are the same.</p>
+<h4>STEP 11:</h4>
+<p><img src="Beginner's Tutorial_Image_011.jpg" alt="" width="365" height="368"><br>
+<br>
+Move your mouse as randomly as possible within the Volume Creation Wizard window at least until the randomness indicator becomes green. The longer you move the mouse, the better (moving the mouse for at least 30 seconds is recommended). This significantly increases
+ the cryptographic strength of the encryption keys (which increases security).<br>
+<br>
+Click <strong>Format</strong>.<br>
+<br>
+Volume creation should begin. VeraCrypt will now create a file called <em>My Volume
+</em>in the folder F<em>:\Data\ </em>(as we specified in Step 6). This file will be a VeraCrypt container (it will contain the encrypted VeraCrypt volume). Depending on the size of the volume, the volume creation may take a long time. After it finishes, the
+ following dialog box will appear:<br>
+<br>
+<img src="Beginner's Tutorial_Image_012.jpg" alt="" width="398" height="171"><br>
+<br>
+Click <strong>OK </strong>to close the dialog box.</p>
+<h4>STEP 12:</h4>
+<p><img src="Beginner's Tutorial_Image_013.jpg" alt="" width="361" height="333"><br>
+<br>
+We have just successfully created a VeraCrypt volume (file container). In the VeraCrypt Volume Creation Wizard window, click
+<strong>Exit</strong>.<br>
+<br>
+The Wizard window should disappear.<br>
+<br>
+In the remaining steps, we will mount the volume we just created. We will return to the main VeraCrypt window (which should still be open, but if it is not, repeat Step 1 to launch VeraCrypt and then continue from Step 13.)</p>
+<h4>STEP 13:</h4>
+<p><img src="Beginner's Tutorial_Image_014.jpg" alt="" width="579" height="498"><br>
+<br>
+Select a drive letter from the list (marked with a red rectangle). This will be the drive letter to which the VeraCrypt container will be mounted.<br>
+<br>
+Note: In this tutorial, we chose the drive letter M, but you may of course choose any other available drive letter.</p>
+<h4>STEP 14:</h4>
+<p><img src="Beginner's Tutorial_Image_015.jpg" alt="" width="579" height="498"><br>
+<br>
+Click <strong>Select File</strong>.<br>
+<br>
+The standard file selector window should appear.</p>
+<h4>STEP 15:</h4>
+<p><img src="Beginner's Tutorial_Image_016.jpg" alt="" width="625" height="453"><br>
+<br>
+In the file selector, browse to the container file (which we created in Steps 6-12) and select it. Click
+<strong>Open </strong>(in the file selector window).<br>
+<br>
+The file selector window should disappear.<br>
+<br>
+In the following steps, we will return to the main VeraCrypt window.</p>
+<h4>STEP 16:</h4>
+<p><img src="Beginner's Tutorial_Image_017.jpg" alt="" width="579" height="498"><br>
+<br>
+In the main VeraCrypt window, click <strong>Mount</strong>. Password prompt dialog window should appear.</p>
+<h4>STEP 17:</h4>
+<p><img src="Beginner's Tutorial_Image_018.jpg" alt="" width="499" height="205"><br>
+<br>
+Type the password (which you specified in Step 10) in the password input field (marked with a red rectangle).</p>
+<h4>STEP 18:</h4>
+<p><img src="Beginner's Tutorial_Image_019.jpg" alt="" width="499" height="205"><br>
+<br>
+Select the PRF algorithm that was used during the creation of the volume (SHA-512 is the default PRF used by VeraCrypt). If you don&rsquo;t remember which PRF was used, just leave it set to &ldquo;autodetection&rdquo; but the mounting process will take more
+ time. Click <strong>OK</strong> after entering the password.<br>
+<br>
+VeraCrypt will now attempt to mount the volume. If the password is incorrect (for example, if you typed it incorrectly), VeraCrypt will notify you and you will need to repeat the previous step (type the password again and click
+<strong>OK</strong>). If the password is correct, the volume will be mounted.</p>
+<h4>FINAL STEP:</h4>
+<p><img src="Beginner's Tutorial_Image_020.jpg" alt="" width="579" height="498"><br>
+<br>
+We have just successfully mounted the container as a virtual disk M:<br>
+<br>
+The virtual disk is entirely encrypted (including file names, allocation tables, free space, etc.) and behaves like a real disk. You can save (or copy, move, etc.) files to this virtual disk and they will be encrypted on the fly as they are being written.<br>
+<br>
+If you open a file stored on a VeraCrypt volume, for example, in media player, the file will be automatically decrypted to RAM (memory) on the fly while it is being read.</p>
+<p>Important: Note that when you open a file stored on a VeraCrypt volume (or when you write/copy a file to/from the VeraCrypt volume) you will not be asked to enter the password again. You need to enter the correct password only when mounting the volume.</p>
+<p>You can open the mounted volume, for example, by selecting it on the list as shown in the screenshot above (blue selection) and then double-clicking on the selected item.</p>
+<p>You can also browse to the mounted volume the way you normally browse to any other types of volumes. For example, by opening the &lsquo;<em>Computer</em>&rsquo; (or &lsquo;<em>My Computer</em>&rsquo;) list and double clicking the corresponding drive letter
+ (in this case, it is the letter M).<br>
+<br>
+<img src="Beginner's Tutorial_Image_021.jpg" alt="" width="406" height="264"><br>
+<br>
+You can copy files (or folders) to and from the VeraCrypt volume just as you would copy them to any normal disk (for example, by simple drag-and-drop operations). Files that are being read or copied from the encrypted VeraCrypt volume are automatically decrypted
+ on the fly in RAM (memory). Similarly, files that are being written or copied to the VeraCrypt volume are automatically encrypted on the fly in RAM (right before they are written to the disk).<br>
+<br>
+Note that VeraCrypt never saves any decrypted data to a disk &ndash; it only stores them temporarily in RAM (memory). Even when the volume is mounted, data stored in the volume is still encrypted. When you restart Windows or turn off your computer, the volume
+ will be dismounted and all files stored on it will be inaccessible (and encrypted). Even when power supply is suddenly interrupted (without proper system shut down), all files stored on the volume will be inaccessible (and encrypted). To make them accessible
+ again, you have to mount the volume. To do so, repeat Steps 13-18.</p>
+<p>If you want to close the volume and make files stored on it inaccessible, either restart your operating system or dismount the volume. To do so, follow these steps:<br>
+<br>
+<img src="Beginner's Tutorial_Image_022.jpg" alt="" width="579" height="498"><br>
+<br>
+Select the volume from the list of mounted volumes in the main VeraCrypt window (marked with a red rectangle in the screenshot above) and then click
+<strong>Dismount </strong>(also marked with a red rectangle in the screenshot above). To make files stored on the volume accessible again, you will have to mount the volume. To do so, repeat Steps 13-18.</p>
+<h2>How to Create and Use a VeraCrypt-Encrypted Partition/Device</h2>
+<p>Instead of creating file containers, you can also encrypt physical partitions or drives (i.e., create VeraCrypt device-hosted volumes). To do so, repeat the steps 1-3 but in the step 3 select the second or third option. Then follow the remaining instructions
+ in the wizard. When you create a device-hosted VeraCrypt volume within a <em>non-system
+</em>partition/drive, you can mount it by clicking <em>Auto-Mount Devices </em>in the main VeraCrypt window. For information pertaining to encrypted
+<em>system </em>partition/drives, see the chapter <a href="System%20Encryption.html">
+<em>System Encryption</em></a>.</p>
+<p>Important: <em>We strongly recommend that you also read the other chapters of this manual, as they contain important information that has been omitted in this tutorial for simplicity.</em></p>
+</div>
+</body></html>
diff --git a/doc/html/Beginner's Tutorial_Image_001.jpg b/doc/html/Beginner's Tutorial_Image_001.jpg
new file mode 100644
index 0000000..cfe13f2
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_001.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_002.jpg b/doc/html/Beginner's Tutorial_Image_002.jpg
new file mode 100644
index 0000000..efb1fba
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_002.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_003.jpg b/doc/html/Beginner's Tutorial_Image_003.jpg
new file mode 100644
index 0000000..456a855
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_003.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_004.jpg b/doc/html/Beginner's Tutorial_Image_004.jpg
new file mode 100644
index 0000000..9b83e71
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_004.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_005.jpg b/doc/html/Beginner's Tutorial_Image_005.jpg
new file mode 100644
index 0000000..57d33d5
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_005.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_007.jpg b/doc/html/Beginner's Tutorial_Image_007.jpg
new file mode 100644
index 0000000..2aff5b1
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_007.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_008.jpg b/doc/html/Beginner's Tutorial_Image_008.jpg
new file mode 100644
index 0000000..873a7a1
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_008.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_009.jpg b/doc/html/Beginner's Tutorial_Image_009.jpg
new file mode 100644
index 0000000..7e29bb9
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_009.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_010.jpg b/doc/html/Beginner's Tutorial_Image_010.jpg
new file mode 100644
index 0000000..693562b
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_010.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_011.jpg b/doc/html/Beginner's Tutorial_Image_011.jpg
new file mode 100644
index 0000000..4c6f671
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_011.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_012.jpg b/doc/html/Beginner's Tutorial_Image_012.jpg
new file mode 100644
index 0000000..b24ad6a
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_012.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_013.jpg b/doc/html/Beginner's Tutorial_Image_013.jpg
new file mode 100644
index 0000000..4d76add
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_013.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_014.jpg b/doc/html/Beginner's Tutorial_Image_014.jpg
new file mode 100644
index 0000000..19462cd
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_014.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_015.jpg b/doc/html/Beginner's Tutorial_Image_015.jpg
new file mode 100644
index 0000000..e257bf4
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_015.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_016.jpg b/doc/html/Beginner's Tutorial_Image_016.jpg
new file mode 100644
index 0000000..878027d
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_016.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_017.jpg b/doc/html/Beginner's Tutorial_Image_017.jpg
new file mode 100644
index 0000000..476ffd4
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_017.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_018.jpg b/doc/html/Beginner's Tutorial_Image_018.jpg
new file mode 100644
index 0000000..b025440
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_018.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_019.jpg b/doc/html/Beginner's Tutorial_Image_019.jpg
new file mode 100644
index 0000000..9e379b2
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_019.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_020.jpg b/doc/html/Beginner's Tutorial_Image_020.jpg
new file mode 100644
index 0000000..0b1f02b
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_020.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_021.jpg b/doc/html/Beginner's Tutorial_Image_021.jpg
new file mode 100644
index 0000000..e241f40
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_021.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_022.jpg b/doc/html/Beginner's Tutorial_Image_022.jpg
new file mode 100644
index 0000000..5a36c7e
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_022.jpg
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_023.gif b/doc/html/Beginner's Tutorial_Image_023.gif
new file mode 100644
index 0000000..5786a91
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_023.gif
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_024.gif b/doc/html/Beginner's Tutorial_Image_024.gif
new file mode 100644
index 0000000..7176b9d
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_024.gif
Binary files differ
diff --git a/doc/html/Beginner's Tutorial_Image_034.png b/doc/html/Beginner's Tutorial_Image_034.png
new file mode 100644
index 0000000..34379d6
--- /dev/null
+++ b/doc/html/Beginner's Tutorial_Image_034.png
Binary files differ
diff --git a/doc/html/Camellia.html b/doc/html/Camellia.html
new file mode 100644
index 0000000..e35bae1
--- /dev/null
+++ b/doc/html/Camellia.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Algorithms.html">Encryption Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Camellia.html">Camellia</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Camellia</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Jointly developed by Mitsubishi Electric and NTT of Japan, Camellia is a 128-bit block cipher that was first published on 2000. It has been approved for use by the ISO/IEC, the European Union's NESSIE project and the Japanese CRYPTREC project.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt uses Camellia with 24 rounds and a 256-bit key operating in <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+XTS mode</a> (see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Modes of Operation</a>).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="Kuznyechik.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Cascades.html b/doc/html/Cascades.html
new file mode 100644
index 0000000..baebdef
--- /dev/null
+++ b/doc/html/Cascades.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Algorithms.html">Encryption Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Cascades.html">Cascades of ciphers</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Cascades of ciphers</h1>
+<p>&nbsp;</p>
+<h2>AES-Twofish</h2>
+<p>Two ciphers in a cascade [15, 16] operating in XTS mode (see the section <a href="Modes%20of%20Operation.html">
+<em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Twofish (256-bit key) in XTS mode and then with AES (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that
+ header keys are independent too, even though they are derived from a single password &ndash; see
+<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.</p>
+<h2>AES-Twofish-Serpent</h2>
+<p>Three ciphers in a cascade [15, 16] operating in XTS mode (see the section <a href="Modes%20of%20Operation.html">
+<em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Serpent (256-bit key) in XTS mode, then with Twofish (256-bit key) in XTS mode, and finally with AES (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption
+ keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section
+<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.</p>
+<h2>Serpent-AES</h2>
+<p>Two ciphers in a cascade [15, 16] operating in XTS mode (see the section <a href="Modes%20of%20Operation.html">
+<em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with AES (256-bit key) in XTS mode and then with Serpent (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that
+ header keys are independent too, even though they are derived from a single password &ndash; see the section
+<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.</p>
+<h2>Serpent-Twofish-AES</h2>
+<p>Three ciphers in a cascade [15, 16] operating in XTS mode (see the section <a href="Modes%20of%20Operation.html">
+<em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with AES (256-bit key) in XTS mode, then with Twofish (256- bit key) in XTS mode, and finally with Serpent (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All
+ encryption keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section
+<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.</p>
+<h2>Twofish-Serpent</h2>
+<p>Two ciphers in a cascade [15, 16] operating in XTS mode (see the section <a href="Modes%20of%20Operation.html">
+<em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Serpent (256-bit key) in XTS mode and then with Twofish (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note
+ that header keys are independent too, even though they are derived from a single password &ndash; see the section
+<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.</p>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/Changing Passwords and Keyfiles.html b/doc/html/Changing Passwords and Keyfiles.html
new file mode 100644
index 0000000..d759a25
--- /dev/null
+++ b/doc/html/Changing Passwords and Keyfiles.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Changing%20Passwords%20and%20Keyfiles.html">Changing Passwords and Keyfiles</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Changing Passwords and Keyfiles</h1>
+<p>Note that the volume header (which is encrypted with a header key derived from a password/keyfile) contains the master key (not to be confused with the password) with which the volume is encrypted. If an adversary is allowed to make a copy of your volume
+ before you change the volume password and/or keyfile(s), he may be able to use his copy or fragment (the old header) of the VeraCrypt volume to mount your volume using a compromised password and/or compromised keyfiles that were necessary to mount the volume
+ before you changed the volume password and/or keyfile(s).<br>
+<br>
+If you are not sure whether an adversary knows your password (or has your keyfiles) and whether he has a copy of your volume when you need to change its password and/or keyfiles, it is strongly recommended that you create a new VeraCrypt volume and move files
+ from the old volume to the new volume (the new volume will have a different master key).<br>
+<br>
+Also note that if an adversary knows your password (or has your keyfiles) and has access to your volume, he may be able to retrieve and keep its master key. If he does, he may be able to decrypt your volume even after you change its password and/or keyfile(s)
+ (because the master key does not change when you change the volume password and/or keyfiles). In such a case, create a new VeraCrypt volume and move all files from the old volume to this new one.<br>
+<br>
+The following sections of this chapter contain additional information pertaining to possible security issues connected with changing passwords and/or keyfiles:</p>
+<ul>
+<li><a href="Security%20Requirements%20and%20Precautions.html"><em>Security Requirements and Precautions</em></a>
+</li><li><a href="Journaling%20File%20Systems.html"><em>Journaling File Systems</em></a>
+</li><li><a href="Defragmenting.html"><em>Defragmenting</em></a>
+</li><li><a href="Reallocated%20Sectors.html"><em>Reallocated Sectors</em></a>
+</li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Choosing Passwords and Keyfiles.html b/doc/html/Choosing Passwords and Keyfiles.html
new file mode 100644
index 0000000..89bf5de
--- /dev/null
+++ b/doc/html/Choosing Passwords and Keyfiles.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Choosing%20Passwords%20and%20Keyfiles.html">Choosing Passwords and Keyfiles</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Choosing Passwords and Keyfiles</h1>
+<p>It is very important that you choose a good password. You must avoid choosing one that contains only a single word that can be found in a dictionary (or a combination of such words). It must not contain any names, dates of birth, account numbers, or any
+ other items that could be easy to guess. A good password is a random combination of upper and lower case letters, numbers, and special characters, such as @ ^ = $ * &#43; etc. We strongly recommend choosing a password consisting of more than 20 characters (the
+ longer, the better). Short passwords are easy to crack using brute-force techniques.<br>
+<br>
+To make brute-force attacks on a keyfile infeasible, the size of the keyfile must be at least 30 bytes. If a volume uses multiple keyfiles, then at least one of the keyfiles must be 30 bytes in size or larger. Note that the 30-byte limit assumes a large amount
+ of entropy in the keyfile. If the first 1024 kilobytes of a file contain only a small amount of entropy, it must not be used as a keyfile (regardless of the file size). If you are not sure what entropy means, we recommend that you let VeraCrypt generate a
+ file with random content and that you use it as a keyfile (select <em>Tools -&gt; Keyfile Generator</em>).</p>
+<p>When creating a volume, encrypting a system partition/drive, or changing passwords/keyfiles, you must not allow any third party to choose or modify the password/keyfile(s) before/while the volume is created or the password/keyfiles(s) changed. For example,
+ you must not use any password generators (whether website applications or locally run programs) where you are not sure that they are high-quality and uncontrolled by an attacker, and keyfiles must not be files that you download from the internet or that are
+ accessible to other users of the computer (whether they are administrators or not).</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Command Line Usage.html b/doc/html/Command Line Usage.html
new file mode 100644
index 0000000..d9318b1
--- /dev/null
+++ b/doc/html/Command Line Usage.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Command%20Line%20Usage.html">Command Line Usage</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<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">
+<tbody>
+<tr>
+<td><em>/help</em> or <em>/?</em></td>
+<td>Display command line help.</td>
+</tr>
+<tr>
+<td><em>/truecrypt or /tc</em></td>
+<td>Activate TrueCrypt compatibility mode which enables mounting volumes created with TrueCrypt 6.x and 7.x series.</td>
+</tr>
+<tr>
+<td><em>/hash</em></td>
+<td>It must be followed by a parameter indicating the PRF hash algorithm to use when mounting the volume. Possible values for /hash parameter are: sha256, sha-256, sha512, sha-512, whirlpool, ripemd160 and ripemd-160. When /hash is omitted, VeraCrypt will try
+ all possible PRF algorithms thus lengthening the mount operation time.</td>
+</tr>
+<tr>
+<td id="volume"><em>/volume</em> or <em>/v</em></td>
+<td>
+<p>It must be followed by a parameter indicating the file and path name of a VeraCrypt volume to mount (do not use when dismounting) or the Volume ID of the disk/partition to mount.<br>
+The syntax of the volume ID is <strong>ID:XXXXXX...XX</strong> where the XX part is a 64 hexadecimal characters string that represent the 32-Bytes ID of the desired volume to mount.<br>
+<br>
+To mount a partition/device-hosted volume, use, for example, /v \Device\Harddisk1\Partition3 (to determine the path to a partition/device, run VeraCrypt and click
+<em>Select Device</em>). You can also mount a partition or dynamic volume using its volume name (for example, /v \\?\Volume{5cceb196-48bf-46ab-ad00-70965512253a}\). To determine the volume name use e.g. mountvol.exe. Also note that device paths are case-sensitive.<br>
+<br>
+You can also specify the Volume ID of the partition/device-hosted volume to mount, for example: /v ID:53B9A8D59CC84264004DA8728FC8F3E2EE6C130145ABD3835695C29FD601EDCA. The Volume ID value can be retrieved using the volume properties dialog.</p>
+</td>
+</tr>
+<tr>
+<td><em>/letter</em> or <em>/l</em></td>
+<td>It must be followed by a parameter indicating the driver letter to mount the volume as. When /l is omitted and when /a is used, the first free drive letter is used.</td>
+</tr>
+<tr>
+<td><em>/explore</em> or <em>/e</em></td>
+<td>Open an Explorer window after a volume has been mounted.</td>
+</tr>
+<tr>
+<td><em>/beep</em> or <em>/b</em></td>
+<td>Beep after a volume has been successfully mounted or dismounted.</td>
+</tr>
+<tr>
+<td><em>/auto</em> or <em>/a</em></td>
+<td>If no parameter is specified, automatically mount the volume. If devices is specified as the parameter (e.g., /a devices), auto-mount all currently accessible device/partition-hosted VeraCrypt volumes. If favorites is specified as the parameter, auto-mount
+ favorite volumes. Note that /auto is implicit if /quit and /volume are specified. If you need to prevent the application window from appearing, use /quit.</td>
+</tr>
+<tr>
+<td><em>/dismount</em> or <em>/d</em></td>
+<td>Dismount volume specified by drive letter (e.g., /d x). When no drive letter is specified, dismounts all currently mounted VeraCrypt volumes.</td>
+</tr>
+<tr>
+<td><em>/force</em> or <em>/f</em></td>
+<td>Forces dismount (if the volume to be dismounted contains files being used by the system or an application) and forces mounting in shared mode (i.e., without exclusive access).</td>
+</tr>
+<tr>
+<td><em>/keyfile</em> or <em>/k</em></td>
+<td>It must be followed by a parameter specifying a keyfile or a keyfile search path. For multiple keyfiles, specify e.g.: /k c:\keyfile1.dat /k d:\KeyfileFolder /k c:\kf2 To specify a keyfile stored on a security token or smart card, use the following syntax:
+ token://slot/SLOT_NUMBER/file/FILE_NAME</td>
+</tr>
+<tr id="tryemptypass">
+<td><em>/tryemptypass&nbsp;&nbsp; </em></td>
+<td>ONLY when default keyfile configured or when a keyfile is specified in the command line.<br>
+If it is followed by <strong>y</strong> or <strong>yes</strong> or if no parameter is specified: try to mount using an empty password and the keyfile before displaying password prompt.<br>
+if it is followed by <strong>n </strong>or<strong> no</strong>: don't try to mount using an empty password and the keyfile, and display password prompt right away.</td>
+</tr>
+<tr>
+<td><em>/nowaitdlg</em></td>
+<td>If it is followed by <strong>y</strong> or <strong>yes</strong> or if no parameter is specified: don&rsquo;t display the waiting dialog while performing operations like mounting volumes.<br>
+If it is followed by <strong>n</strong> or <strong>no</strong>: force the display waiting dialog is displayed while performing operations.</td>
+</tr>
+<tr>
+<td><em>/secureDesktop</em></td>
+<td>If it is followed by <strong>y</strong> or <strong>yes</strong> or if no parameter is specified: display password dialog in a dedicated secure desktop to protect against certain types of attacks.<br>
+If it is followed by <strong>n</strong> or <strong>no</strong>: the password dialog is displayed in the normal desktop.</td>
+</tr>
+<tr>
+<td><em>/tokenlib</em></td>
+<td>It must be followed by a parameter indicating the PKCS #11 library to use for security tokens and smart cards. (e.g.: /tokenlib c:\pkcs11lib.dll)</td>
+</tr>
+<tr>
+<td><em>/tokenpin</em></td>
+<td>It must be followed by a parameter indicating the PIN to use in order to authenticate to the security token or smart card (e.g.: /tokenpin 0000). Warning: This method of entering a smart card PIN may be insecure, for example, when an unencrypted command
+ prompt history log is being saved to unencrypted disk.</td>
+</tr>
+<tr>
+<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>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>
+</tr>
+<tr>
+<td><em>/history</em> or <em>/h</em></td>
+<td>If it is followed by <strong>y</strong> or no parameter: enables saving history of mounted volumes; if it is followed by
+<strong>n</strong>: disables saving history of mounted volumes (e.g., /h n).</td>
+</tr>
+<tr>
+<td><em>/wipecache</em> or <em>/w</em></td>
+<td>Wipes any passwords cached in the driver memory.</td>
+</tr>
+<tr>
+<td><em>/password</em> or <em>/p</em></td>
+<td>It must be followed by a parameter indicating the volume password. If the password contains spaces, it must be enclosed in quotation marks (e.g., /p &rdquo;My Password&rdquo;). Use /p &rdquo;&rdquo; to specify an empty password.
+<em>Warning: This method of entering a volume password may be insecure, for example, when an unencrypted command prompt history log is being saved to unencrypted disk.</em></td>
+</tr>
+<tr>
+<td><em>/pim</em></td>
+<td>It must be followed by a positive integer indicating the PIM (Personal Iterations Multiplier) to use for the volume.</td>
+</tr>
+<tr>
+<td><em>/quit</em> or <em>/q</em></td>
+<td>Automatically perform requested actions and exit (main VeraCrypt window will not be displayed). If preferences is specified as the parameter (e.g., /q preferences), then program settings are loaded/saved and they override settings specified on the command
+ line. /q background launches the VeraCrypt Background Task (tray icon) unless it is disabled in the Preferences.</td>
+</tr>
+<tr>
+<td><em>/silent</em> or <em>/s</em></td>
+<td>If /q is specified, suppresses interaction with the user (prompts, error messages, warnings, etc.). If /q is not specified, this option has no effect.</td>
+</tr>
+<tr>
+<td><em>/mountoption</em> or <em>/m</em></td>
+<td>
+<p>It must be followed by a parameter which can have one of the values indicated below.</p>
+<p><strong>ro</strong> or<strong> readonly</strong>: Mount volume as read-only.</p>
+<p><strong>rm</strong> or <strong>removable</strong>: Mount volume as removable medium (see section
+<a href="Removable%20Medium%20Volume.html">
+<em>Volume Mounted as Removable Medium</em></a>).</p>
+<p><strong>ts</strong> or <strong>timestamp</strong>: Do not preserve container modification timestamp.</p>
+<p><strong>sm</strong> or <strong>system</strong>: Without pre-boot authentication, mount a partition that is within the key scope of system encryption (for example, a partition located on the encrypted system drive of another operating system that is not running).
+ Useful e.g. for backup or repair operations. Note: If you supply a password as a parameter of /p, make sure that the password has been typed using the standard US keyboard layout (in contrast, the GUI ensures this automatically). This is required due to the
+ fact that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available.</p>
+<p><strong>bk</strong> or <strong>headerbak</strong>: Mount volume using embedded backup header. Note: All volumes created by VeraCrypt contain an embedded backup header (located at the end of the volume).</p>
+<p><strong>recovery</strong>: Do not verify any checksums stored in the volume header. This option should be used only when the volume header is damaged and the volume cannot be mounted even with the mount option headerbak. Example: /m ro</p>
+<p><strong>label=LabelValue</strong>: Use the given string value <strong>LabelValue</strong> as a label of the mounted volume in Windows Explorer. The maximum length for
+<strong>LabelValue&nbsp;</strong> is 32 characters for NTFS volumes and 11 characters for FAT volumes. For example,
+<em>/m label=MyDrive</em> will set the label of the drive in Explorer to <em>MyDrive</em>.<br>
+<br>
+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>
+</tbody>
+</table>
+<h4>VeraCrypt Format.exe (VeraCrypt Volume Creation Wizard):</h4>
+<table border="1" cellspacing="0" cellpadding="0">
+<tbody>
+<tr>
+<td>/create</td>
+<td>Create a container based volume in command line mode. It must be followed by the file name of the container to be created.</td>
+</tr>
+<tr>
+<td>/size</td>
+<td>
+<p>(Only with /create)<br>
+It must be followed by a parameter indicating the size of the container file that will be created. This parameter is a number indicating the size in Bytes. It can have a suffixe 'K', 'M', 'G' or 'T' to indicate that the value is in Kilobytes, Megabytes, Gigabytes
+ or Terabytes respectively. For example:</p>
+<ul>
+<li>/size 5000000: the container size will be 5000000 bytes </li><li>/size 25K: the container size will be 25 KiloBytes. </li><li>/size 100M: the container size will be 100 MegaBytes. </li><li>/size 2G: the container size will be 2 GigaBytes. </li><li>/size 1T: the container size will be 1 TeraBytes. </li></ul>
+</td>
+</tr>
+<tr>
+<td>&nbsp;/password</td>
+<td>&nbsp;(Only with /create)<br>
+It must be followed by a parameter indicating the password of the container that will be created.</td>
+</tr>
+<tr>
+<td>&nbsp;<em>/hash</em></td>
+<td>(Only with /create)<br>
+It must be followed by a parameter indicating the PRF hash algorithm to use when creating the volume. It has the same syntax as VeraCrypt.exe.</td>
+</tr>
+<tr>
+<td>/encryption</td>
+<td>(Only with /create)<br>
+It must be followed by a parameter indicating the encryption algorithm to use. The default is AES if this switch is not specified. The parameter can have the following values (case insensitive):
+<ul>
+<li>AES </li><li>Serpent </li><li>Twofish </li><li>AES(Twofish) </li><li>AES(Twofish(Serpent)) </li><li>Serpent(AES) </li><li>Serpent(Twofish(AES)) </li><li>Twofish(Serpent) </li></ul>
+</td>
+</tr>
+<tr>
+<td>/filesystem</td>
+<td>(Only with /create)<br>
+It must be followed by a parameter indicating the file system to use for the volume. The parameter can have the following values:
+<ul>
+<li>None: don't use any filesystem </li><li>FAT: format using FAT/FAT32 </li><li>NTFS: format using NTFS. Please note that in this case a UAC prompt will be displayed unless the process is run with full administrative privileges.
+</li></ul>
+</td>
+</tr>
+<tr>
+<td>/dynamic</td>
+<td>(Only with /create)<br>
+It has no parameters and it indicates that the volume will be created as a dynamic volume.</td>
+</tr>
+<tr>
+<td>/force</td>
+<td>(Only with /create)<br>
+It has no parameters and it indicates that overwrite will be forced without requiring user confirmation.</td>
+</tr>
+<tr>
+<td>/silent</td>
+<td>(Only with /create)<br>
+It has no parameters and it indicates that no message box or dialog will be displayed to the user. If there is any error, the operation will fail silently.</td>
+</tr>
+<tr>
+<td><em>/noisocheck</em> or <em>/n</em></td>
+<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>
+</tbody>
+</table>
+<h4>Syntax</h4>
+<p>VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool |ripemd160|ripemd-160}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts}]
+ [/p password] [/pim pimvalue] [/q [background|preferences]] [/s] [/tokenlib path] [/v volume] [/w]</p>
+<p>&quot;VeraCrypt Format.exe&quot; [/n] [/create] [/size number[{K|M|G|T}]] [/p password]&nbsp; [/encryption {AES | Serpent | Twofish | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent)}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|ripemd160|ripemd-160}]
+ [/filesystem {None|FAT|NTFS}] [/dynamic] [/force] [/silent]</p>
+<p>Note that the order in which options are specified does not matter.</p>
+<h4>Examples</h4>
+<p>Mount the volume <em>d:\myvolume</em> as the first free drive letter, using the password prompt (the main program window will not be displayed):</p>
+<p>veracrypt /q /v d:\myvolume</p>
+<p>Dismount a volume mounted as the drive letter <em>X</em> (the main program window will not be displayed):</p>
+<p>veracrypt /q /d x</p>
+<p>Mount a volume called <em>myvolume.tc</em> using the password <em>MyPassword</em>, as the drive letter
+<em>X</em>. VeraCrypt will open an explorer window and beep; mounting will be automatic:</p>
+<p>veracrypt /v myvolume.tc /l x /a /p MyPassword /e /b</p>
+<p>Create a 10 MB file container using the password <em>test</em> and formatted using FAT:</p>
+<p><code>&quot;C:\Program Files\VeraCrypt\VeraCrypt Format.exe&quot; /create c:\Data\test.hc /password test /hash sha512 /encryption serpent /filesystem FAT /size 10M /force</code></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Contact.html b/doc/html/Contact.html
new file mode 100644
index 0000000..5e114af
--- /dev/null
+++ b/doc/html/Contact.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Contact.html">Contact</a>
+</p></div>
+
+<div class="wikidoc">
+<h1><strong style="text-align:left">Contact us</strong></h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You can contact us by sending a message to veracrypt-contact [at] lists dot sourceforge.net .<br>
+You can also use the address veracrypt [at] idrix dot fr, which is associated with VeraCrypt Team PGP key.<em style="text-align:left"><br>
+</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To contact IDRIX directly, you can use <a href="https://www.idrix.fr/Root/mos/Contact_Us/Itemid,3" target="_blank">
+our contact form</a>.</div>
+</div>
+<div>
+<p>
+We are also present on social media:<br>
+<a title="VeraCrypt on Twitter" href="https://twitter.com/VeraCrypt_IDRIX" target="_blank"><img src="twitter_veracrypt.PNG" alt="VeraCrypt on Twitter" width="168" height="28"></a>&nbsp;&nbsp;
+<a title="VeraCrypt on Facebook" href="https://www.facebook.com/veracrypt" target="_blank"><img src="Home_facebook_veracrypt.png" alt="VeraCrypt on Facebook" width="61" height="28"></a>&nbsp;&nbsp;
+<a title="VeraCrypt on Reddit" href="https://www.reddit.com/r/VeraCrypt/" target="_blank"><img src="Home_reddit.png" alt="VeraCrypt on Reddit" width="94" height="28"></a>
+</p>
+</div>
+</body></html>
diff --git a/doc/html/Contributed Resources.html b/doc/html/Contributed Resources.html
new file mode 100644
index 0000000..97045ca
--- /dev/null
+++ b/doc/html/Contributed Resources.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a class="active" href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div class="wikidoc">
+<p>Here you'll find useful resources contributed by VeraCrypt users.</p>
+<h3>Third party binaries:</h3>
+<ul>
+<li>Linux Ubuntu <strong>PPA</strong> provided by user&nbsp;<a href="https://unit193.net/" target="_blank">&quot;Unit 193&quot;</a> (build done by Launchpad):
+<ul>
+<li><a href="https://launchpad.net/~unit193/&#43;archive/ubuntu/encryption" target="_blank">https://launchpad.net/~unit193/&#43;archive/ubuntu/encryption</a>
+</li></ul>
+</li><li>Linux <strong>Armv7</strong> GUI/console 32-bit build on ChromeBook by user <a href="https://www.codeplex.com/site/users/view/haggster">
+haggster</a>:
+<ul>
+<li><a href="http://sourceforge.net/projects/veracrypt/files/Contributions/ARM%20Linux/veracrypt-1.0f-1-setup-arm.tar.bz2/download" target="_blank">veracrypt-1.0f-1-setup-arm.tar.bz2</a>
+</li></ul>
+</li></ul>
+<h3>Tutorials:</h3>
+<ul>
+<li><a href="http://schneckchen.in/veracrypt-anleitung-zum-daten-verschluesseln/" target="_blank">http://schneckchen.in/veracrypt-anleitung-zum-daten-verschluesseln/</a>:
+<ul>
+<li>German tutorial on VeraCrypt by Andreas Heinz. </li></ul>
+</li><li><a href="http://howto.wared.fr/raspberry-pi-arch-linux-arm-installation-veracrypt/" target="_blank">http://howto.wared.fr/raspberry-pi-arch-linux-arm-installation-veracrypt/</a>:
+<ul>
+<li>French HowTo for building VeraCrypt on Raspberry Pi Arch Linux by <a href="http://howto.wared.fr/author/wared/" target="_blank">
+Edouard WATTECAMPS</a>. </li></ul>
+</li><li><a href="http://sourceforge.net/projects/veracrypt/files/Contributions/clonezilla_using_veracrypt_ver_1.1.doc/download" target="_blank">clonezilla_using_veracrypt_ver_1.1.doc</a>:
+<ul>
+<li>Tutorial on using VeraCrypt in CloneZilla for accessing encrypted backups. By
+<a href="https://www.codeplex.com/site/users/view/pjc123" target="_blank">pjc123</a>.
+</li></ul>
+</li><li><a href="https://bohdan-danishevsky.blogspot.fr/2016/11/raspberry-pi-raspbian-installing.html" target="_blank">https://bohdan-danishevsky.blogspot.fr/2016/11/raspberry-pi-raspbian-installing.html</a>
+<ul>
+<li>Tutorial on installing and using official VeraCrypt binaries on Raspberry Pi (Raspbian) by Bohdan Danishevsky.
+</li></ul>
+</li></ul>
+<h3>Miscellaneous:</h3>
+<ul>
+<li><a href="http://sourceforge.net/projects/veracrypt/files/Contributions/vcsteg2.py/download" target="_blank">vcsteg2.py</a>&nbsp;: a Python script that tries to hide a VeraCrypt volume inside a video file (Steganography)
+</li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Converting TrueCrypt volumes and partitions.html b/doc/html/Converting TrueCrypt volumes and partitions.html
new file mode 100644
index 0000000..324c8c5
--- /dev/null
+++ b/doc/html/Converting TrueCrypt volumes and partitions.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Converting%20TrueCrypt%20volumes%20and%20partitions.html">Converting TrueCrypt volumes and partitions</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Converting TrueCrypt volumes and partitions</h1>
+<p>Starting from version 1.0f, TrueCrypt volumes and <strong>non-system</strong> partitions can be converted to VeraCrypt format using any of the following actions:</p>
+<ul>
+<li>Change Volume Password </li><li>Set Header Key Derivation Algorithm </li><li>Add/Remove key files </li><li>Remove all key files </li></ul>
+<p>&ldquo;TrueCrypt Mode&rdquo; must be checked in the dialog as show below:</p>
+<p>&nbsp;<img src="Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpg" alt="" width="511" height="436"></p>
+<p><strong>Note: </strong>Converting system partitions encrypted with TrueCrypt is not supported.</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpg b/doc/html/Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpg
new file mode 100644
index 0000000..12119bf
--- /dev/null
+++ b/doc/html/Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpg
Binary files differ
diff --git a/doc/html/Creating New Volumes.html b/doc/html/Creating New Volumes.html
new file mode 100644
index 0000000..9dc7ef6
--- /dev/null
+++ b/doc/html/Creating New Volumes.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Volume.html">VeraCrypt Volume</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Creating%20New%20Volumes.html">Creating New Volumes</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Creating a New VeraCrypt Volume</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>To create a new VeraCrypt file-hosted volume or to encrypt a partition/device (requires administrator privileges), click on &lsquo;Create Volume&rsquo; in the main program window. VeraCrypt Volume Creation Wizard should appear. As soon as the Wizard appears,
+ it starts collecting data that will be used in generating the master key, secondary key (XTS mode), and salt, for the new volume. The collected data, which should be as random as possible, include your mouse movements, key presses, and other values obtained
+ from the system (for more information, please see the section <a href="Random%20Number%20Generator.html">
+<em>Random Number Generator</em></a>). The Wizard provides help and information necessary to successfully create a new VeraCrypt volume. However, several items deserve further explanation:</p>
+<h3>Hash Algorithm</h3>
+<p>Allows you to select which hash algorithm VeraCrypt will use. The selected hash algorithm is used by the random number generator (as a pseudorandom mixing function), which generates the master key, secondary key (XTS mode), and salt (for more information,
+ please see the section <a href="Random%20Number%20Generator.html">
+<em>Random Number Generator</em></a>). It is also used in deriving the new volume header key and secondary header key (see the section
+<a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a>).<br>
+<br>
+For information about the implemented hash algorithms, see the chapter <a href="Hash%20Algorithms.html">
+<em>Hash Algorithms.</em></a><br>
+<br>
+Note that the output of a hash function is <em>never </em>used directly as an encryption key. For more information, please refer to the chapter
+<a href="Technical%20Details.html"><em>Technical Details</em></a>.</p>
+<h3>Encryption Algorithm</h3>
+<p>This allows you to select the encryption algorithm with which your new volume will be encrypted. Note that the encryption algorithm cannot be changed after the volume is created. For more information, please see the chapter
+<a href="Encryption%20Algorithms.html"><em>Encryption Algorithms</em></a>.</p>
+<h3 id="QuickFormat">Quick Format</h3>
+<p>If unchecked, each sector of the new volume will be formatted. This means that the new volume will be
+<em>entirely </em>filled with random data. Quick format is much faster but may be less secure because until the whole volume has been filled with files, it may be possible to tell how much data it contains (if the space was not filled with random data beforehand).
+ If you are not sure whether to enable or disable Quick Format, we recommend that you leave this option unchecked. Note that Quick Format can only be enabled when encrypting partitions/devices.</p>
+<p>Important: When encrypting a partition/device within which you intend to create a hidden volume afterwards, leave this option unchecked.</p>
+<h3 id="dynamic">Dynamic</h3>
+<p>Dynamic VeraCrypt container is a pre-allocated NTFS sparse file whose physical size (actual disk space used) grows as new data is added to it. Note that the physical size of the container (actual disk space that the container uses) will not decrease when
+ files are deleted on the VeraCrypt volume. The physical size of the container can only
+<em>increase </em>up to the maximum value that is specified by the user during the volume creation process. After the maximum specified size is reached, the physical size of the container will remain constant.<br>
+<br>
+Note that sparse files can only be created in the NTFS file system. If you are creating a container in the FAT file system, the option
+<em>Dynamic </em>will be disabled (&ldquo;grayed out&rdquo;).<br>
+<br>
+Note that the size of a dynamic (sparse-file-hosted) VeraCrypt volume reported by Windows and by VeraCrypt will always be equal to its maximum size (which you specify when creating the volume). To find out current physical size of the container (actual disk
+ space it uses), right-click the container file (in a Windows Explorer window, not in VeraCrypt), then select
+<em>Properties </em>and see the Size on disk value.</p>
+<p>WARNING: Performance of dynamic (sparse-file-hosted) VeraCrypt volumes is significantly worse than performance of regular volumes. Dynamic (sparse-file-hosted) VeraCrypt volumes are also less secure, because it is possible to tell which volume sectors are
+ unused. Furthermore, if data is written to a dynamic volume when there is not enough free space in its host file system, the encrypted file system may get corrupted.</p>
+<h3>Cluster Size</h3>
+<p>Cluster is an allocation unit. For example, one cluster is allocated on a FAT file system for a one- byte file. When the file grows beyond the cluster boundary, another cluster is allocated. Theoretically, this means that the bigger the cluster size, the
+ more disk space is wasted; however, the better the performance. If you do not know which value to use, use the default.</p>
+<h3>VeraCrypt Volumes on CDs and DVDs</h3>
+<p>If you want a VeraCrypt volume to be stored on a CD or a DVD, first create a file-hosted VeraCrypt container on a hard drive and then burn it onto a CD/DVD using any CD/DVD burning software (or, under Windows XP or later, using the CD burning tool provided
+ with the operating system). Remember that if you need to mount a VeraCrypt volume that is stored on a read-only medium (such as a CD/DVD) under Windows 2000, you must format the VeraCrypt volume as FAT. The reason is that Windows 2000 cannot mount NTFS file
+ system on read-only media (Windows XP and later versions of Windows can).</p>
+<h3>Hardware/Software RAID, Windows Dynamic Volumes</h3>
+<p>VeraCrypt supports hardware/software RAID as well as Windows dynamic volumes.</p>
+<p>Windows Vista or later: Dynamic volumes are displayed in the &lsquo;Select Device&rsquo; dialog window as \Device\HarddiskVolumeN.</p>
+<p>Windows XP/2000/2003: If you intend to format a Windows dynamic volume as a VeraCrypt volume, keep in mind that after you create the Windows dynamic volume (using the Windows Disk Management tool), you must restart the operating system in order for the volume
+ to be available/displayed in the &lsquo;Select Device&rsquo; dialog window of the VeraCrypt Volume Creation Wizard. Also note that, in the &lsquo;Select Device&rsquo; dialog window, a Windows dynamic volume is not displayed as a single device (item). Instead,
+ all volumes that the Windows dynamic volume consists of are displayed and you can select any of them in order to format the entire Windows dynamic volume.</p>
+<h3>Additional Notes on Volume Creation</h3>
+<p>After you click the &lsquo;Format&rsquo; button in the Volume Creation Wizard window (the last step), there will be a short delay while your system is being polled for additional random data. Afterwards, the master key, header key, secondary key (XTS mode),
+ and salt, for the new volume will be generated, and the master key and header key contents will be displayed.<br>
+<br>
+For extra security, the portions of the randomness pool, master key, and header key can be prevented from being displayed by unchecking the checkbox in the upper right corner of the corresponding field:<br>
+<br>
+<img src="Beginner's Tutorial_Image_023.gif" alt="" width="338" height="51"><br>
+<br>
+Note that only the first 128 bits of the pool/keys are displayed (not the entire contents).<br>
+<br>
+You can create FAT (whether it will be FAT12, FAT16, or FAT32, is automatically determined from the number of clusters) or NTFS volumes (however, NTFS volumes can only be created by users with administrator privileges). Mounted VeraCrypt volumes can be reformatted
+ as FAT12, FAT16, FAT32, or NTFS anytime. They behave as standard disk devices so you can right-click the drive letter of the mounted VeraCrypt volume (for example in the &lsquo;<em>Computer</em>&rsquo; or &lsquo;<em>My Computer</em>&rsquo; list) and select
+ &lsquo;Format&rsquo;.<br>
+<br>
+For more information about creating VeraCrypt volumes, see also the section <a href="Hidden%20Volume.html">
+<em>Hidden Volume</em></a>.</p>
+<p>&nbsp;</p>
+<p><a href="Favorite%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div>
+
+</body></html>
diff --git a/doc/html/Data Leaks.html b/doc/html/Data Leaks.html
new file mode 100644
index 0000000..ee37fd6
--- /dev/null
+++ b/doc/html/Data Leaks.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Data%20Leaks.html">Data Leaks</a>
+</p></div>
+
+<div class="wikidoc">
+<h2>Data Leaks</h2>
+<p>When a VeraCrypt volume is mounted, the operating system and third-party applications may write to unencrypted volumes (typically, to the unencrypted system volume) unencrypted information about the data stored in the VeraCrypt volume (e.g. filenames and
+ locations of recently accessed files, databases created by file indexing tools, etc.), or the data itself in an unencrypted form (temporary files, etc.), or unencrypted information about the filesystem residing in the VeraCrypt volume. Note that Windows automatically
+ records large amounts of potentially sensitive data, such as the names and locations of files you open, applications you run, etc.</p>
+<p>Also, starting from Windows 8, every time a VeraCrypt volume that is formatted using NTFS is mounted, an Event 98 is written for the system Events Log and it will contain the device name (\\device\VeraCryptVolumeXX) of the volume. This event log &quot;feature&quot;
+ was introduced in Windows 8 as part of newly introduced NTFS health checks as explained
+<a href="https://blogs.msdn.microsoft.com/b8/2012/05/09/redesigning-chkdsk-and-the-new-ntfs-health-model/" target="_blank">
+here</a>. To avoid this leak, the VeraCrypt volume must be mounted <a href="Removable%20Medium%20Volume.html">
+as a removable medium</a>. Big thanks to Liran Elharar for discovering this leak and its workaround.<br>
+<br>
+In order to prevent data leaks, you must follow these steps (alternative steps may exist):</p>
+<ul>
+<li>If you do <em>not</em> need plausible deniability:
+<ul>
+<li>Encrypt the system partition/drive (for information on how to do so, see the chapter
+<a href="System%20Encryption.html"><em>System Encryption</em></a>) and ensure that only encrypted or read-only filesystems are mounted during each session in which you work with sensitive data.<br>
+<br>
+or, </li><li>If you cannot do the above, download or create a &quot;live CD&quot; version of your operating system (i.e. a &quot;live&quot; system entirely stored on and booted from a CD/DVD) that ensures that any data written to the system volume is written to a RAM disk. When you need
+ to work with sensitive data, boot such a live CD/DVD and ensure that only encrypted and/or read-only filesystems are mounted during the session.
+</li></ul>
+</li><li>If you need plausible deniability:
+<ul>
+<li>Create a hidden operating system. VeraCrypt will provide automatic data leak protection. For more information, see the section
+<a href="Hidden%20Operating%20System.html">
+<em>Hidden Operating System</em></a>.<br>
+<br>
+or, </li><li>If you cannot do the above, download or create a &quot;live CD&quot; version of your operating system (i.e. a &quot;live&quot; system entirely stored on and booted from a CD/DVD) that ensures that any data written to the system volume is written to a RAM disk. When you need
+ to work with sensitive data, boot such a live CD/DVD. If you use hidden volumes, follow the security requirements and precautions listed in the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html">
+<em>Security Requirements and Precautions Pertaining to Hidden Volumes</em></a>. If you do not use hidden volumes, ensure that only non-system partition-hosted VeraCrypt volumes and/or read-only filesystems are mounted during the session.
+</li></ul>
+</li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Default Mount Parameters.html b/doc/html/Default Mount Parameters.html
new file mode 100644
index 0000000..899c428
--- /dev/null
+++ b/doc/html/Default Mount Parameters.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Default%20Mount%20Parameters.html">Default Mount Parameters</a>
+</p></div>
+
+<div class="wikidoc">
+<h2>Default Mount Parameters</h2>
+<p>Starting from version 1.0f-2, it is possible to specify the PRF algorithm and the TrueCrypt mode that will be selected by default in the password dialog.</p>
+<p>As show below, select the entry &quot;Default Mount Parameters&quot; under the menu &quot;Settings&quot;:</p>
+<p><img src="Home_VeraCrypt_menu_Default_Mount_Parameters.png" alt="Menu Default Mount Parameters" width="241" height="254"></p>
+<p>&nbsp;</p>
+<p>The following dialog will be displayed:</p>
+<p><img src="Home_VeraCrypt_Default_Mount_Parameters.png" alt="Default Mount Parameters Dialog" width="267" height="144"></p>
+<p>Make your modifications and then click OK.</p>
+<p>The chosen values are then written to VeraCrypt main configuration file (Configuration.xml) making them persistent.</p>
+<p>All subsequent password request dialogs will use the default values chosen previously. For example, if in the Default Mount Parameters dialog you check TrueCrypt Mode and you select SHA-512 as a PRF, then subsequent password dialogs will look like:<br>
+<img src="Default Mount Parameters_VeraCrypt_password_using_default_parameters.png" alt="Mount Password Dialog using default values" width="499" height="205"></p>
+<p>&nbsp;</p>
+<p><strong>Note:</strong> The default mount parameters can be overridden by the&nbsp;<a href="Command%20Line%20Usage.html">Command Line</a> switches
+<strong>/tc</strong> and <strong>/hash</strong> which always take precedence.</p>
+<p>&nbsp;</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Default Mount Parameters_VeraCrypt_password_using_default_parameters.png b/doc/html/Default Mount Parameters_VeraCrypt_password_using_default_parameters.png
new file mode 100644
index 0000000..0c349d0
--- /dev/null
+++ b/doc/html/Default Mount Parameters_VeraCrypt_password_using_default_parameters.png
Binary files differ
diff --git a/doc/html/Defragmenting.html b/doc/html/Defragmenting.html
new file mode 100644
index 0000000..c7c1653
--- /dev/null
+++ b/doc/html/Defragmenting.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Defragmenting.html">Defragmenting</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Defragmenting</h1>
+<p>When you (or the operating system) defragment the file system in which a file-hosted VeraCrypt container is stored, a copy of the VeraCrypt container (or of its fragment) may remain in the free space on the host volume (in the defragmented file system).
+ This may have various security implications. For example, if you change the volume password/keyfile(s) afterwards, and an adversary finds the old copy or fragment (the old header) of the VeraCrypt volume, he might use it to mount the volume using an old compromised
+ password (and/or using compromised keyfiles that were necessary to mount the volume before the volume header was re-encrypted). To prevent this and other possible security issues (such as those mentioned in the section
+<a href="Volume%20Clones.html"><em>Volume Clones</em></a>), do one of the following:</p>
+<ul>
+<li>Use a partition/device-hosted VeraCrypt volume instead of file-hosted. </li><li><em>Securely</em> erase free space on the host volume (in the defragmented file system) after defragmenting. On Windows, this can be done using the Microsoft free utility
+<code>SDelete</code> (<a href="https://technet.microsoft.com/en-us/sysinternals/bb897443.aspx" rel="nofollow">https://technet.microsoft.com/en-us/sysinternals/bb897443.aspx</a>). On Linux, the
+<code>shred</code> utility from GNU coreutils package can be used for this purpose.&nbsp;
+</li><li>Do not defragment file systems in which you store VeraCrypt volumes. </li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Digital Signatures.html b/doc/html/Digital Signatures.html
new file mode 100644
index 0000000..17717b4
--- /dev/null
+++ b/doc/html/Digital Signatures.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Digital%20Signatures.html">Digital Signatures</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Digital Signatures</h1>
+<h3>Why Verify Digital Signatures</h3>
+<p>It might happen that a VeraCrypt installation package you download from our server was created or modified by an attacker. For example, the attacker could exploit a vulnerability in the server software we use and alter the installation packages stored on
+ the server, or he/she could alter any of the files en route to you.<br>
+<br>
+Therefore, you should always verify the integrity and authenticity of each VeraCrypt distribution package you download or otherwise obtain from any source. In other words, you should always make sure that the file was created by us and it was not altered by
+ an attacker. One way to do so is to verify so-called digital signature(s) of the file.</p>
+<h3>Types of Digital Signatures We Use</h3>
+<p>We currently use two types of digital signatures:</p>
+<ul>
+<li><strong>PGP</strong> signatures (available for all binary and source code packages for all supported systems).
+</li><li><strong>X.509</strong> signatures (available for binary packages for Windows).
+</li></ul>
+<h3>Advantages of X.509 Signatures</h3>
+<p>X.509 signatures have the following advantages, in comparison to PGP signatures:</p>
+<ul>
+<li>It is much easier to verify that the key that signed the file is really ours (not attacker&rsquo;s).
+</li><li>You do not have to download or install any extra software to verify an X.509 signature (see below).
+</li><li>You do not have to download and import our public key (it is embedded in the signed file).
+</li><li>You do not have to download any separate signature file (the signature is embedded in the signed file).
+</li></ul>
+<h3>Advantages of PGP Signatures</h3>
+<p>PGP signatures have the following advantages, in comparison to X.509 signatures:</p>
+<ul>
+<li>They do not depend on any certificate authority (which might be e.g. infiltrated or controlled by an adversary, or be untrustworthy for other reasons).
+</li></ul>
+<h3>How to Verify X.509 Signatures</h3>
+<p>Please note that X.509 signatures are currently available only for the VeraCrypt self-extracting installation packages for Windows. An X.509 digital signature is embedded in each of those files along with the digital certificate of the VeraCrypt Foundation
+ issued by a public certification authority. To verify the integrity and authenticity of a self-extracting installation package for Windows, follow these steps:</p>
+<ol>
+<li>Download the VeraCrypt self-extracting installation package. </li><li>In the Windows Explorer, click the downloaded file (&lsquo;<em>VeraCrypt Setup.exe</em>&rsquo;) with the right mouse button and select &lsquo;<em>Properties</em>&rsquo; from the context menu.
+</li><li>In the <em>Properties</em> dialog window, select the &lsquo;<em>Digital Signatures</em>&rsquo; tab.
+</li><li>On the &lsquo;<em>Digital Signatures</em>&rsquo; tab, in the &lsquo;<em>Signature list</em>&rsquo;, double click the line saying &quot;<em>IDRIX</em>&quot; or
+<em>&quot;IDRIX SARL&quot;</em>. </li><li>The &lsquo;<em>Digital Signature Details</em>&rsquo; dialog window should appear now. If you see the following sentence at the top of the dialog window, then the integrity and authenticity of the package have been successfully verified:<br>
+<br>
+&quot;<em>This digital signature is OK.</em>&quot;<br>
+<br>
+If you do not see the above sentence, the file is very likely corrupted. Note: On some obsolete versions of Windows, some of the necessary certificates are missing, which causes the signature verification to fail.
+</li></ol>
+<h3 id="VerifyPGPSignature">How to Verify PGP Signatures</h3>
+<p>To verify a PGP signature, follow these steps:</p>
+<ol>
+<li>Install any public-key encryption software that supports PGP signatures. For Windows, you can download
+<a href="http://www.gpg4win.org/" target="_blank">Gpg4win</a>. For more information, you can visit
+<a href="https://www.gnupg.org/">https://www.gnupg.org/</a>. </li><li>Create a private key (for information on how to do so, please see the documentation for the public-key encryption software).
+</li><li>Download our PGP public key from <strong>IDRIX</strong> website (<a href="https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc" target="_blank">https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc</a>) or from a trusted public key repository
+ (ID=0x54DDD393), and import the downloaded key to your keyring (for information on how to do so, please see the documentation for the public-key encryption software). Please check that its fingerprint is
+<strong>993B7D7E8E413809828F0F29EB559C7C54DDD393</strong>. </li><li>Sign the imported key with your private key to mark it as trusted (for information on how to do so, please see the documentation for the public-key encryption software).<br>
+<br>
+Note: If you skip this step and attempt to verify any of our PGP signatures, you will receive an error message stating that the signing key is invalid.
+</li><li>Download the digital signature by downloading the <em>PGP Signature</em> of the file you want to verify (on the
+<a href="Downloads.html">Downloads page</a>).
+</li><li>Verify the downloaded signature (for information on how to do so, please see the documentation for the public-key encryption software).
+</li></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>993B7D7E8E413809828F0F29EB559C7C54DDD393</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><li>Verify the signature of the Linux setup archive (here for version 1.0e): <strong>
+gpg --verify veracrypt-1.0e-setup.tar.bz2.sig veracrypt-1.0e-setup.tar.bz2</strong>
+</li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Disclaimers.html b/doc/html/Disclaimers.html
new file mode 100644
index 0000000..e5085d0
--- /dev/null
+++ b/doc/html/Disclaimers.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Disclaimers.html">Disclaimers</a>
+</p></div>
+
+<div class="wikidoc">
+<h2>Disclaimer of Warranty</h2>
+<div align="justify" style="margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+THE CONTENT OF THIS WEBSITE (AND OF ANY ASSOCIATED WEBSITES/SERVERS) IS PROVIDED &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY. THE CONTENT OF THIS WEBSITE (AND OF ANY ASSOCIATED WEBSITES) MAY BE INACCURATE, INCORRECT, INVALID,
+ UNTRUE, FALSE, INCOMPLETE AND/OR MISLEADING. THE ENTIRE RISK AS TO THE QUALITY, CORRECTNESS, ACCURACY, OR COMPLETENESS OF THE CONTENT OF THIS WEBSITE (AND OF ANY ASSOCIATED WEBSITES) IS WITH YOU. THE AUTHOR(S), OWNER(S), PUBLISHER(S), AND ADMINISTRATOR(S)
+ OF THIS WEBSITE (AND ASSOCIATED WEBSITES/SERVERS), AND APPLICABLE INTELLECTUAL-PROPERTY OWNER(S) DISCLAIM ANY AND ALL WARRANTIES OF ANY KIND.</div>
+<h2>Disclaimer of Liability</h2>
+<div align="justify" style="margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+THE AUTHOR(S), OWNER(S), PUBLISHER(S), AND ADMINISTRATOR(S) OF THIS WEBSITE (AND ASSOCIATED WEBSITES/SERVERS), AND APPLICABLE INTELLECTUAL-PROPERTY OWNER(S) DISCLAIM ANY AND ALL LIABILITY AND IN NO EVENT WILL ANY OF THOSE PARTIES BE LIABLE TO YOU OR TO ANY
+ OTHER PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ANY LOSSES SUSTAINED BY YOU OR THIRD PARTIES, PROCUREMENT OF SUBSTITUTE
+ SERVICES, OR BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE, ARISING OUT OF ANY USE OF THIS WEBSITE (OR ASSOCIATED WEBSITES/SERVERS) OR THE CONTENT THEREOF OR OF ANY THIRD-PARTY WEBSITE LINKED IN ANY
+ WAY FROM THIS WEBSITE (OR FROM ASSOCIATED WEBSITES), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES) ARE/WERE PREDICTABLE OR KNOWN TO ANY AUTHOR, OWNER, PUBLISHER, ADMINISTRATOR, OR ANY OTHER PARTY.</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Documentation.html b/doc/html/Documentation.html
new file mode 100644
index 0000000..4ea96b4
--- /dev/null
+++ b/doc/html/Documentation.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div class="wikidoc">
+<h1>Table of Contents</h1>
+<p><em style="text-align:left">This documentation is not guaranteed to be error-free and is provided &quot;as is&quot; without warranty of any kind. For more information, see
+<a href="Disclaimers.html">Disclaimers</a>.</em></p>
+<ul>
+<li><a title="Preface" href="Preface.html"><strong>Preface</strong></a>
+</li><li><strong><a href="Introduction.html">Introduction</a></strong>
+</li><li><strong><a href="Beginner%27s%20Tutorial.html">Beginner's Tutorial</a></strong>
+</li><li><strong><strong><a href="VeraCrypt%20Volume.html">VeraCrypt Volume</a></strong></strong>
+<ul>
+<li><a href="Creating%20New%20Volumes.html">Creating a New VeraCrypt Volume</a>
+</li><li><a href="Favorite%20Volumes.html">Favorite Volumes</a>
+</li><li><a href="System%20Favorite%20Volumes.html">System Favorite Volumes</a>
+</li></ul>
+</li><li><strong><a href="System%20Encryption.html">System Encryption</a></strong>
+<ul>
+<li><a href="Hidden%20Operating%20System.html">Hidden Operating System</a>
+</li><li><a href="Supported%20Systems%20for%20System%20Encryption.html">Operating Systems Supported for System Encryption</a>
+</li><li><a href="VeraCrypt%20Rescue%20Disk.html">VeraCrypt Rescue Disk</a>
+</li></ul>
+</li><li><strong><a href="Plausible%20Deniability.html">Plausible Deniability</a></strong><br>
+<ul>
+<li><a href="Hidden%20Volume.html">Hidden Volume</a>
+<ul>
+<li><a href="Protection%20of%20Hidden%20Volumes.html">Protection of Hidden Volumes Against Damage</a>
+</li><li><a href="Security%20Requirements%20for%20Hidden%20Volumes.html">Security Requirements and Precautions Pertaining to Hidden Volumes</a>
+</li></ul>
+</li><li><a href="VeraCrypt%20Hidden%20Operating%20System.html">Hidden Operating System</a>
+</li></ul>
+</li><li><strong><a href="Main%20Program%20Window.html">Main Program Window</a></strong>
+<ul>
+<li><a href="Program%20Menu.html">Program Menu</a>
+</li><li><a href="Mounting%20VeraCrypt%20Volumes.html">Mounting Volumes</a>
+</li></ul>
+</li><li><strong><a href="Parallelization.html">Parallelization</a></strong>
+</li><li><strong><a href="Pipelining.html">Pipelining</a></strong>
+</li><li><strong><a href="Hardware%20Acceleration.html">Hardware acceleration</a></strong>
+</li><li><strong><a href="Hot%20Keys.html">Hot keys</a></strong>
+</li><li><strong><a href="Keyfiles%20in%20VeraCrypt.html">Keyfiles</a></strong>
+</li><li><strong><a href="Security%20Tokens%20%26%20Smart%20Cards.html">Security Tokens &amp; Smart Cards</a></strong>
+</li><li><strong><a href="Portable%20Mode.html">Portable Mode</a></strong>
+</li><li><strong><a href="TrueCrypt%20Support.html">TrueCrypt Support</a></strong>
+</li><li><strong><a href="Converting%20TrueCrypt%20volumes%20and%20partitions.html">Converting TrueCrypt Volumes &amp; Partitions</a></strong>
+</li><li><strong><a href="Default%20Mount%20Parameters.html">Default Mount Parameters</a></strong>
+</li><li><strong><a href="Language%20Packs.html">Language Packs</a></strong>
+</li><li><strong><a href="Encryption%20Algorithms.html">Encryption Algorithms</a></strong>
+<ul>
+<li><a href="AES.html">AES</a> </li><li><a href="Camellia.html">Camellia</a>
+</li><li><a href="Kuznyechik.html">Kuznyechik</a>
+</li><li><a href="Serpent.html">Serpent</a> </li><li><a href="Twofish.html">Twofish</a> </li><li><a href="Cascades.html">Cascades of ciphers</a>
+</li></ul>
+</li><li><strong><a href="Hash%20Algorithms.html">Hash Algorithms</a></strong>
+<ul>
+<li><a href="RIPEMD-160.html">RIPEMD-160</a>
+</li><li><a href="SHA-256.html">SHA-256</a> </li><li><a href="SHA-512.html">SHA-512</a> </li><li><a href="Whirlpool.html">Whirlpool</a>
+</li><li><a href="Streebog.html">Streebog</a></li></ul>
+</li><li><strong><a href="Supported%20Operating%20Systems.html">Supported Operating Systems</a></strong>
+</li><li><strong><a href="Command%20Line%20Usage.html">Command Line Usage</a></strong>
+</li><li><strong><a href="Security%20Model.html">Security Model</a></strong>
+</li><li><strong><a href="Security%20Requirements%20and%20Precautions.html">Security Requirements And Precautions<br>
+</a></strong>
+<ul>
+<li><a href="Data%20Leaks.html">Data Leaks</a>
+<ul>
+<li><a href="Paging%20File.html">Paging File</a>
+</li><li><a href="Memory%20Dump%20Files.html">Memory Dump Files</a>
+</li><li><a href="Hibernation%20File.html">Hibernation File</a>
+</li></ul>
+</li><li><a href="Unencrypted%20Data%20in%20RAM.html">Unencrypted Data in RAM</a>
+</li><li><a href="Physical%20Security.html">Physical Security</a>
+</li><li><a href="Malware.html">Malware</a> </li><li><a href="Multi-User%20Environment.html">Multi-User Environment</a>
+</li><li><a href="Authenticity%20and%20Integrity.html">Authenticity and Integrity</a>
+</li><li><a href="Choosing%20Passwords%20and%20Keyfiles.html">Choosing Passwords and Keyfiles</a>
+</li><li><a href="Changing%20Passwords%20and%20Keyfiles.html">Changing Passwords and Keyfiles</a>
+</li><li><a href="Trim%20Operation.html">Trim Operation</a>
+</li><li><a href="Wear-Leveling.html">Wear-Leveling</a>
+</li><li><a href="Reallocated%20Sectors.html">Reallocated Sectors</a>
+</li><li><a href="Defragmenting.html">Defragmenting</a>
+</li><li><a href="Journaling%20File%20Systems.html">Journaling File Systems</a>
+</li><li><a href="Volume%20Clones.html">Volume Clones</a>
+</li><li><a href="Additional%20Security%20Requirements%20and%20Precautions.html">Additional Security Requirements and Precautions</a>
+</li></ul>
+</li><li><strong><a href="How%20to%20Back%20Up%20Securely.html">How To Back Up Securely</a></strong>
+</li><li><strong><a href="Miscellaneous.html">Miscellaneous</a></strong>
+<ul>
+<li><a href="Using%20VeraCrypt%20Without%20Administrator%20Privileges.html">Using VeraCrypt Without Administrator Privileges</a>
+</li><li><a href="Sharing%20over%20Network.html">Sharing Over Network</a>
+</li><li><a href="VeraCrypt%20Background%20Task.html">VeraCrypt Background Task</a>
+</li><li><a href="Removable%20Medium%20Volume.html">Volume Mounted as Removable Medium</a>
+</li><li><a href="VeraCrypt%20System%20Files.html">VeraCrypt System Files &amp; Application Data</a>
+</li><li><a href="Removing%20Encryption.html">How To Remove Encryption</a>
+</li><li><a href="Uninstalling%20VeraCrypt.html">Uninstalling VeraCrypt</a>
+</li><li><a href="Digital%20Signatures.html">Digital Signatures</a>
+</li></ul>
+</li><li><strong><a href="Troubleshooting.html">Troubleshooting</a></strong>
+</li><li><strong><a href="Incompatibilities.html">Incompatibilities</a></strong>
+</li><li><strong><a href="Issues%20and%20Limitations.html">Known Issues and Limitations</a></strong>
+</li><li><strong><a href="FAQ.html">Frequently Asked Questions</a></strong>
+</li><li><strong><strong><a href="Technical%20Details.html">Technical Details</a></strong></strong>
+<ul>
+<li><a href="Notation.html">Notation</a>
+</li><li><a href="Encryption%20Scheme.html">Encryption Scheme</a>
+</li><li><a href="Modes%20of%20Operation.html">Modes of Operation</a>
+</li><li><a href="Header%20Key%20Derivation.html">Header Key Derivation, Salt, and Iteration Count</a>
+</li><li><a href="Random%20Number%20Generator.html">Random Number Generator</a>
+</li><li><a href="Keyfiles.html">Keyfiles</a>
+</li><li><a title="PIM" href="Personal%20Iterations%20Multiplier%20(PIM).html">PIM</a>
+</li><li><a href="VeraCrypt%20Volume%20Format%20Specification.html">VeraCrypt Volume Format Specification</a>
+</li><li><a href="Standard%20Compliance.html">Compliance with Standards and Specifications</a>
+</li><li><a href="Source%20Code.html">Source Code</a>
+</li></ul>
+</li><li><strong><a href="Contact.html">Contact</a></strong>
+</li><li><strong><a href="Legal%20Information.html">Legal Information</a></strong>
+</li><li><strong><a href="Release%20Notes.html">Version History</a></strong>
+</li><li><strong><a href="Acknowledgements.html">Acknowledgements</a></strong>
+</li><li><strong><a href="References.html">References</a></strong>
+</li></ul>
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/doc/html/Donation.html b/doc/html/Donation.html
new file mode 100644
index 0000000..daa5759
--- /dev/null
+++ b/doc/html/Donation.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a href="Documentation.html">Documentation</a></li>
+ <li><a class="active" href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div class="wikidoc">
+<h1>Donation to VeraCrypt</h1>
+<p>You can support VeraCrypt development through donations using PayPal, Bitcoins, bank transfers. It is also possible to donate using Flattr and Tibit.</p>
+<table border="1" width="645" style="height:427px">
+<tbody>
+<tr>
+<th>
+<h4>PayPal</h4>
+</th>
+<th>
+<h4>Bitcoins</h4>
+</th>
+<th>
+<h4 style="text-align:center">Others</h4>
+</th>
+</tr>
+<tr>
+<td>
+<table border="1">
+<tbody>
+<tr>
+<td><strong>Euro</strong></td>
+<td>
+<h3><a title="Donate to VeraCrypt in Euros" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=H25GJLUDHBMB6" target="_blank"><img src="Donation_donate_Euros.gif" alt="" width="92" height="26"></a></h3>
+</td>
+</tr>
+<tr>
+<td><strong>US Dollar</strong></td>
+<td>
+<h3><a title="VeraCrypt Donation in USD" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=B8PU86SHE2ZVA" target="_blank"><img src="Donation_donate_Dollars.gif" alt="" width="92" height="26"></a></h3>
+</td>
+</tr>
+<tr>
+<td><strong>Pound Sterling</strong></td>
+<td>
+<h3><a title="VeraCrypt Donation in GBP" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MFAZACXK9NXT8" target="_blank"><img src="Donation_donate_GBP.gif" alt="" width="92" height="26"></a></h3>
+</td>
+</tr>
+<tr>
+<td><strong>Canadian Dollar</strong></td>
+<td>
+<h3><a title="VeraCrypt Donation in Canadian Dollar" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QAN6T5E5F7F5J" target="_blank"><img src="Donation_donate_Dollars.gif" alt="" width="92" height="26"></a></h3>
+</td>
+</tr>
+<tr>
+<td><strong>Swiss Franc</strong></td>
+<td>
+<h3><a title="VeraCrypt Donation in Swiss Francs" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=98RJHVLY5NJ5U" target="_blank"><img src="Donation_donate_CHF.gif" alt="" width="92" height="26"></a></h3>
+</td>
+</tr>
+<tr>
+<td><strong>Japanese Yen</strong></td>
+<td>
+<h3><a title="VeraCrypt Donation in Japanese Yen" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=M9DXZ83WD7S8Y" target="_blank"><img src="Donation_donate_YEN.gif" alt="" width="92" height="26"></a></h3>
+</td>
+</tr>
+</tbody>
+</table>
+</td>
+<td style="text-align:center; vertical-align:middle">
+<p><img src="Donation_VeraCrypt_Bitcoin.png" alt="VeraCrypt Bitcoin Address" width="250" height="250"></p>
+<p><strong>1NRoPQsm8by5iWyMMmHQy3P5takur3kYgG</strong></p>
+</td>
+<td style="text-align:left; vertical-align:top">
+<p><strong>Tibit:<br>
+<a title="Donate a tib to VeraCrypt" href="https://tib.me/1NRoPQsm8by5iWyMMmHQy3P5takur3kYgG/VeraCrypt/?TIB=https://veracrypt.codeplex.com" target="_blank"><img src="Home_tibitDonateButton.png" alt="Donate using Tibit" width="120" height="40"></a></strong></p>
+<p>&nbsp;</p>
+<p><strong>Flattr:</strong><br>
+<a title="Donate using Flattr" href="https://flattr.com/submit/auto?user_id=idrix&url=https://veracrypt.codeplex.com&title=VeraCrypt" target="_blank"><img title="Flattr VeraCrypt" src="flattr-badge-large.png" alt="Flattr VeraCrypt" width="93" height="20" border="0"></a></p>
+</td>
+</tr>
+</tbody>
+</table>
+<p><img src="bank_30x30.png" style="margin-right: 5px"><strong>Donate using bank transfer:</strong>&nbsp;<a href="Contact.html" target="_blank.html">contact us</a> for bank account details (based in France).</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Donation_VeraCrypt_Bitcoin.png b/doc/html/Donation_VeraCrypt_Bitcoin.png
new file mode 100644
index 0000000..4817d92
--- /dev/null
+++ b/doc/html/Donation_VeraCrypt_Bitcoin.png
Binary files differ
diff --git a/doc/html/Donation_donate_CHF.gif b/doc/html/Donation_donate_CHF.gif
new file mode 100644
index 0000000..8b1eb5c
--- /dev/null
+++ b/doc/html/Donation_donate_CHF.gif
Binary files differ
diff --git a/doc/html/Donation_donate_Dollars.gif b/doc/html/Donation_donate_Dollars.gif
new file mode 100644
index 0000000..d4b532e
--- /dev/null
+++ b/doc/html/Donation_donate_Dollars.gif
Binary files differ
diff --git a/doc/html/Donation_donate_Euros.gif b/doc/html/Donation_donate_Euros.gif
new file mode 100644
index 0000000..9d7d1c8
--- /dev/null
+++ b/doc/html/Donation_donate_Euros.gif
Binary files differ
diff --git a/doc/html/Donation_donate_GBP.gif b/doc/html/Donation_donate_GBP.gif
new file mode 100644
index 0000000..10463fe
--- /dev/null
+++ b/doc/html/Donation_donate_GBP.gif
Binary files differ
diff --git a/doc/html/Donation_donate_YEN.gif b/doc/html/Donation_donate_YEN.gif
new file mode 100644
index 0000000..6684382
--- /dev/null
+++ b/doc/html/Donation_donate_YEN.gif
Binary files differ
diff --git a/doc/html/Encryption Algorithms.html b/doc/html/Encryption Algorithms.html
new file mode 100644
index 0000000..0619fd6
--- /dev/null
+++ b/doc/html/Encryption Algorithms.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Algorithms.html">Encryption Algorithms</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Encryption Algorithms</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt volumes can be encrypted using the following algorithms:</div>
+<table style="border-collapse:separate; border-spacing:0px; width:608px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; border-width:0px 0px 1px 1px; border-style:solid; border-color:#ffffff #ffffff #000000 #000000">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<th style="width:151px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:12px 0px; border-color:#000000 #000000 #000000 white">
+Algorithm</th>
+<th style="width:225px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:12px 0px; border-color:#000000 #000000 #000000 white">
+Designer(s)</th>
+<th style="width:94px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:12px 0px; border-color:#000000 #000000 #000000 white">
+Key Size<br>
+(Bits)</th>
+<th style="width:68px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:12px 0px; border-color:#000000 #000000 #000000 white">
+Block Size (Bits)</th>
+<th style="width:68px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:12px 0px; border-color:#000000 #000000 #000000 white">
+<a href="Modes%20of%20Operation.html" style="color:#0080c0; text-decoration:none.html">Mode of Operation</a></th>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="AES.html" style="color:#0080c0; text-decoration:none.html">AES</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+J. Daemen, V. Rijmen</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Modes%20of%20Operation.html" style="color:#0080c0; text-decoration:none.html">XTS</a></td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Camellia.html">Camellia</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<p align="center" style="margin-left:0cm"><font face="Arial, serif"><font size="2" style="font-size:9pt">Mitsubishi Electric and NTT of Japan</font></font></p>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<p align="center" style="margin-left:0cm"><a href="Kuznyechik.html">Kuznyechik</a></p>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<p align="center" style="margin-left:0cm"><font face="Arial, serif"><font size="2" style="font-size:9pt">National Standard of the Russian Federation<br>
+GOST R 34.12-2015</font></font></p>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Serpent.html" style="color:#0080c0; text-decoration:none.html">Serpent</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+R. Anderson, E. Biham, L. Knudsen</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Twofish.html" style="color:#0080c0; text-decoration:none.html">Twofish</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+B. Schneier, J. Kelsey, D. Whiting,<br>
+D. Wagner, C. Hall, N. Ferguson</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Cascades.html" style="color:#0080c0; text-decoration:none.html">AES-Twofish</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256; 256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Cascades.html" style="color:#0080c0; text-decoration:none.html">AES-Twofish-Serpent</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256; 256; 256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Cascades.html" style="color:#0080c0; text-decoration:none.html">Serpent-AES</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256; 256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Cascades.html" style="color:#0080c0; text-decoration:none.html">Serpent-Twofish-AES</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256; 256; 256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+<a href="Cascades.html" style="color:#0080c0; text-decoration:none.html">Twofish-Serpent</a></td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+256; 256</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+128</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+XTS</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+For information about XTS mode, please see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Modes of Operation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="AES.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Encryption Scheme.html b/doc/html/Encryption Scheme.html
new file mode 100644
index 0000000..b77a0aa
--- /dev/null
+++ b/doc/html/Encryption Scheme.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Scheme.html">Encryption Scheme</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Encryption Scheme</h1>
+<p>When mounting a VeraCrypt volume (assume there are no cached passwords/keyfiles) or when performing pre-boot authentication, the following steps are performed:</p>
+<ol>
+<li>The first 512 bytes of the volume (i.e., the standard volume header) are read into RAM, out of which the first 64 bytes are the salt (see
+<a href="VeraCrypt%20Volume%20Format%20Specification.html">
+<em>VeraCrypt Volume Format Specification</em></a>). For system encryption (see the chapter
+<a href="System%20Encryption.html"><em>System Encryption</em></a>), the last 512 bytes of the first logical drive track are read into RAM (the VeraCrypt Boot Loader is stored in the first track of the system drive and/or
+ on the VeraCrypt Rescue Disk). </li><li>Bytes 65536&ndash;66047 of the volume are read into RAM (see the section <a href="VeraCrypt%20Volume%20Format%20Specification.html">
+<em>VeraCrypt Volume Format Specification</em></a>). For system encryption, bytes 65536&ndash;66047 of the first partition located behind the active partition* are read (see the section
+<a href="Hidden%20Operating%20System.html">
+Hidden Operating System</a>). If there is a hidden volume within this volume (or within the partition behind the boot partition), we have read its header at this point; otherwise, we have just read random data (whether or not there is a hidden volume within
+ it has to be determined by attempting to decrypt this data; for more information see the section
+<a href="Hidden%20Volume.html"><em>Hidden Volume</em></a>).
+</li><li>Now VeraCrypt attempts to decrypt the standard volume header read in (1). All data used and generated in the course of the process of decryption are kept in RAM (VeraCrypt never saves them to disk). The following parameters are unknown&dagger; and have
+ to be determined through the process of trial and error (i.e., by testing all possible combinations of the following):
+<ol type="a">
+<li>PRF used by the header key derivation function (as specified in PKCS #5 v2.0; see the section
+<a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a>), which can be one of the following:
+<p>HMAC-SHA-512, HMAC-SHA-256, HMAC-RIPEMD-160, HMAC-Whirlpool. If a PRF is explicitly specified by the user, it will be used directly without trying the other possibilities.</p>
+<p>A password entered by the user (to which one or more keyfiles may have been applied &ndash; see the section
+<a href="Keyfiles%20in%20VeraCrypt.html">
+<em>Keyfiles</em></a>), a PIM value (if specified) and the salt read in (1) are passed to the header key derivation function, which produces a sequence of values (see the section
+<a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a>) from which the header encryption key and secondary header key (XTS mode) are formed. (These keys are used to decrypt the volume header.)</p>
+</li><li>Encryption algorithm: AES-256, Serpent, Twofish, AES-Serpent, AES-Twofish- Serpent, etc.
+</li><li>Mode of operation: only XTS is supported </li><li>Key size(s) </li></ol>
+</li><li>Decryption is considered successful if the first 4 bytes of the decrypted data contain the ASCII string &ldquo;VERA&rdquo;, and if the CRC-32 checksum of the last 256 bytes of the decrypted data (volume header) matches the value located at byte #8 of the
+ decrypted data (this value is unknown to an adversary because it is encrypted &ndash; see the section
+<a href="VeraCrypt%20Volume%20Format%20Specification.html">
+<em>VeraCrypt Volume Format Specification</em></a>). If these conditions are not met, the process continues from (3) again, but this time, instead of the data read in (1), the data read in (2) are used (i.e., possible hidden volume header). If the conditions
+ are not met again, mounting is terminated (wrong password, corrupted volume, or not a VeraCrypt volume).
+</li><li>Now we know (or assume with very high probability) that we have the correct password, the correct encryption algorithm, mode, key size, and the correct header key derivation algorithm. If we successfully decrypted the data read in (2), we also know that
+ we are mounting a hidden volume and its size is retrieved from data read in (2) decrypted in (3).
+</li><li>The encryption routine is reinitialized with the primary master key** and the secondary master key (XTS mode &ndash; see the section
+<a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>), which are retrieved from the decrypted volume header (see the section
+<a href="VeraCrypt%20Volume%20Format%20Specification.html">
+<em>VeraCrypt Volume Format Specification</em></a>). These keys can be used to decrypt any sector of the volume, except the volume header area (or the key data area, for system encryption), which has been encrypted using the header keys. The volume is mounted.
+</li></ol>
+<p>See also section <a href="Modes%20of%20Operation.html">
+<em>Modes of Operation</em></a> and section <a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a> and also the chapter
+<a href="Security%20Model.html"><em>Security Model</em></a>.</p>
+<p>* If the size of the active partition is less than 256 MB, then the data is read from the
+<em>second</em> partition behind the active one (Windows 7 and later, by default, do not boot from the partition on which they are installed).</p>
+<p>&dagger; These parameters are kept secret <em>not</em> in order to increase the complexity of an attack, but primarily to make VeraCrypt volumes unidentifiable (indistinguishable from random data), which would be difficult to achieve if these parameters
+ were stored unencrypted within the volume header. Also note that if a non-cascaded encryption algorithm is used for system encryption, the algorithm
+<em>is</em> known (it can be determined by analyzing the contents of the unencrypted VeraCrypt Boot Loader stored in the first logical drive track or on the VeraCrypt Rescue Disk).</p>
+<p>** The master keys were generated during the volume creation and cannot be changed later. Volume password change is accomplished by re-encrypting the volume header using a new header key (derived from a new password).</p>
+<p>&nbsp;</p>
+<p><a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/FAQ.html b/doc/html/FAQ.html
new file mode 100644
index 0000000..8bb3df0
--- /dev/null
+++ b/doc/html/FAQ.html
@@ -0,0 +1,734 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="FAQ.html">Frequently Asked Questions</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Frequently Asked Questions</h1>
+<div style="text-align:left; margin-bottom:19px; padding-top:0px; padding-bottom:0px; margin-top:0px">
+Last Updated July 2nd, 2017</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">This document is not guaranteed to be error-free and is provided &quot;as is&quot; without warranty of any kind. For more information, see
+<a href="Disclaimers.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Disclaimers</a>.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Can TrueCrypt and VeraCrypt be running on the same machine?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. There are generally no conflicts between TrueCrypt and VeraCrypt, thus they can be installed and used on the same machine. On Windows however, if they are both used to mount the same volume, two drives may appear when mounting it. This can be solved by
+ running the following command in an elevated command prompt (using Run as an administrator) before mounting any volume:
+<strong>mountvol.exe /r</strong>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Can I use my TrueCrypt volumes in VeraCrypt?</strong></div>
+Yes. Starting from version 1.0f, VeraCrypt supports mounting TrueCrypt volumes.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Can I convert my TrueCrypt volumes to VeraCrypt format?</strong></div>
+Yes. Starting from version 1.0f, VeraCrypt offers the possibility to convert TrueCrypt containers and non-system partitions to VeraCrypt format. This can achieved using the &quot;Change Volume Password&quot; or &quot;Set Header Key Derivation Algorithm&quot; actions. Just check
+ the &quot;TrueCrypt Mode&quot;, enter you TrueCrypt password and perform the operation. After that, you volume will have the VeraCrypt format.<br>
+Before doing the conversion, it is advised to backup the volume header using TrueCrypt. You can delete this backup safely once the conversion is done and after checking that the converted volume is mounted properly by VeraCrypt.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">What's the difference between TrueCrypt and VeraCrypt?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt adds enhanced security to the algorithms used for system and partitions encryption making it immune to new developments in brute-force attacks.<br>
+It also solves many vulnerabilities and security issues found in TrueCrypt.<br>
+As an example, when the system partition is encrypted, TrueCrypt uses PBKDF2-RIPEMD160 with 1000 iterations whereas in VeraCrypt we use
+<span style="text-decoration:underline">327661</span>. And for standard containers and other partitions, TrueCrypt uses at most 2000 iterations but VeraCrypt uses
+<span style="text-decoration:underline">655331 </span>for RIPEMD160 and <span style="text-decoration:underline">
+500000 </span>iterations for SHA-2 and Whirlpool.<br>
+This enhanced security adds some delay only to the opening of encrypted partitions without any performance impact to the application use phase. This is acceptable to the legitimate owner but it makes it much harder for an attacker to gain access to the encrypted
+ data.</div>
+</div>
+<br id="PasswordLost" style="text-align:left">
+<strong style="text-align:left">I forgot my password &ndash; is there any way ('backdoor') to recover the files from my VeraCrypt volume?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+We have not implemented any 'backdoor' in VeraCrypt (and will never implement any even if asked to do so by a government agency), because it would defeat the purpose of the software. VeraCrypt does not allow decryption of data without knowing the correct password
+ or key. We cannot recover your data because we do not know and cannot determine the password you chose or the key you generated using VeraCrypt. The only way to recover your files is to try to &quot;crack&quot; the password or the key, but it could take thousands or
+ millions of years (depending on the length and quality of the password or keyfiles, on the software/hardware performance, algorithms, and other factors). Back in 2010, there was news about the
+<a href="http://www.webcitation.org/query?url=g1.globo.com/English/noticia/2010/06/not-even-fbi-can-de-crypt-files-daniel-dantas.html" target="_blank">
+FBI failing to decrypt a TrueCrypt volume after a year of trying</a>. While we can't verify if this is true or just a &quot;psy-op&quot; stunt, in VeraCrypt we have increased the security of the key derivation to a level where any brute-force of the password is virtually
+ impossible, provided that all security requirements are respected.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is there a &quot;Quick Start Guide&quot; or some tutorial for beginners?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. The first chapter, <strong style="text-align:left"><a href="Beginner%27s%20Tutorial.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">Beginner's Tutorial</a></strong>, in the VeraCrypt
+ User Guide contains screenshots and step-by-step instructions on how to create, mount, and use a VeraCrypt volume.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I encrypt a partition/drive where Windows is installed?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, see the chapter <a href="System%20Encryption.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+System Encryption</a> in the VeraCrypt User Guide.</div>
+<div id="BootingHang" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong>The system encryption Pre Test fails because the bootloader hangs with the messaging &quot;booting&quot; after successfully verifying the password. How to make the Pre Test succeed?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+There two known workarounds for this issue (Both require having a Windows Installation disk):</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<ol>
+<li>Boot your machine using a Windows Installation disk and select to repair your computer. Choose &quot;Command Prompt&quot; option and when it opens, type the commands below and then restart your system:
+<ul>
+<li>BootRec /fixmbr </li><li>BootRec /FixBoot </li></ul>
+</li><li>Delete the 100 MB System Reserved partition located at the beginning of your drive and set the system partition next to it as the active partition (both can be done using diskpart utility available in Windows Installation disk repair option). After that,
+ run Startup Repair after rebooting on Windows Installation disk. The following link contains detailed instructions:
+<a href="https://www.sevenforums.com/tutorials/71363-system-reserved-partition-delete.html" target="_blank">
+https://www.sevenforums.com/tutorials/71363-system-reserved-partition-delete.html</a>
+</li></ol>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<div id="PreTestFail" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong>The system encryption Pre Test fails even though the password was correctly entered in the bootloader. How to make the Pre Test succeed?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+This can be caused by the TrueCrypt driver that clears BIOS memory before VeraCrypt is able to read it. In this case, uninstalling TrueCrypt solves the issue.<br>
+This can also be caused by some hardware drivers and other software that access BIOS memory. There is no generic solution for this and affected users should identify such software and remove it from the system.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I directly play a video (.avi, .mpg, etc.) stored on a VeraCrypt volume?</strong></div>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, VeraCrypt-encrypted volumes are like normal disks. You provide the correct password (and/or keyfile) and mount (open) the VeraCrypt volume. When you double click the icon of the video file, the operating system launches the application associated with
+ the file type &ndash; typically a media player. The media player then begins loading a small initial portion of the video file from the VeraCrypt-encrypted volume to RAM (memory) in order to play it. While the portion is being loaded, VeraCrypt is automatically
+ decrypting it (in RAM). The decrypted portion of the video (stored in RAM) is then played by the media player. While this portion is being played, the media player begins loading another small portion of the video file from the VeraCrypt-encrypted volume to
+ RAM (memory) and the process repeats.<br style="text-align:left">
+<br style="text-align:left">
+The same goes for video recording: Before a chunk of a video file is written to a VeraCrypt volume, VeraCrypt encrypts it in RAM and then writes it to the disk. This process is called on-the-fly encryption/decryption and it works for all file types (not only
+ for video files).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Will VeraCrypt be open-source and free forever?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, it will. We will never create a commercial version of VeraCrypt, as we believe in open-source and free security software.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is it possible to donate to the VeraCrypt project?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. You can use the donation buttons at <a href="https://www.veracrypt.fr/en/Donation.html" target="_blank">
+https://www.veracrypt.fr/en/donation/</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Why is VeraCrypt open-source? What are the advantages?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+As the source code for VeraCrypt is publicly available, independent researchers can verify that the source code does not contain any security flaw or secret 'backdoor'. If the source code were not available, reviewers would need to reverse-engineer the executable
+ files. However, analyzing and understanding such reverse-engineered code is so difficult that it is practically
+<em style="text-align:left">impossible</em> to do (especially when the code is as large as the VeraCrypt code).<br style="text-align:left">
+<br style="text-align:left">
+Remark: A similar problem also affects cryptographic hardware (for example, a self-encrypting storage device). It is very difficult to reverse-engineer it to verify that it does not contain any security flaw or secret 'backdoor'.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">VeraCrypt is open-source, but has anybody actually reviewed the source code?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. An <a href="http://blog.quarkslab.com/security-assessment-of-veracrypt-fixes-and-evolutions-from-truecrypt.html" target="_blank">
+audit</a> has been performed by <a href="https://quarkslab.com/" target="_blank">
+Quarkslab</a>. The technical report can be downloaded from <a href="http://blog.quarkslab.com/resources/2016-10-17-audit-veracrypt/16-08-215-REP-VeraCrypt-sec-assessment.pdf">here</a>. VeraCrypt 1.19 addressed the issues found by this audit.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">As VeraCrypt is open-source software, independent researchers can verify that the source code does not contain any security flaw or secret 'backdoor'. Can they also verify that the official executable files were built from the
+ published source code and contain no additional code?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, they can. In addition to reviewing the source code, independent researchers can compile the source code and compare the resulting executable files with the official ones. They may find some differences (for example, timestamps or embedded digital signatures)
+ but they can analyze the differences and verify that they do not form malicious code.</div>
+<div id="UsbFlashDrive" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">How can I use VeraCrypt on a USB flash drive? </strong>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You have three options:</div>
+<ol 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">
+Encrypt the entire USB flash drive. However, you will not be able run VeraCrypt from the USB flash drive.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Create two or more partitions on your USB flash drive. Leave the first partition non encrypted and encrypt the other partition(s). You can store VeraCrypt on the first partition in order to run it directly from the USB flash drive.<br style="text-align:left">
+Note: Windows can only access the primary partition of a USB flash drive, nevertheless the extra partitions remain accessible through VeraCrypt.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Create a VeraCrypt file container on the USB flash drive (for information on how to do so, see the chapter
+<strong style="text-align:left"><a href="Beginner%27s%20Tutorial.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Beginner's Tutorial</a></strong>, in the
+<a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>). If you leave enough space on the USB flash drive (choose an appropriate size for the VeraCrypt container), you will also be able to store VeraCrypt on the USB flash drive (along with the container &ndash; not
+<em style="text-align:left">in</em> the container) and you will be able to run VeraCrypt from the USB flash drive (see also the chapter
+<a href="Portable%20Mode.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Portable Mode</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>). </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Does VeraCrypt also encrypt file names and folder names?
+</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. The entire file system within a VeraCrypt volume is encrypted (including file names, folder names, and contents of every file). This applies to both types of VeraCrypt volumes &ndash; i.e., to file containers (virtual VeraCrypt disks) and to VeraCrypt-encrypted
+ partitions/devices.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Does VeraCrypt use parallelization?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. Increase in encryption/decryption speed is directly proportional to the number of cores/processors your computer has. For more information, please see the chapter
+<a href="Parallelization.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Parallelization</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can data be read from and written to an encrypted volume/drive as fast as if the drive was not encrypted?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, since VeraCrypt uses pipelining and parallelization. For more information, please see the chapters
+<a href="Pipelining.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Pipelining</a> and <a href="Parallelization.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Parallelization</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Does VeraCrypt support hardware-accelerated encryption?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. For more information, please see the chapter <a href="Hardware%20Acceleration.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hardware Acceleration</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is it possible to boot Windows installed in a hidden VeraCrypt volume?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, it is. For more information, please see the section <a href="Hidden%20Operating%20System.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Will I be able to mount my VeraCrypt volume (container) on any computer?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, <a href="VeraCrypt%20Volume.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt volumes</a> are independent of the operating system. You will be able to mount your VeraCrypt volume on any computer on which you can run VeraCrypt (see also the question '<em style="text-align:left">Can I use VeraCrypt on Windows if I do not have
+ administrator privileges?</em>').</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I unplug or turn off a hot-plug device (for example, a USB flash drive or USB hard drive) when there is a mounted VeraCrypt volume on it?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Before you unplug or turn off the device, you should always dismount the VeraCrypt volume in VeraCrypt first, and then perform the '<em style="text-align:left">Eject</em>' operation if available (right-click the device in the '<em style="text-align:left">Computer</em>'
+ or '<em style="text-align:left">My Computer</em>' list), or use the '<em style="text-align:left">Safely Remove Hardware</em>' function (built in Windows, accessible via the taskbar notification area). Otherwise, data loss may occur.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">What is a hidden operating system?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+See the section <a href="Hidden%20Operating%20System.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">What is plausible deniability?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+See the chapter <a href="Plausible%20Deniability.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Plausible Deniability</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div id="SystemReinstallUpgrade" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Will I be able to mount my VeraCrypt partition/container after I reinstall or upgrade the operating system?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, <a href="VeraCrypt%20Volume.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt volumes</a> are independent of the operating system. However, you need to make sure your operating system installer does not format the partition where your VeraCrypt volume resides.<br style="text-align:left">
+<br style="text-align:left">
+Note: If the system partition/drive is encrypted and you want to reinstall or upgrade Windows, you need to decrypt it first (select
+<em style="text-align:left">System</em> &gt; <em style="text-align:left">Permanently Decrypt System Partition/Drive</em>). However, a running operating system can be
+<em style="text-align:left">updated</em> (security patches, service packs, etc.) without any problems even when the system partition/drive is encrypted.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I upgrade from an older version of VeraCrypt to the latest version without any problems?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Generally, yes. However, before upgrading, please read the <a href="Release%20Notes.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+release notes</a> for all versions of VeraCrypt that have been released since your version was released. If there are any known issues or incompatibilities related to upgrading from your version to a newer one, they will be listed in the
+<a href="Release%20Notes.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+release notes</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I upgrade VeraCrypt if the system partition/drive is encrypted or do I have to decrypt it first?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Generally, you can upgrade to the latest version without decrypting the system partition/drive (just run the VeraCrypt installer and it will automatically upgrade VeraCrypt on the system). However, before upgrading, please read the
+<a href="Release%20Notes.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+release notes</a> for all versions of VeraCrypt that have been released since your version was released. If there are any known issues or incompatibilities related to upgrading from your version to a newer one, they will be listed in the
+<a href="Release%20Notes.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+release notes</a>. Note that this FAQ answer is also valid for users of a <a href="Hidden%20Operating%20System.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden operating system</a>. Also note that you cannot <em style="text-align:left">
+down</em>grade VeraCrypt if the system partition/drive is encrypted.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">I use pre-boot authentication. Can I prevent a person (adversary) that is watching me start my computer from knowing that I use VeraCrypt?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. To do so, boot the encrypted system, start VeraCrypt, select <em style="text-align:left">
+Settings</em> &gt; <em style="text-align:left">System Encryption</em>, enable the option '<em style="text-align:left">Do not show any texts in the pre-boot authentication screen</em>' and click
+<em style="text-align:left">OK</em>. Then, when you start the computer, no texts will be displayed by the VeraCrypt boot loader (not even when you enter the wrong password). The computer will appear to be &quot;frozen&quot; while you can type your password. It is, however,
+ important to note that if the adversary can analyze the content of the hard drive, he can still find out that it contains the VeraCrypt boot loader.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">I use pre-boot authentication. Can I configure the VeraCrypt Boot Loader to display only a fake error message?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. To do so, boot the encrypted system, start VeraCrypt, select <em style="text-align:left">
+Settings</em> &gt; <em style="text-align:left">System Encryption</em>, enable the option '<em style="text-align:left">Do not show any texts in the pre-boot authentication screen</em>' and enter the fake error message in the corresponding field (for example,
+ the &quot;<em style="text-align:left">Missing operating system</em>&quot; message, which is normally displayed by the Windows boot loader if it finds no Windows boot partition). It is, however, important to note that if the adversary can analyze the content of the hard
+ drive, he can still find out that it contains the VeraCrypt boot loader.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I configure VeraCrypt to mount automatically whenever Windows starts a non-system VeraCrypt volume that uses the same password as my system partition/drive (i.e. my pre-boot authentication password)?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. To do so, follow these steps:</div>
+<ol 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">
+Mount the volume (to the drive letter to which you want it to be mounted every time).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Right-click the mounted volume in the drive list in the main VeraCrypt window and select '<em style="text-align:left">Add to System Favorites</em>'.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The System Favorites Organizer window should appear now. In this window, enable the option '<em style="text-align:left">Mount system favorite volumes when Windows starts</em>' and click
+<em style="text-align:left">OK</em>. </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+For more information, see the chapter <a href="System%20Favorite%20Volumes.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+System Favorite Volumes</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can a volume be automatically mounted whenever I log on to Windows?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. To do so, follow these steps:</div>
+<ol 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">
+Mount the volume (to the drive letter to which you want it to be mounted every time).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Right-click the mounted volume in the drive list in the main VeraCrypt window and select '<em style="text-align:left">Add to Favorites</em>'.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The <a href="Favorite%20Volumes.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Favorites</a> Organizer window should appear now. In this window, enable the option '<em style="text-align:left">Mount selected volume upon logon</em>' and click
+<em style="text-align:left">OK</em>. </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Then, when you log on to Windows, you will be asked for the volume password (and/or keyfiles) and if it is correct, the volume will be mounted.<br style="text-align:left">
+<br style="text-align:left">
+Alternatively, if the volumes are partition/device-hosted and if you do not need to mount them to particular drive letters every time, you can follow these steps:</div>
+<ol 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">
+Select <em style="text-align:left">Settings</em> &gt; <em style="text-align:left">
+Preferences. </em>The <em style="text-align:left">Preferences</em> window should appear now.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+In the section '<em style="text-align:left">Actions to perform upon logon to Windows</em>', enable the option '<em style="text-align:left">Mount all devices-hosted VeraCrypt volumes</em>' and click
+<em style="text-align:left">OK</em>. </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: VeraCrypt will not prompt you for a password if you have enabled caching of the
+<a href="System%20Encryption.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+pre-boot authentication</a> password (<em style="text-align:left">Settings</em> &gt; '<em style="text-align:left">System Encryption</em>') and the volumes use the same password as the system partition/drive.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can a volume be automatically mounted whenever its host device gets connected to the computer?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. For example, if you have a VeraCrypt container on a USB flash drive and you want VeraCrypt to mount it automatically when you insert the USB flash drive into the USB port, follow these steps:</div>
+<ol 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">
+Mount the volume (to the drive letter to which you want it to be mounted every time).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Right-click the mounted volume in the drive list in the main VeraCrypt window and select '<em style="text-align:left">Add to Favorites</em>'.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The <a href="Favorite%20Volumes.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Favorites</a> Organizer window should appear now. In this window, enable the option '<em style="text-align:left">Mount selected volume when its host device gets connected</em>' and click
+<em style="text-align:left">OK</em>. </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Then, when you insert the USB flash drive into the USB port, you will be asked for the volume password (and/or keyfiles) (unless it is cached) and if it is correct, the volume will be mounted.<br style="text-align:left">
+<br style="text-align:left">
+Note: VeraCrypt will not prompt you for a password if you have enabled caching of the
+<a href="System%20Encryption.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+pre-boot authentication</a> password (<em style="text-align:left">Settings</em> &gt; '<em style="text-align:left">System Encryption</em>') and the volume uses the same password as the system partition/drive.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can my pre-boot authentication password be cached so that I can use it mount non-system volumes during the session?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. Select <em style="text-align:left">Settings</em> &gt; '<em style="text-align:left">System Encryption</em>' and enable the following option: '<em style="text-align:left">Cache pre-boot authentication password in driver memory</em>'.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a name="notraces" style="text-align:left; color:#0080c0; text-decoration:none"></a><br style="text-align:left">
+<strong style="text-align:left">I live in a country that violates basic human rights of its people. Is it possible to use VeraCrypt without leaving any 'traces' on unencrypted Windows?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. This can be achieved by running VeraCrypt in <a href="Portable%20Mode.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+portable mode</a> under <a href="http://www.nu2.nu/pebuilder/" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+BartPE</a> or in a similar environment. BartPE stands for &quot;Bart's Preinstalled Environment&quot;, which is essentially the Windows operating system prepared in a way that it can be entirely stored on and booted from a CD/DVD (registry, temporary files, etc., are
+ stored in RAM &ndash; hard drive is not used at all and does not even have to be present). The freeware
+<a href="http://www.nu2.nu/pebuilder/" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+Bart's PE Builder</a> can transform a Windows XP installation CD into a BartPE CD. Note that you do not even need any special VeraCrypt plug-in for BartPE. Follow these steps:</div>
+<ol 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">
+Create a BartPE CD and boot it. (Note: You must perform each of the following steps from within BartPE.)
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Download the VeraCrypt self-extracting package to the RAM disk (which BartPE automatically creates).
+<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">Note</strong>: If the adversary can intercept data you send or receive over the Internet and you need to prevent the adversary from knowing you downloaded VeraCrypt, consider downloading it via
+<a href="https://geti2p.net/en/" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+<strong style="text-align:left">I2P</strong></a>, <a href="http://www.torproject.org/" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+<strong style="text-align:left">Tor</strong></a>, or a similar anonymizing network.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Verify the digital signatures of the downloaded file (see <a href="Digital%20Signatures.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+this</a> section of the documentation for more information). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Run the downloaded file, and select <em style="text-align:left">Extract</em> (instead of
+<em style="text-align:left">Install</em>) on the second page of the VeraCrypt Setup wizard. Extract the contents to the RAM disk.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Run the file <em style="text-align:left">VeraCrypt.exe</em> from the RAM disk. </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: You may also want to consider creating a hidden operating system (see the section
+<a href="Hidden%20Operating%20System.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>). See also the chapter <a href="Plausible%20Deniability.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Plausible Deniability</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I encrypt my system partition/drive if I don't have a US keyboard?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, VeraCrypt supports all keyboard layouts. Because of BIOS requirement, the pre-boot password is typed using
+<strong>US keyboard layout. </strong>During the system encryption process, VeraCrypt automatically and transparently switches the keyboard to US layout in order to ensure that the password value typed will match the one typed in pre-boot mode. Thus, in order
+ to avoid wrong password errors, one must type the password using the same keys as when creating the system encryption.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I save data to the decoy system partition without risking damage to the hidden system partition?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. You can write data to the decoy system partition anytime without any risk that the hidden volume will get damaged (because the decoy system is
+<em style="text-align:left">not</em> installed within the same partition as the hidden system). For more information, see the section
+<a href="Hidden%20Operating%20System.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I use VeraCrypt on Windows if I do not have administrator privileges?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+See the chapter '<a href="Using%20VeraCrypt%20Without%20Administrator%20Privileges.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">Using VeraCrypt Without Administrator Privileges</a>'
+ in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Does VeraCrypt save my password to a disk?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+No.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">How does VeraCrypt verify that the correct password was entered?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+See the section <a href="Encryption%20Scheme.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a> (chapter <a href="Technical%20Details.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Technical Details</a>) in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div id="encrypt-in-place" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I encrypt a partition/drive without losing the data currently stored on it?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, but the following conditions must be met:</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">
+If you want to encrypt an entire system drive (which may contain multiple partitions) or a system partition (in other words, if you want to encrypt a drive or partition where Windows is installed), you can do so provided that you use Windows XP or a later version
+ of Windows (such as Windows 7) <span style="text-align:left; font-size:10px; line-height:12px">
+(select '<em style="text-align:left">System</em>' &gt; '<em style="text-align:left">Encrypt System Partition/Drive</em>' and then follow the instructions in the wizard)</span>.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If you want to encrypt a non-system partition in place, you can do so provided that it contains an NTFS filesystem and that you use Windows Vista or a later version of Windows (for example, Windows 7)
+<span style="text-align:left; font-size:10px; line-height:12px">(click '<em style="text-align:left">Create Volume</em>' &gt; '<em style="text-align:left">Encrypt a non-system partition</em>' &gt; '<em style="text-align:left">Standard volume</em>' &gt; '<em style="text-align:left">Select
+ Device</em>' &gt; '<em style="text-align:left">Encrypt partition in place</em>' and then follow the instructions in the wizard)</span>.
+</li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I run VeraCrypt if I don't install it?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, see the chapter <a href="Portable%20Mode.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Portable Mode</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a name="tpm" style="text-align:left; color:#0080c0; text-decoration:none"></a><br style="text-align:left">
+<strong style="text-align:left">Some encryption programs use TPM to prevent attacks. Will VeraCrypt use it too?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+No. Those programs use TPM to protect against attacks that <em style="text-align:left">
+require</em> the attacker to have administrator privileges, or physical access to the computer, and the attacker needs you to use the computer after such an access.
+<em style="text-align:left">However, if any of these conditions is met, it is actually impossible to secure the computer</em> (see below) and, therefore, you must stop using it (instead of relying on TPM).
+<br style="text-align:left">
+<br style="text-align:left">
+If the attacker has administrator privileges, he can, for example, reset the TPM, capture the content of RAM (containing master keys) or content of files stored on mounted VeraCrypt volumes (decrypted on the fly), which can then be sent to the attacker over
+ the Internet or saved to an unencrypted local drive (from which the attacker might be able to read it later, when he gains physical access to the computer).
+<br style="text-align:left">
+<br style="text-align:left">
+If the attacker can physically access the computer hardware (and you use it after such an access), he can, for example, attach a malicious component to it (such as a hardware keystroke logger) that will capture the password, the content of RAM (containing master
+ keys) or content of files stored on mounted VeraCrypt volumes (decrypted on the fly), which can then be sent to the attacker over the Internet or saved to an unencrypted local drive (from which the attacker might be able to read it later, when he gains physical
+ access to the computer again). <br style="text-align:left">
+<br style="text-align:left">
+The only thing that TPM is almost guaranteed to provide is a false sense of security (even the name itself, &quot;Trusted Platform Module&quot;, is misleading and creates a false sense of security). As for real security, TPM is actually redundant (and implementing redundant
+ features is usually a way to create so-called bloatware). <br style="text-align:left">
+<br style="text-align:left">
+For more information, please see the sections <a title="Physical%20Security&quot;" style="text-align:left; color:#0080c0; text-decoration:none">
+Physical Security</a> and <a href="Malware.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Malware</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Do I have to dismount VeraCrypt volumes before shutting down or restarting Windows?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+No. VeraCrypt automatically dismounts all mounted VeraCrypt volumes on system shutdown/restart.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Which type of VeraCrypt volume is better &ndash; partition or file container?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="VeraCrypt%20Volume.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">File containers</a> are normal files so you can work with them as with any normal files (file containers
+ can be, for example, moved, renamed, and deleted the same way as normal files). <a href="VeraCrypt%20Volume.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Partitions/drives</a> may be better as regards performance. Note that reading and writing to/from a file container may take significantly longer when the container is heavily fragmented. To solve this problem, defragment the file system in which the container
+ is stored (when the VeraCrypt volume is dismounted).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">What's the recommended way to back up a VeraCrypt volume?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+See the chapter <a href="How%20to%20Back%20Up%20Securely.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+How to Back Up Securely</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">What will happen if I format a VeraCrypt partition?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+See the question '<em style="text-align:left"><a href="#changing-filesystem" style="text-align:left; color:#0080c0; text-decoration:none">Is it possible to change the file system of an encrypted volume?</a></em>'</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left"><a name="changing-filesystem" style="text-align:left; color:#0080c0; text-decoration:none"></a>Is it possible to change the file system of an encrypted volume?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, when mounted, VeraCrypt volumes can be formatted as FAT12, FAT16, FAT32, NTFS, or any other file system. VeraCrypt volumes behave as standard disk devices so you can right-click the device icon (for example in the '<em style="text-align:left">Computer</em>'
+ or '<em style="text-align:left">My Computer</em>' list) and select '<em style="text-align:left">Format</em>'. The actual volume contents will be lost. However, the whole volume will remain encrypted. If you format a VeraCrypt-encrypted partition when the VeraCrypt
+ volume that the partition hosts is not mounted, then the volume will be destroyed, and the partition will not be encrypted anymore (it will be empty).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is it possible to mount a VeraCrypt container that is stored on a CD or DVD?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. However, if you need to mount a VeraCrypt volume that is stored on a read-only medium (such as a CD or DVD) under Windows 2000, the file system within the VeraCrypt volume must be FAT (Windows 2000 cannot mount an NTFS file system on read-only media).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is it possible to change the password for a hidden volume?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, the password change dialog works both for standard and <a href="Hidden%20Volume.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden volumes</a>. Just type the password for the hidden volume in the 'Current Password' field of the 'Volume Password Change' dialog.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px; font-size:10px; line-height:12px">
+Remark: VeraCrypt first attempts to decrypt the standard <a href="VeraCrypt%20Volume%20Format%20Specification.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+volume header</a> and if it fails, it attempts to decrypt the area within the volume where the hidden volume header may be stored (if there is a hidden volume within). In case it is successful, the password change applies to the hidden volume. (Both attempts
+ use the password typed in the 'Current Password' field.)</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">When I use HMAC-RIPEMD-160, is the size of the header encryption key only 160 bits?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+No, VeraCrypt never uses an output of a hash function (nor of a HMAC algorithm) directly as an encryption key. See the section
+<a href="Header%20Key%20Derivation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Header Key Derivation, Salt, and Iteration Count</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a> for more information.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">How do I burn a VeraCrypt container larger than 2 GB onto a DVD?</strong><br style="text-align:left">
+<br style="text-align:left">
+The DVD burning software you use should allow you to select the format of the DVD. If it does, select the UDF format (ISO format does not support files larger than 2 GB).</div>
+<div id="disk_defragmenter" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I use tools like <em style="text-align:left">
+chkdsk</em>, Disk Defragmenter, etc. on the contents of a mounted VeraCrypt volume?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, VeraCrypt volumes behave like real physical disk devices, so it is possible to use any filesystem checking/repairing/defragmenting tools on the contents of a mounted VeraCrypt volume.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Does VeraCrypt support 64-bit versions of Windows?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, it does. <span style="text-align:left; font-size:10px; line-height:12px">Note: 64-bit versions of Windows load only drivers that are digitally signed with a digital certificate issued by a certification authority approved for issuing kernel-mode code signing
+ certificates. VeraCrypt complies with this requirement (the VeraCrypt driver is <a href="Digital%20Signatures.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+digitally signed</a> with the digital certificate of IDRIX, which was issued by the certification authority Thawte).</span></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can I mount my VeraCrypt volume under Windows, Mac OS X, and Linux?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, VeraCrypt volumes are fully cross-platform.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">How can I uninstall VeraCrypt on Linux?</strong>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To uninstall VeraCrypt on Linux, run the following command in Terminal as root: <strong>
+veracrypt-uninstall.sh</strong>. On Ubuntu, you can use &quot;<strong>sudo veracrypt-uninstall.sh</strong>&quot;.</div>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is there a list of all operating systems that VeraCrypt supports?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, see the chapter <a href="Supported%20Operating%20Systems.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Supported Operating Systems</a> in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is it possible to install an application to a VeraCrypt volume and run it from there?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">What will happen when a part of a VeraCrypt volume becomes corrupted?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In encrypted data, one corrupted bit usually corrupts the whole ciphertext block in which it occurred. The ciphertext block size used by VeraCrypt is 16 bytes (i.e., 128 bits). The
+<a href="Modes%20of%20Operation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+mode of operation</a> used by VeraCrypt ensures that if data corruption occurs within a block, the remaining blocks are not affected. See also the question '<em style="text-align:left">What do I do when the encrypted filesystem on my VeraCrypt volume is corrupted?</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">What do I do when the encrypted filesystem on my VeraCrypt volume is corrupted?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+File system within a VeraCrypt volume may become corrupted in the same way as any normal unencrypted file system. When that happens, you can use filesystem repair tools supplied with your operating system to fix it. In Windows, it is the '<em style="text-align:left">chkdsk</em>'
+ tool. VeraCrypt provides an easy way to use this tool on a VeraCrypt volume: Right-click the mounted volume in the main VeraCrypt window (in the drive list) and from the context menu select '<em style="text-align:left">Repair Filesystem</em>'.</div>
+<div id="reset_volume_password" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">We use VeraCrypt in a corporate/enterprise environment. Is there a way for an administrator to reset a volume password or pre-boot authentication password when a user forgets it (or loses a keyfile)?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes. Note that there is no &quot;backdoor&quot; implemented in VeraCrypt. However, there is a way to &quot;reset&quot; volume passwords/<a href="Keyfiles.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">keyfiles</a>
+ and <a href="System%20Encryption.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+pre-boot authentication</a> passwords. After you create a volume, back up its header to a file (select
+<em style="text-align:left">Tools</em> -&gt; <em style="text-align:left">Backup Volume Header</em>) before you allow a
+<a href="Using%20VeraCrypt%20Without%20Administrator%20Privileges.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+non-admin user</a> to use the volume. Note that the <a href="VeraCrypt%20Volume%20Format%20Specification.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+volume header</a> (which is encrypted with a <a href="Header%20Key%20Derivation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+header key</a> derived from a password/keyfile) contains the <a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+master key</a> with which the volume is encrypted. Then ask the user to choose a password, and set it for him/her (<em style="text-align:left">Volumes</em> -&gt;
+<em style="text-align:left">Change Volume Password</em>); or generate a user keyfile for him/her. Then you can allow the user to use the volume and to change the password/keyfiles without your assistance/permission. In case he/she forgets his/her password or
+ loses his/her keyfile, you can &quot;reset&quot; the volume password/keyfiles to your original admin password/keyfiles by restoring the volume header from the backup file (<em style="text-align:left">Tools</em> -&gt;
+<em style="text-align:left">Restore Volume Header</em>). <br style="text-align:left">
+<br style="text-align:left">
+Similarly, you can reset a <a href="System%20Encryption.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+pre-boot authentication</a> password<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">.
+</a>To create a backup of the master key data (that will be stored on a <a href="VeraCrypt%20Rescue%20Disk.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Rescue Disk</a> and encrypted with your administrator password), select '<em style="text-align:left">System</em>' &gt; '<a href="VeraCrypt%20Rescue%20Disk.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none"><em style="text-align:left.html">Create
+ Rescue Disk</em></a>'. To set a user <a href="System%20Encryption.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+pre-boot authentication</a> password, select '<em style="text-align:left">System</em>' &gt; '<em style="text-align:left">Change Password</em>'. To restore your administrator password, boot the VeraCrypt Rescue Disk, select '<em style="text-align:left">Repair
+ Options</em>' &gt; '<em style="text-align:left">Restore key data</em>' and enter your administrator password.
+<br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">Note: It is not required to burn each
+<a href="VeraCrypt%20Rescue%20Disk.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Rescue Disk</a> ISO image to a CD/DVD. You can maintain a central repository of ISO images for all workstations (rather than a repository of CDs/DVDs). For more information see the section
+<a href="Command%20Line%20Usage.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Command Line Usage</a> (option <em style="text-align:left">/noisocheck</em>).</span></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can our commercial company use VeraCrypt free of charge?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Provided that you comply with the terms and conditions of the <a href="VeraCrypt%20License.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt License</a>, you can install and run VeraCrypt free of charge on an arbitrary number of your computers.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">We share a volume over a network. Is there a way to have the network share automatically restored when the system is restarted?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please see the chapter '<a href="Sharing%20over%20Network.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Sharing over Network</a>' in the
+<a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">It is possible to access a single VeraCrypt volume simultaneously from multiple operating systems (for example, a volume shared over a network)?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please see the chapter '<a href="Sharing%20over%20Network.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Sharing over Network</a>' in the
+<a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Can a user access his or her VeraCrypt volume via a network?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please see the chapter '<a href="Sharing%20over%20Network.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Sharing over Network</a>' in the
+<a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>.</div>
+<div id="non_system_drive_letter" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">I encrypted a non-system partition, but its original drive letter is still visible in the '<span style="text-align:left; font-style:italic">My Computer</span>' list. When I double click this drive letter, Windows asks if I want
+ to format the drive. Is there a way to hide or free this drive letter? </strong>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, to free the drive letter follow these steps:</div>
+<ol 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">
+Right-click the '<em style="text-align:left">Computer</em>' (or '<span style="text-align:left; font-style:italic">My Computer</span>') icon on your desktop or in the Start Menu and select
+<span style="text-align:left; font-style:italic">Manage</span>. The '<span style="text-align:left; font-style:italic">Computer Management</span>' window should appear.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+From the list on the left, select '<span style="text-align:left; font-style:italic">Disk Management</span>' (within the
+<span style="text-align:left; font-style:italic">Storage</span> sub-tree). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Right-click the encrypted partition/device and select <span style="text-align:left; font-style:italic">
+Change Drive Letter and Paths</span>. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Click <span style="text-align:left; font-style:italic">Remove</span>. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If Windows prompts you to confirm the action, click <span style="text-align:left; font-style:italic">
+Yes</span>. </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left"><br style="text-align:left">
+When I plug in my encrypted USB flash drive, Windows asks me if I want to format it. Is there a way to prevent that?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, but you will need to remove the drive letter assigned to the device. For information on how to do so, see the question '<em style="text-align:left">I encrypted a non-system partition, but its original drive letter is still visible in the 'My Computer'
+ list.</em>'</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left"><br style="text-align:left">
+How do I remove or undo encryption if I do not need it anymore? How do I permanently decrypt a volume?
+</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please see the section '<a href="Removing%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">How to Remove Encryption</a>' in the
+<a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">What will change when I enable the option '<em style="text-align:left">Mount volumes as removable media</em>'?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please see the section '<a href="Removable%20Medium%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Volume Mounted as Removable Medium</a>' in the
+<a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+VeraCrypt User Guide</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Is the online documentation available for download as a single file?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Yes, the documentation is contained in the file <em style="text-align:left">VeraCrypt User Guide.chm</em> that is included in official VeraCrypt installer for Windows. You can also download the CHM using the link available at the home page
+<a href="https://www.veracrypt.fr/en/Downloads.html" target="_blank">https://www.veracrypt.fr/en/downloads/</a>. Note that you do
+<em style="text-align:left">not</em> have to install VeraCrypt to obtain the CHM documentation. Just run the self-extracting installation package and then select
+<em style="text-align:left">Extract</em> (instead of <em style="text-align:left">
+Install</em>) on the second page of the VeraCrypt Setup wizard. Also note that when you
+<em style="text-align:left">do</em> install VeraCrypt, the CHM documentation is automatically copied to the folder to which VeraCrypt is installed, and is accessible via the VeraCrypt user interface (by pressing F1 or choosing
+<em style="text-align:left">Help</em> &gt; <em style="text-align:left">User's Guide</em>).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">Do I have to &quot;wipe&quot; free space and/or files on a VeraCrypt volume?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<span style="text-align:left; font-size:10px; line-height:12px">Remark: to &quot;wipe&quot; = to securely erase; to overwrite sensitive data in order to render them unrecoverable.
+</span><br style="text-align:left">
+<br style="text-align:left">
+If you believe that an adversary will be able to decrypt the volume (for example that he will make you reveal the password), then the answer is yes. Otherwise, it is not necessary, because the volume is entirely encrypted.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">How does VeraCrypt know which encryption algorithm my VeraCrypt volume has been encrypted with?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please see the section <a href="Encryption%20Scheme.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a> (chapter <a href="Technical%20Details.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Technical Details</a>) in the <a href="https://www.veracrypt.fr/en/Documentation.html" target="_blank" style="text-align:left; color:#0080c0; text-decoration:none">
+documentation</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">How can I perform a Windows built-in backup on a VeraCrypt volume? The VeraCrypt volume doesn't show up in the list of available backup paths.<br>
+</strong>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Windows built-in backup utility looks only for physical driver, that's why it doesn't display the VeraCrypt volume. Nevertheless, you can still backup on a VeraCrypt volume by using a trick: activate sharing on the VeraCrypt volume through Explorer interface
+ (of course, you have to put the correct permission to avoid unauthorized access) and then choose the option &quot;Remote shared folder&quot; (it is not remote of course but Windows needs a network path). There you can type the path of the shared drive (for example \\ServerName\sharename)
+ and the backup will be configured correctly.</div>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Is the encryption used by VeraCrypt vulnerable to Quantum attacks?</strong>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt uses block ciphers (AES, Serpent, Twofish) for its encryption. Quantum attacks against these block ciphers are just a faster brute-force since the best know attack against these algorithms is exhaustive search (related keys attacks are irrelevant
+ to our case because all keys are random and independent from each other).<br>
+Since VeraCrypt always uses 256-bit random and independent keys, we are assured of a 128-bit security<br>
+level against quantum algorithms which makes VeraCrypt encryption immune to such attacks.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong>How to make a VeraCrypt volume available for Windows Search indexing?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In order to be able to index a VeraCrypt volume through Windows Search, the volume must be mounted at boot time (System Favorite) or the Windows Search services must be restart after the volume is mounted. This is needed because Windows Search can only index
+ drives that are available when it starts.</div>
+<strong style="text-align:left">I haven't found any answer to my question in the FAQ &ndash; what should I do?</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please search the VeraCrypt documentation and website.</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Favorite Volumes.html b/doc/html/Favorite Volumes.html
new file mode 100644
index 0000000..a813f84
--- /dev/null
+++ b/doc/html/Favorite Volumes.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Volume.html">VeraCrypt Volume</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Favorite%20Volumes.html">Favorite Volumes</a>
+</p></div>
+
+<div class="wikidoc">
+<h2 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:14px; margin-bottom:17px">
+Favorite Volumes</h2>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>Favorite volumes are useful, for example, in any the following cases:</p>
+<ul>
+<li>You have a volume that always needs to be <strong>mounted to a particular drive letter</strong>.
+</li><li>You have a volume that needs to be <strong>automatically mounted when its host device gets connected to the computer
+</strong>(for example, a container located on a USB flash drive or external USB hard drive).
+</li><li>You have a volume that needs to be <strong>automatically mounted when you log on
+</strong>to the operating system. </li><li>You have a volume that always needs to be <strong>mounted as read-only </strong>
+or removable medium. </li></ul>
+<h3>To configure a VeraCrypt volume as a favorite volume, follow these steps:</h3>
+<ol>
+<li>Mount the volume (to the drive letter to which you want it to be mounted every time).
+</li><li>Right-click the mounted volume in the drive list in the main VeraCrypt window and select &lsquo;<em>Add to Favorites</em>&rsquo;.
+</li><li>The Favorite Volumes Organizer window should appear now. In this window, you can set various options for the volume (see below).
+</li><li>Click <em>OK</em>. </li></ol>
+<strong>Favorite volumes can be mounted in several ways: </strong>To mount all favorite volumes, select
+<em>Favorites </em>&gt; <em>Mount Favorite Volumes </em>or press the &lsquo;<em>Mount Favorite Volumes</em>&rsquo; hot key (<em>Settings
+</em>&gt; <em>Hot Keys</em>). To mount only one of the favorite volumes, select it from the list contained in the
+<em>Favorites </em>menu. When you do so, you are asked for its password (and/or keyfiles) (unless it is cached) and if it is correct, the volume is mounted. If it is already mounted, an Explorer window is opened for it.
+<h3>Selected or all favorite volumes can be mounted automatically whenever you log on to Windows</h3>
+<p>To set this up, follow these steps:</p>
+<ol>
+<li>Mount the volume you want to have mounted automatically when you log on (mount it to the drive letter to which you want it to be mounted every time).
+</li><li>Right-click the mounted volume in the drive list in the main VeraCrypt window and select &lsquo;<em>Add to Favorites</em>&rsquo;.
+</li><li>The Favorites Organizer window should appear now. In this window, enable the option &lsquo;<em>Mount selected volume upon logon</em>&rsquo; and click
+<em>OK</em>. </li></ol>
+<p>Then, when you log on to Windows, you will be asked for the volume password (and/or keyfiles) and if it is correct, the volume will be mounted.<br>
+<br>
+Note: VeraCrypt will not prompt you for a password if you have enabled caching of the pre-boot authentication password (<em>Settings
+</em>&gt; &lsquo;<em>System Encryption</em>&rsquo;) and the volumes use the same password as the system partition/drive.</p>
+<p>Selected or all favorite volumes can be mounted automatically whenever its host device gets connected to the computer. To set this up, follow these steps:</p>
+<ol>
+<li>Mount the volume (to the drive letter to which you want it to be mounted every time).
+</li><li>Right-click the mounted volume in the drive list in the main VeraCrypt window and select &lsquo;<em>Add to Favorites</em>&rsquo;.
+</li><li>The Favorites Organizer window should appear now. In this window, enable the option &lsquo;<em>Mount selected volume when its host device gets connected</em>&rsquo; and click
+<em>OK</em>. </li></ol>
+<p>Then, when you insert e.g. a USB flash drive on which a VeraCrypt volume is located into the USB port, you will be asked for the volume password (and/or keyfiles) (unless it is cached) and if it is correct, the volume will be mounted.<br>
+<br>
+Note: VeraCrypt will not prompt you for a password if you have enabled caching of the pre-boot authentication password (<em>Settings
+</em>&gt; &lsquo;<em>System Encryption</em>&rsquo;) and the volume uses the same password as the system partition/drive.</p>
+<p>A special label can be assigned to each favorite volume. This label is not the same as the filesystem label and it is shown within the VeraCrypt user interface instead of the volume path. To assign such a label, follow these steps:</p>
+<ol>
+<li>Select <em>Favorites </em>&gt; &lsquo;<em>Organize Favorite Volumes</em>&rsquo;.
+</li><li>The Favorite Volumes Organizer window should appear now. In this window, select the volume whose label you want to edit.
+</li><li>Enter the label in the &lsquo;<em>Label of selected favorite volume</em>&rsquo; input field and click OK.
+</li></ol>
+<p>Note that the Favorite Volumes Organizer window (<em>Favorites </em>&gt; &lsquo;<em>Organize Favorite Volumes</em>&rsquo;) allows you to
+<strong>set various other options for each favorite volume</strong>. For example, any of them can be mounted as read-only or as removable medium. To set any of these options, follow these steps:</p>
+<ol>
+<li>Select <em>Favorites </em>&gt; &lsquo;<em>Organize Favorite Volumes</em>&rsquo;.
+</li><li>The Favorite Volumes Organizer window should appear now. In this window, select the volume whose options you want to set.
+</li><li>Set the options and click OK. </li></ol>
+<p>The order in which system favorite volumes are displayed in the Favorites Organizer window (<em>Favorites
+</em>&gt; &lsquo;<em>Organize Favorite Volumes</em>&rsquo;) is <strong>the order in which the volumes are mounted
+</strong>when you select <em>Favorites </em>&gt; <em>Mount Favorite Volumes </em>
+or when you press the &lsquo;<em>Mount Favorite Volumes</em>&rsquo; hotkey (<em>Settings
+</em>&gt; <em>Hot Keys</em>). You can use the <em>Move Up </em>and <em>Move Down </em>
+buttons to change the order of the volumes.<br>
+<br>
+Note that a favorite volume can also be a <strong>partition that is within the key scope of system encryption mounted without pre-boot authentication
+</strong>(for example, a partition located on the encrypted system drive of another operating system that is not running). When you mount such a volume and add it to favorites, you will no longer have to select
+<em>System </em>&gt; <em>Mount Without Pre-Boot Authentication </em>or to enable the mount option &lsquo;<em>Mount partition using system encryption without pre- boot authentication</em>&rsquo;. You can simply mount the favorite volume (as explained above)
+ without setting any options, as the mode in which the volume is mounted is saved in the configuration file containing the list of your favorite volumes.</p>
+<p>Warning: When the drive letter assigned to a favorite volume (saved in the configuration file) is not free, the volume is not mounted and no error message is displayed.<br>
+<br>
+<strong>To remove a volume form the list of favorite volumes</strong>, select <em>
+Favorites </em>&gt; <em>Organize Favorite Volumes</em>, select the volume, click <em>
+Remove</em>, and click OK.</p>
+<p>&nbsp;</p>
+<p><a href="System%20Favorite%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div>
+</body></html>
diff --git a/doc/html/Hardware Acceleration.html b/doc/html/Hardware Acceleration.html
new file mode 100644
index 0000000..76afc60
--- /dev/null
+++ b/doc/html/Hardware Acceleration.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hardware%20Acceleration.html">Hardware Acceleration</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Hardware Acceleration</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Some processors (CPUs) support hardware-accelerated <a href="AES.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+AES</a> encryption,* which is typically 4-8 times faster than encryption performed by the purely software implementation on the same processors.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+By default, VeraCrypt uses hardware-accelerated AES on computers that have a processor where the Intel AES-NI instructions are available. Specifically, VeraCrypt uses the AES-NI instructions that perform so-called AES rounds (i.e. the main portions of the AES
+ algorithm).** VeraCrypt does not use any of the AES-NI instructions that perform key generation.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: By default, VeraCrypt uses hardware-accelerated AES also when an encrypted Windows system is booting or resuming from hibernation (provided that the processor supports the Intel AES-NI instructions).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To find out whether VeraCrypt can use hardware-accelerated AES on your computer, select
+<em style="text-align:left">Settings</em> &gt; <em style="text-align:left">Performance/</em><em>Driver Configuration</em> and check the field labeled '<em style="text-align:left">Processor (CPU) in this computer supports hardware acceleration for AES</em>'.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To find out whether a processor you want to purchase supports the Intel AES-NI instructions (also called &quot;AES New Instructions&quot;), which VeraCrypt uses for hardware-accelerated AES, please check the documentation for the processor or contact the vendor/manufacturer.
+ Alternatively, click <a href="http://ark.intel.com/search/advanced/?AESTech=true" style="text-align:left; color:#0080c0; text-decoration:none">
+here</a> to view an official list of Intel processors that support the AES-NI instructions. However, note that some Intel processors, which the Intel website lists as AES-NI-supporting, actually support the AES-NI instructions only with a Processor Configuration
+ update (for example, i7-2630/2635QM, i7-2670/2675QM, i5-2430/2435M, i5-2410/2415M). In such cases, you should contact the manufacturer of the motherboard/computer for a BIOS update that includes the latest Processor Configuration update for the processor.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If you want to disable hardware acceleration of AES (e.g. because you want VeraCrypt to use only a fully open-source implementation of AES), you can do so by selecting<em style="text-align:left"> Settings</em> &gt;
+<em style="text-align:left">Performance and Driver Options </em>and disabling the option '<em style="text-align:left">Accelerate AES encryption/decryption by using the AES instructions of the processor</em>'. Note that when this setting is changed, the operating
+ system needs to be restarted to ensure that all VeraCrypt components internally perform the requested change of mode. Also note that when you create a VeraCrypt Rescue Disk, the state of this option is written to the Rescue Disk and used whenever you boot
+ from it (affecting the pre-boot and initial boot phase). To create a new VeraCrypt Rescue Disk, select
+<em style="text-align:left">System</em> &gt; <em style="text-align:left">Create Rescue Disk</em>.</div>
+<p>&nbsp;</p>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* In this chapter, the word 'encryption' also refers to decryption.</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">** Those instructions are
+<em style="text-align:left">AESENC</em>, <em style="text-align:left">AESENCLAST</em>,
+<em style="text-align:left">AESDEC</em>, and <em style="text-align:left">AESDECLAST</em> and they perform the following AES transformations:
+<em style="text-align:left">ShiftRows</em>, <em style="text-align:left">SubBytes</em>,
+<em style="text-align:left">MixColumns</em>, <em style="text-align:left">InvShiftRows</em>,
+<em style="text-align:left">InvSubBytes</em>, <em style="text-align:left">InvMixColumns</em>, and
+<em style="text-align:left">AddRoundKey</em> (for more details about these transformations, see [3])</span><span style="text-align:left; font-size:10px; line-height:12px">.</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Hash Algorithms.html b/doc/html/Hash Algorithms.html
new file mode 100644
index 0000000..c8f4131
--- /dev/null
+++ b/doc/html/Hash Algorithms.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hash%20Algorithms.html">Hash Algorithms</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Hash Algorithms</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In the Volume Creation Wizard, in the password change dialog window, and in the Keyfile Generator dialog window, you can select a hash algorithm. A user-selected hash algorithm is used by the VeraCrypt Random Number Generator as a pseudorandom &quot;mixing&quot; function,
+ and by the header key derivation function (HMAC based on a hash function, as specified in PKCS #5 v2.0) as a pseudorandom function. When creating a new volume, the Random Number Generator generates the master key, secondary key (XTS mode), and salt. For more
+ information, please see the section <a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Random Number Generator</a> and section <a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Header Key Derivation, Salt, and Iteration Count</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt currently supports the following hash algorithms:</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">
+<a href="RIPEMD-160.html"><strong style="text-align:left.html">RIPEMD-160</strong></a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="SHA-256.html"><strong style="text-align:left.html">SHA-256</strong></a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="SHA-512.html"><strong style="text-align:left.html">SHA-512</strong></a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Whirlpool.html"><strong style="text-align:left.html">Whirlpool</strong></a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left"><a href="Streebog.html">Streebog</a></strong>
+</li></ul>
+<p><a href="RIPEMD-160.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Header Key Derivation.html b/doc/html/Header Key Derivation.html
new file mode 100644
index 0000000..b9454cd
--- /dev/null
+++ b/doc/html/Header Key Derivation.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Header%20Key%20Derivation.html">Header Key Derivation, Salt, and Iteration Count</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Header Key Derivation, Salt, and Iteration Count</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Header key is used to encrypt and decrypt the encrypted area of the VeraCrypt volume header (for
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a>, of the keydata area), which contains the master key and other data (see the sections
+<a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a> and <a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Volume Format Specification</a>). In volumes created by VeraCrypt (and for
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a>), the area is encrypted in XTS mode (see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Modes of Operation</a>). The method that VeraCrypt uses to generate the header key and the secondary header key (XTS mode) is PBKDF2, specified in PKCS #5 v2.0; see
+<a href="References.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+[7]</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+512-bit salt is used, which means there are 2<sup style="text-align:left; font-size:85%">512</sup> keys for each password. This significantly decreases vulnerability to 'off-line' dictionary/'rainbow table' attacks (pre-computing all the keys for a dictionary
+ of passwords is very difficult when a salt is used) [7]. The salt consists of random values generated by the
+<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt random number generator</a> during the volume creation process. The header key derivation function is based on HMAC-SHA-512, HMAC-SHA-256, HMAC-RIPEMD-160, or HMAC-Whirlpool (see [8, 9, 20, 22]) &ndash; the user selects which. The length of the derived
+ key does not depend on the size of the output of the underlying hash function. For example, a header key for the AES-256 cipher is always 256 bits long even if HMAC-RIPEMD-160 is used (in XTS mode, an additional 256-bit secondary header key is used; hence,
+ two 256-bit keys are used for AES-256 in total). For more information, refer to [7]. A large number of iterations of the key derivation function have to be performed to derive a header key, which increases the time necessary to perform an exhaustive search
+ for passwords (i.e., brute force attack)&nbsp;[7].</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>Prior to version 1.12, VeraCrypt always used a fixed number of iterations depending on the volume type and the derivation algorithm used:</p>
+<ul>
+<li>For system partition encryption (boot encryption), <strong>200000</strong> iterations are used for the HMAC-SHA-256 derivation function and
+<strong>327661</strong> iterations are used for HMAC-RIPEMD-160. </li><li>For standard containers and other partitions, <strong>655331</strong> iterations are used for HMAC-RIPEMD-160 and
+<strong>500000</strong> iterations are used for HMAC-SHA-512,&nbsp;HMAC-SHA-256 and HMAC-Whirlpool.
+</li></ul>
+<p>Starting from version 1.12, the <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
+PIM </a>field (<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">Personal Iterations Multiplier</a>) enables users to have more control over the number of iterations used by the key derivation function.</p>
+<p>When a <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
+PIM </a>value is not specified or if it is equal to zero, VeraCrypt uses the default values expressed above.</p>
+<p>When a <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
+PIM </a>value is given by the user, the number of iterations of the key derivation function is calculated as follows:</p>
+<ul>
+<li>For system encryption that doesn't use SHA-512 or Whirlpool: Iterations = <strong>PIM x 2048</strong>
+</li><li>For system encryption that uses SHA-512 or Whirlpool, non-system encryption and file containers: Iterations = <strong>15000 &#43; (PIM x 1000)</strong>
+</li></ul>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Header keys used by ciphers in a cascade are mutually independent, even though they are derived from a single password (to which keyfiles may have been applied). For example, for the AES-Twofish-Serpent cascade, the header key derivation function is instructed
+ to derive a 768-bit encryption key from a given password (and, for XTS mode, in addition, a 768-bit
+<em style="text-align:left">secondary</em> header key from the given password). The generated 768-bit header key is then split into three 256-bit keys (for XTS mode, the
+<em style="text-align:left">secondary</em> header key is split into three 256-bit keys too, so the cascade actually uses six 256-bit keys in total), out of which the first key is used by Serpent, the second key is used by Twofish, and the third by AES (in addition,
+ for XTS mode, the first secondary key is used by Serpent, the second secondary key is used by Twofish, and the third secondary key by AES). Hence, even when an adversary has one of the keys, he cannot use it to derive the other keys, as there is no feasible
+ method to determine the password from which the key was derived (except for brute force attack mounted on a weak password).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Hibernation File.html b/doc/html/Hibernation File.html
new file mode 100644
index 0000000..ac046dc
--- /dev/null
+++ b/doc/html/Hibernation File.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Data%20Leaks.html">Data Leaks</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hibernation%20File.html">Hibernation File</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Hibernation File</h1>
+<p>Note: The issue described below does not affect you if the system partition or system drive is encrypted<span>*
+</span>(for more information, see the chapter <a href="System%20Encryption.html">
+<em>System Encryption</em></a>) and if the hibernation file is located on one the partitions within the key scope of system encryption (which it typically is, by default), for example, on the partition where Windows is installed. When the computer hibernates,
+ data are encrypted on the fly before they are written to the hibernation file.</p>
+<p>When a computer hibernates (or enters a power-saving mode), the content of its system memory is written to a so-called hibernation file on the hard drive. You can configure VeraCrypt (<em>Settings</em> &gt;
+<em>Preferences</em> &gt; <em>Dismount all when: Entering power saving mode</em>) to automatically dismount all mounted VeraCrypt volumes, erase their master keys stored in RAM, and cached passwords (stored in RAM), if there are any, before a computer hibernates
+ (or enters a power-saving mode). However, keep in mind, that if you do not use system encryption (see the chapter
+<a href="System%20Encryption.html"><em>System Encryption</em></a>), VeraCrypt still cannot reliably prevent the contents of sensitive files opened in RAM from being saved unencrypted to a hibernation file. Note that
+ when you open a file stored on a VeraCrypt volume, for example, in a text editor, then the content of the file is stored unencrypted in RAM (and it may remain unencrypted in RAM until the computer is turned off).<br>
+<br>
+Note that when Windows enters Sleep mode, it may be actually configured to enter so-called Hybrid Sleep mode, which involves hibernation. Also note that the operating system may be configured to hibernate or enter the Hybrid Sleep mode when you click or select
+ &quot;Shut down&quot; (for more information, please see the documentation for your operating system).<br>
+<br>
+<strong>To prevent the issues described above</strong>, encrypt the system partition/drive (for information on how to do so, see the chapter
+<a href="System%20Encryption.html"><em>System Encryption</em></a>) and make sure that the hibernation file is located on one of the partitions within the key scope of system encryption (which it typically is, by default),
+ for example, on the partition where Windows is installed. When the computer hibernates, data will be encrypted on the fly before they are written to the hibernation file.</p>
+<p>Note: You may also want to consider creating a hidden operating system (for more information, see the section
+<a href="Hidden%20Operating%20System.html">
+<em>Hidden Operating System</em></a>)<span>.</span></p>
+<p>Alternatively, if you cannot use system encryption, disable or prevent hibernation on your computer at least for each session during which you work with any sensitive data and during which you mount a VeraCrypt volume.</p>
+<p><span>* </span>Disclaimer: As Windows XP and Windows 2003 do not provide any API for encryption of hibernation files, VeraCrypt has to modify undocumented components of Windows XP/2003 in order to allow users to encrypt hibernation files. Therefore, VeraCrypt
+ cannot guarantee that Windows XP/2003 hibernation files will always be encrypted. In response to our public complaint regarding the missing API, Microsoft began providing a public API for encryption of hibernation files on Windows Vista and later versions
+ of Windows. VeraCrypt has used this API and therefore is able to safely encrypt hibernation files under Windows Vista and later versions of Windows. Therefore, if you use Windows XP/2003 and want the hibernation file to be safely encrypted, we strongly recommend
+ that you upgrade to Windows Vista or later.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Hidden Operating System.html b/doc/html/Hidden Operating System.html
new file mode 100644
index 0000000..9d37abe
--- /dev/null
+++ b/doc/html/Hidden Operating System.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="System%20Encryption.html">System Encryption</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hidden%20Operating%20System.html">Hidden Operating System</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Hidden Operating System</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion). VeraCrypt allows you to create a hidden operating system whose existence should be impossible
+ to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password for the hidden operating system. For more information, see the section
+<a href="VeraCrypt%20Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a> in the chapter <a href="Plausible%20Deniability.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Plausible Deniability</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+&nbsp;</div>
+<p><a href="Supported%20Systems%20for%20System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</body></html>
diff --git a/doc/html/Hidden Volume.html b/doc/html/Hidden Volume.html
new file mode 100644
index 0000000..612cca7
--- /dev/null
+++ b/doc/html/Hidden Volume.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Plausible%20Deniability.html">Plausible Deniability</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hidden%20Volume.html">Hidden Volume</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Hidden Volume</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+It may happen that you are forced by somebody to reveal the password to an encrypted volume. There are many situations where you cannot refuse to reveal the password (for example, due to extortion). Using a so-called hidden volume allows you to solve such situations
+ without revealing the password to your volume.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<img src="Beginner's Tutorial_Image_024.gif" alt="The layout of a standard VeraCrypt volume before and after a hidden volume was created within it." width="606" height="412"></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">The layout of a standard VeraCrypt volume before and after a hidden volume was created within it.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+The principle is that a VeraCrypt volume is created within another VeraCrypt volume (within the free space on the volume). Even when the outer volume is mounted, it should be impossible to prove whether there is a hidden volume within it or not*, because free
+ space on <em style="text-align:left">any </em>VeraCrypt volume is always filled with random data when the volume is created** and no part of the (dismounted) hidden volume can be distinguished from random data. Note that VeraCrypt does not modify the file
+ system (information about free space, etc.) within the outer volume in any way.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+The password for the hidden volume must be substantially different from the password for the outer volume. To the outer volume, (before creating the hidden volume within it) you should copy some sensitive-looking files that you actually do NOT want to hide.
+ These files will be there for anyone who would force you to hand over the password. You will reveal only the password for the outer volume, not for the hidden one. Files that really are sensitive will be stored on the hidden volume.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A hidden volume can be mounted the same way as a standard VeraCrypt volume: Click
+<em style="text-align:left">Select File</em> or <em style="text-align:left">Select Device
+</em>to select the outer/host volume (important: make sure the volume is <em style="text-align:left">
+not</em> mounted). Then click <em style="text-align:left">Mount</em>, and enter the password for the hidden volume. Whether the hidden or the outer volume will be mounted is determined by the entered password (i.e., when you enter the password for the outer
+ volume, then the outer volume will be mounted; when you enter the password for the hidden volume, the hidden volume will be mounted).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt first attempts to decrypt the standard volume header using the entered password. If it fails, it loads the area of the volume where a hidden volume header can be stored (i.e. bytes 65536&ndash;131071, which contain solely random data when there is
+ no hidden volume within the volume) to RAM and attempts to decrypt it using the entered password. Note that hidden volume headers cannot be identified, as they appear to consist entirely of random data. If the header is successfully decrypted (for information
+ on how VeraCrypt determines that it was successfully decrypted, see the section <a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a>), the information about the size of the hidden volume is retrieved from the decrypted header (which is still stored in RAM), and the hidden volume is mounted (its size also determines its offset).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A hidden volume can be created within any type of VeraCrypt volume, i.e., within a file-hosted volume or partition/device-hosted volume (requires administrator privileges). To create a hidden VeraCrypt volume, click on
+<em style="text-align:left">Create Volume </em>in the main program window and select
+<em style="text-align:left">Create a hidden VeraCrypt volume</em>. The Wizard will provide help and all information necessary to successfully create a hidden VeraCrypt volume.</div>
+<div id="hidden_volume_size_issue" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When creating a hidden volume, it may be very difficult or even impossible for an inexperienced user to set the size of the hidden volume such that the hidden volume does not overwrite data on the outer volume. Therefore, the Volume Creation Wizard automatically
+ scans the cluster bitmap of the outer volume (before the hidden volume is created within it) and determines the maximum possible size of the hidden volume.***</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If there are any problems when creating a hidden volume, refer to the chapter <a href="Troubleshooting.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Troubleshooting</a> for possible solutions.<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+Note that it is also possible to create and boot an operating system residing in a hidden volume (see the section
+<a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a> in the chapter <a href="Plausible%20Deniability.html">
+Plausible Deniability</a>).</div>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* Provided that all the instructions in the VeraCrypt Volume Creation Wizard have been followed and provided that the requirements and precautions listed in the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions Pertaining to Hidden Volumes</a> are followed<em style="text-align:left">.</em></span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">** Provided that the options
+<em style="text-align:left">Quick Format</em> and <em style="text-align:left">Dynamic</em> are disabled and provided that the volume does not contain a filesystem that has been encrypted in place (VeraCrypt does not allow the user to create a hidden volume
+ within such a volume). For information on the method used to fill free volume space with random data, see chapter
+<a href="Technical%20Details.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Technical Details</a>, section <a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Volume Format Specification</a><em style="text-align:left">.</em></span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">*** The wizard scans the cluster bitmap to determine the size of the uninterrupted area of free space (if there is any) whose end is aligned with the end of the outer volume. This area accommodates
+ the hidden volume and therefore the size of this area limits the maximum possible size of the hidden volume. On Linux and Mac OS X, the wizard actually does not scan the cluster bitmap, but the driver detects any data written to the outer volume and uses their
+ position as previously described.</span></p>
+<p>&nbsp;</p>
+<p><a href="Protection%20of%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html>
diff --git a/doc/html/Home_VeraCrypt_Default_Mount_Parameters.png b/doc/html/Home_VeraCrypt_Default_Mount_Parameters.png
new file mode 100644
index 0000000..8481ef3
--- /dev/null
+++ b/doc/html/Home_VeraCrypt_Default_Mount_Parameters.png
Binary files differ
diff --git a/doc/html/Home_VeraCrypt_menu_Default_Mount_Parameters.png b/doc/html/Home_VeraCrypt_menu_Default_Mount_Parameters.png
new file mode 100644
index 0000000..2cf2665
--- /dev/null
+++ b/doc/html/Home_VeraCrypt_menu_Default_Mount_Parameters.png
Binary files differ
diff --git a/doc/html/Home_facebook_veracrypt.png b/doc/html/Home_facebook_veracrypt.png
new file mode 100644
index 0000000..42f39af
--- /dev/null
+++ b/doc/html/Home_facebook_veracrypt.png
Binary files differ
diff --git a/doc/html/Home_reddit.png b/doc/html/Home_reddit.png
new file mode 100644
index 0000000..32db76b
--- /dev/null
+++ b/doc/html/Home_reddit.png
Binary files differ
diff --git a/doc/html/Home_tibitDonateButton.png b/doc/html/Home_tibitDonateButton.png
new file mode 100644
index 0000000..6042cab
--- /dev/null
+++ b/doc/html/Home_tibitDonateButton.png
Binary files differ
diff --git a/doc/html/Home_utilities-file-archiver-3.png b/doc/html/Home_utilities-file-archiver-3.png
new file mode 100644
index 0000000..c2d97fc
--- /dev/null
+++ b/doc/html/Home_utilities-file-archiver-3.png
Binary files differ
diff --git a/doc/html/Hot Keys.html b/doc/html/Hot Keys.html
new file mode 100644
index 0000000..af31f46
--- /dev/null
+++ b/doc/html/Hot Keys.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hot%20Keys.html">Hot Keys</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Hot Keys</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+To set system-wide VeraCrypt hot keys, click Settings -&gt; Hot Keys. Note that hot keys work only when VeraCrypt or the VeraCrypt Background Task is running.</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/How to Back Up Securely.html b/doc/html/How to Back Up Securely.html
new file mode 100644
index 0000000..5f6282d
--- /dev/null
+++ b/doc/html/How to Back Up Securely.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="How%20to%20Back%20Up%20Securely.html">How to Back Up Securely</a>
+</p></div>
+<div class="wikidoc">
+<div>
+<h2>How to Back Up Securely</h2>
+<p>Due to hardware or software errors/malfunctions, files stored on a VeraCrypt volume may become corrupted. Therefore, we strongly recommend that you backup all your important files regularly (this, of course, applies to any important data, not just to encrypted
+ data stored on VeraCrypt volumes).</p>
+<h3>Non-System Volumes</h3>
+<p>To back up a non-system VeraCrypt volume securely, it is recommended to follow these steps:</p>
+<ol>
+<li>Create a new VeraCrypt volume using the VeraCrypt Volume Creation Wizard (do not enable the
+<em>Quick Format</em> option or the <em>Dynamic</em> option). It will be your <em>
+backup</em> volume so its size should match (or be greater than) the size of your
+<em>main</em> volume.<br>
+<br>
+If the <em>main</em> volume is a hidden VeraCrypt volume (see the section <a href="Hidden%20Volume.html">
+<em>Hidden Volume</em></a>), the <em>backup</em> volume must be a hidden VeraCrypt volume too. Before you create the hidden
+<em>backup</em> volume, you must create a new host (outer) volume for it without enabling the
+<em>Quick Format</em> option. In addition, especially if the <em>backup</em> volume is file-hosted, the hidden
+<em>backup</em> volume should occupy only a very small portion of the container and the outer volume should be almost completely filled with files (otherwise, the plausible deniability of the hidden volume might be adversely affected).
+</li><li>Mount the newly created <em>backup</em> volume. </li><li>Mount the <em>main</em> volume. </li><li>Copy all files from the mounted <em>main</em> volume directly to the mounted <em>
+backup</em> volume. </li></ol>
+<h4>IMPORTANT: If you store the backup volume in any location that an adversary can repeatedly access (for example, on a device kept in a bank&rsquo;s safe deposit box), you should repeat all of the above steps (including the step 1) each time you want to back
+ up the volume (see below).</h4>
+<p>If you follow the above steps, you will help prevent adversaries from finding out:</p>
+<ul>
+<li>Which sectors of the volumes are changing (because you always follow step 1). This is particularly important, for example, if you store the backup volume on a device kept in a bank&rsquo;s safe deposit box (or in any other location that an adversary can
+ repeatedly access) and the volume contains a hidden volume (for more information, see the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html">
+<em>Security Requirements and Precautions Pertaining to Hidden Volumes</em></a> in the chapter
+<a href="Plausible%20Deniability.html"><em>Plausible Deniability</em></a>).
+</li><li>That one of the volumes is a backup of the other. </li></ul>
+<h3>System Partitions</h3>
+<p>Note: In addition to backing up files, we recommend that you also back up your VeraCrypt Rescue Disk (select
+<em>System</em> &gt; <em>Create Rescue Disk</em>). For more information, see the section Vera<em>Crypt Rescue Disk</em>.</p>
+<p>To back up an encrypted system partition securely and safely, it is recommended to follow these steps:</p>
+<ol>
+<li>If you have multiple operating systems installed on your computer, boot the one that does not require pre-boot authentication.<br>
+<br>
+If you do not have multiple operating systems installed on your computer, you can boot a WinPE or BartPE CD/DVD (&lsquo;live&rsquo; Windows entirely stored on and booted from a CD/DVD; for more information, search the section
+<a href="FAQ.html"><em>Frequently Asked Questions</em></a> for the keyword &lsquo;BartPE&rsquo;).<br>
+<br>
+If none of the above is possible, connect your system drive as a secondary drive to another computer and then boot the operating system installed on the computer.<br>
+<br>
+Note: For security reasons, if the operating system that you want to back up resides in a hidden VeraCrypt volume (see the section
+<a href="Hidden%20Operating%20System.html">
+<em>Hidden Operating System</em></a>), then the operating system that you boot in this step must be either another hidden operating system or a &quot;live- CD&quot; operating system (see above). For more information, see the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html">
+<em>Security Requirements and Precautions Pertaining to Hidden Volumes</em></a> in the chapter
+<a href="Plausible%20Deniability.html"><em>Plausible Deniability</em></a>.
+</li><li>Create a new non-system VeraCrypt volume using the VeraCrypt Volume Creation Wizard (do not enable the
+<em>Quick Format</em> option or the <em>Dynamic</em> option). It will be your <em>
+backup</em> volume so its size should match (or be greater than) the size of the system partition that you want to back up.<br>
+<br>
+If the operating system that you want to back up is installed in a hidden VeraCrypt volume (see the section
+<em>Hidden Operating System</em>), the <em>backup</em> volume must be a hidden VeraCrypt volume too. Before you create the hidden
+<em>backup</em> volume, you must create a new host (outer) volume for it without enabling the
+<em>Quick Format</em> option. In addition, especially if the <em>backup</em> volume is file-hosted, the hidden
+<em>backup</em> volume should occupy only a very small portion of the container and the outer volume should be almost completely filled with files (otherwise, the plausible deniability of the hidden volume might be adversely affected).
+</li><li>Mount the newly created <em>backup</em> volume. </li><li>Mount the system partition that you want to back up by following these steps:
+<ol type="a">
+<li>Click <em>Select Device</em> and then select the system partition that you want to back up (in case of a hidden operating system, select the partition containing the hidden volume in which the operating system is installed).
+</li><li>Click <em>OK</em>. </li><li>Select <em>System</em> &gt; <em>Mount Without Pre-Boot Authentication</em>. </li><li>Enter your pre-boot authentication password and click <em>OK</em>. </li></ol>
+</li><li>Mount the <em>backup</em> volume and then use a third-party program or a Windows tool to create an image of the filesystem that resides on the system partition (which was mounted as a regular VeraCrypt volume in the previous step) and store the image directly
+ on the mounted backup volume. </li></ol>
+<h4>IMPORTANT: If you store the backup volume in any location that an adversary can repeatedly access (for example, on a device kept in a bank&rsquo;s safe deposit box), you should repeat all of the above steps (including the step 2) each time you want to back
+ up the volume (see below).</h4>
+<p>If you follow the above steps, you will help prevent adversaries from finding out:</p>
+<ul>
+<li>Which sectors of the volumes are changing (because you always follow step 2). This is particularly important, for example, if you store the backup volume on a device kept in a bank&rsquo;s safe deposit box (or in any other location that an adversary can
+ repeatedly access) and the volume contains a hidden volume (for more information, see the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html">
+<em>Security Requirements and Precautions Pertaining to Hidden Volumes</em></a> in the chapter
+<a href="Plausible%20Deniability.html"><em>Plausible Deniability</em></a>).
+</li><li>That one of the volumes is a backup of the other. </li></ul>
+<h3>General Notes</h3>
+<p>If you store the backup volume in any location where an adversary can make a copy of the volume, consider encrypting the volume with a cascade of ciphers (for example, with AES-Twofish- Serpent). Otherwise, if the volume is encrypted only with a single encryption
+ algorithm and the algorithm is later broken (for example, due to advances in cryptanalysis), the attacker might be able to decrypt his copies of the volume. The probability that three distinct encryption algorithms will be broken is significantly lower than
+ the probability that only one of them will be broken.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Incompatibilities.html b/doc/html/Incompatibilities.html
new file mode 100644
index 0000000..06de7db
--- /dev/null
+++ b/doc/html/Incompatibilities.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Incompatibilities.html">Incompatibilities</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Incompatibilities</h1>
+<h2>
+Activation of Adobe Photoshop&reg; and Other Products Using FLEXnet Publisher&reg; / SafeCast</h2>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Note: The issue described below does <strong style="text-align:left">
+not</strong> affect you if you use a non-cascade encryption algorithm (i.e., AES, Serpent, or Twofish).* The issue also does
+<strong style="text-align:left">not</strong> affect you if you do not use <a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a> (pre-boot authentication).</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Acresso FLEXnet Publisher activation software, formerly Macrovision SafeCast, (used for activation of third-party software, such as Adobe Photoshop) writes data to the first drive track. If this happens when your system partition/drive is encrypted by VeraCrypt,
+ a portion of the VeraCrypt Boot Loader will be damaged and you will not be able to start Windows. In that case, please use your
+<a href="VeraCrypt%20Rescue%20Disk.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Rescue Disk</a> to regain access to your system. There are two ways to do so:</div>
+<ol 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">
+You may keep the third-party software activated but you will need to boot your system from the VeraCrypt Rescue Disk CD/DVD
+<em style="text-align:left">every time</em>. Just insert your Rescue Disk into your CD/DVD drive and then enter your password in the Rescue Disk screen.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If you do not want to boot your system from the VeraCrypt Rescue Disk CD/DVD every time, you can restore the VeraCrypt Boot Loader on the system drive. To do so, in the Rescue Disk screen, select
+<em style="text-align:left">Repair Options</em> &gt; <em style="text-align:left">
+Restore VeraCrypt Boot Loader</em>. However, note that this will deactivate the third-party software.
+</li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+For information on how to use your VeraCrypt Rescue Disk, please see the chapter <a href="VeraCrypt%20Rescue%20Disk.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Rescue Disk</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible permanent solution</strong>: decrypt the system partition/drive, and then re-encrypt it using a non-cascade encryption algorithm (i.e., AES, Serpent, or Twofish).*</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Please note that this not a bug in VeraCrypt (the issue is caused by inappropriate design of the third-party activation software).</div>
+<h2>Outpost Firewall and Outpost Security Suite</h2>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If Outpost Firewall or Outpost Security Suite is installed with Proactive Protection enabled, the machine freezes completely for 5-10 seconds during the volume mount/dismount operation. This is caused by a conflict between Outpost System Guard option that protects "Active Desktop" objects and VeraCrypt waiting dialog displayed during mount/dismount operations.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A workaround that fixes this issue is to disable VeraCrypt waiting dialog in the Preferences: use menu "Settings -> Preferences" and check the option "Don't show wait message dialog when performing operations".</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+More information can be found at <a href="https://sourceforge.net/p/veracrypt/tickets/100/">https://sourceforge.net/p/veracrypt/tickets/100/</a>
+</div>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* The reason is that the VeraCrypt Boot Loader is smaller than the one used for cascades of ciphers and, therefore, there is enough space in the first drive track for a backup of the VeraCrypt
+ Boot Loader. Hence, whenever the VeraCrypt Boot Loader is damaged, its backup copy is run automatically instead.</span><br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+&nbsp;&nbsp;See also: <a href="Issues%20and%20Limitations.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">
+Known Issues &amp; Limitations</a>,&nbsp;&nbsp;<a href="Troubleshooting.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Troubleshooting</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Introduction.html b/doc/html/Introduction.html
new file mode 100644
index 0000000..9078386
--- /dev/null
+++ b/doc/html/Introduction.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Introduction.html">Introduction</a>
+</p>
+</div>
+
+<div class="wikidoc">
+<h1>Introduction</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt is a software for establishing and maintaining an on-the-fly-encrypted volume (data storage device). On-the-fly encryption means that data is automatically encrypted right before it is saved and decrypted right after it is loaded, without any user
+ intervention. No data stored on an encrypted volume can be read (decrypted) without using the correct password/keyfile(s) or correct encryption keys. Entire file system is encrypted (e.g., file names, folder names, contents of every file, free space, meta
+ data, etc).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Files can be copied to and from a mounted VeraCrypt volume just like they are copied to/from any normal disk (for example, by simple drag-and-drop operations). Files are automatically being decrypted on the fly (in memory/RAM) while they are being read or copied
+ from an encrypted VeraCrypt volume. Similarly, files that are being written or copied to the VeraCrypt volume are automatically being encrypted on the fly (right before they are written to the disk) in RAM. Note that this does
+<span style="text-align:left; font-style:italic">not</span> mean that the <span style="text-align:left; font-style:italic">
+whole</span> file that is to be encrypted/decrypted must be stored in RAM before it can be encrypted/decrypted. There are no extra memory (RAM) requirements for VeraCrypt. For an illustration of how this is accomplished, see the following paragraph.<br style="text-align:left">
+<br style="text-align:left">
+Let's suppose that there is an .avi video file stored on a VeraCrypt volume (therefore, the video file is entirely encrypted). The user provides the correct password (and/or keyfile) and mounts (opens) the VeraCrypt volume. When the user double clicks the icon
+ of the video file, the operating system launches the application associated with the file type &ndash; typically a media player. The media player then begins loading a small initial portion of the video file from the VeraCrypt-encrypted volume to RAM (memory)
+ in order to play it. While the portion is being loaded, VeraCrypt is automatically decrypting it (in RAM). The decrypted portion of the video (stored in RAM) is then played by the media player. While this portion is being played, the media player begins loading
+ another small portion of the video file from the VeraCrypt-encrypted volume to RAM (memory) and the process repeats. This process is called on-the-fly encryption/decryption and it works for all file types (not only for video files).</div>
+<p>Note that VeraCrypt never saves any decrypted data to a disk &ndash; it only stores them temporarily in RAM (memory). Even when the volume is mounted, data stored in the volume is still encrypted. When you restart Windows or turn off your computer, the volume
+ will be dismounted and files stored in it will be inaccessible (and encrypted). Even when power supply is suddenly interrupted (without proper system shut down), files stored in the volume are inaccessible (and encrypted). To make them accessible again, you
+ have to mount the volume (and provide the correct password and/or keyfile). For a quick start guide, please see the chapter Beginner's Tutorial.</p>
+</div>
+</body></html>
diff --git a/doc/html/Issues and Limitations.html b/doc/html/Issues and Limitations.html
new file mode 100644
index 0000000..ac9e8e9
--- /dev/null
+++ b/doc/html/Issues and Limitations.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Issues%20and%20Limitations.html">Known Issues and Limitations</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Known Issues &amp; Limitations</h1>
+<h3>Known Issues</h3>
+<ul>
+<li>On Windows, it may happen that two drive letters are assigned to a mounted volume instead of a single one. This is caused by an issue with Windows Mount Manager cache and it can be solve by typing the command &quot;<strong>mountvol.exe /r</strong>&quot; in an elevated
+ command prompt (run as an administrator) before mounting any volume. If the issue persists after rebooting, the following procedure can be used to solve it:
+<ul>
+<li>Check the registry key &quot;HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices&quot; using regedit. Scroll down and you'll find entries starting with &quot;\DosDevices\&quot; or &quot;\Global??\&quot; which indicate the drive letters that are taken by the system. Before mounting any volume,
+ double click on each one and remove the ones contains the name &quot;VeraCrypt&quot; and &quot;TrueCrypt&quot;.
+<br>
+Also, there are other entries whose name start with &quot;#{&quot; and &quot;\??\Volume{&quot;: double click on each one of them and remove the ones whose data value contains the name &quot;VeraCrypt&quot; and &quot;TrueCrypt&quot;.
+</li></ul>
+</li>
+<li>On some Windows machines, VeraCrypt may hang intermittently when mounting or dismounting a volume. Similar hanging may affect other running applications during veraCrypt mounting or dismounting operations.
+This issue is caused by a conflict between VeraCrypt waiting dialog displayed during mount/dismount operations and other software installed on the machine (e.g. Outpost Firewall Pro).
+In such situations, the issue can be solved by disabling VeraCrypt waiting dialog in the Preferences: use menu "Settings -> Preferences" and check the option "Don't show wait message dialog when performing operations".
+</li>
+</ul>
+<h3 id="limitations">Limitations</h3>
+<ul>
+<li>[<em>Note: This limitation does not apply to users of Windows Vista and later versions of Windows.</em>] On Windows XP/2003, VeraCrypt does not support encrypting an entire system drive that contains extended (logical) partitions. You can encrypt an entire
+ system drive provided that it contains only primary partitions. Extended (logical) partitions must not be created on any system drive that is partially or fully encrypted (only primary partitions may be created on it).
+<em>Note</em>: If you need to encrypt an entire drive containing extended partitions, you can encrypt the system partition and, in addition, create partition-hosted VeraCrypt volumes within any non- system partitions on the drive. Alternatively, you may want
+ to consider upgrading to Windows Vista or a later version of Windows. </li><li>VeraCrypt currently does not support encrypting a system drive that has been converted to a dynamic disk.
+</li><li>To work around a Windows XP issue, the VeraCrypt boot loader is always automatically configured for the version of the operating system under which it is installed. When the version of the system changes (for example, the VeraCrypt boot loader is installed
+ when Windows Vista is running but it is later used to boot Windows XP) you may encounter various known and unknown issues (for example, on some notebooks, Windows XP may fail to display the log-on screen). Note that this affects multi-boot configurations,
+ VeraCrypt Rescue Disks, and decoy/hidden operating systems (therefore, if the hidden system is e.g. Windows XP, the decoy system should be Windows XP too).
+</li><li>The ability to mount a partition that is within the key scope of system encryption without pre- boot authentication (for example, a partition located on the encrypted system drive of another operating system that is not running), which can be done e.g.
+ by selecting <em>System</em> &gt; <em>Mount Without Pre-Boot Authentication,</em> is limited to primary partitions (extended/logical partitions cannot be mounted this way).
+</li><li>Due to a Windows 2000 issue, VeraCrypt does not support the Windows Mount Manager under Windows 2000. Therefore, some Windows 2000 built-in tools, such as Disk Defragmenter, do not work on VeraCrypt volumes. Furthermore, it is not possible to use the Mount
+ Manager services under Windows 2000, e.g., assign a mount point to a VeraCrypt volume (i.e., attach a VeraCrypt volume to a folder).
+</li><li>VeraCrypt does not support pre-boot authentication for operating systems installed within VHD files, except when booted using appropriate virtual-machine software such as Microsoft Virtual PC.
+</li><li>The Windows Volume Shadow Copy Service is currently supported only for partitions within the key scope of system encryption (e.g. a system partition encrypted by VeraCrypt, or a non- system partition located on a system drive encrypted by VeraCrypt, mounted
+ when the encrypted operating system is running). Note: For other types of volumes, the Volume Shadow Copy Service is not supported because the documentation for the necessary API is not available.
+</li><li>Windows boot settings cannot be changed from within a hidden operating system if the system does not boot from the partition on which it is installed. This is due to the fact that, for security reasons, the boot partition is mounted as read-only when the
+ hidden system is running. To be able to change the boot settings, please start the decoy operating system.
+</li><li>Encrypted partitions cannot be resized except partitions on an entirely encrypted system drive that are resized while the encrypted operating system is running.
+</li><li id="SysEncUpgrade">When the system partition/drive is encrypted, the system cannot be upgraded (for example, from Windows XP to Windows Vista) or repaired from within the pre-boot environment (using a Windows setup CD/DVD or the Windows pre-boot component).
+ In such cases, the system partition/drive must be decrypted first. Note: A running operating system can be
+<em>updated</em> (security patches, service packs, etc.) without any problems even when the system partition/drive is encrypted.
+</li><li>System encryption is supported only on drives that are connected locally via an ATA/SCSI interface (note that the term ATA also refers to SATA and eSATA).
+</li><li>When system encryption is used (this also applies to hidden operating systems), VeraCrypt does not support multi-boot configuration changes (for example, changes to the number of operating systems and their locations). Specifically, the configuration must
+ remain the same as it was when the VeraCrypt Volume Creation Wizard started to prepare the process of encryption of the system partition/drive (or creation of a hidden operating system).<br>
+<br>
+Note: The only exception is the multi-boot configuration where a running VeraCrypt-encrypted operating system is always located on drive #0, and it is the only operating system located on the drive (or there is one VeraCrypt-encrypted decoy and one VeraCrypt-encrypted
+ hidden operating system and no other operating system on the drive), and the drive is connected or disconnected before the computer is turned on (for example, using the power switch on an external eSATA drive enclosure). There may be any additional operating
+ systems (encrypted or unencrypted) installed on other drives connected to the computer (when drive #0 is disconnected, drive #1 becomes drive #0, etc.)
+</li><li>When the notebook battery power is low, Windows may omit sending the appropriate messages to running applications when the computer is entering power saving mode. Therefore, VeraCrypt may fail to auto-dismount volumes in such cases.
+</li><li>Preserving of any timestamp of any file (e.g. a container or keyfile) is not guaranteed to be reliably and securely performed (for example, due to filesystem journals, timestamps of file attributes, or the operating system failing to perform it for various
+ documented and undocumented reasons). Note: When you write to a file-hosted hidden volume, the timestamp of the container may change. This can be plausibly explained as having been caused by changing the (outer) volume password. Also note that VeraCrypt never
+ preserves timestamps of system favorite volumes (regardless of the settings). </li><li>Special software (e.g., a low-level disk editor) that writes data to a disk drive in a way that circumvents drivers in the driver stack of the class &lsquo;DiskDrive&rsquo; (GUID of the class is 4D36E967- E325-11CE-BFC1-08002BE10318) can write unencrypted
+ data to a non-system drive hosting a mounted VeraCrypt volume (&lsquo;Partition0&rsquo;) and to encrypted partitions/drives that are within the key scope of active system encryption (VeraCrypt does not encrypt such data written that way). Similarly, software
+ that writes data to a disk drive circumventing drivers in the driver stack of the class &lsquo;Storage Volume&rsquo; (GUID of the class is 71A27CDD-812A-11D0-BEC7-08002BE2092F) can write unencrypted data to VeraCrypt partition-hosted volumes (even if they
+ are mounted). </li><li>For security reasons, when a hidden operating system is running, VeraCrypt ensures that all local unencrypted filesystems and non-hidden VeraCrypt volumes are read-only. However, this does not apply to filesystems on CD/DVD-like media and on custom, atypical,
+ or non-standard devices/media (for example, any devices/media whose class is other than the Windows device class &lsquo;Storage Volume&rsquo; or that do not meet the requirements of this class (GUID of the class is 71A27CDD-812A-11D0-BEC7-08002BE2092F)).
+</li><li>Device-hosted VeraCrypt volumes located on floppy disks are not supported. Note: You can still create file-hosted VeraCrypt volumes on floppy disks.
+</li><li>Windows Server editions don't allow the use of mounted VeraCrypt volumes as a path for server backup. This can solved by activating sharing on the VeraCrypt volume through Explorer interface (of course, you have to put the correct permission to avoid unauthorized
+ access) and then choosing the option &quot;Remote shared folder&quot; (it is not remote of course but Windows needs a network path). There, you can type the path of the shared drive (for example \\ServerName\sharename) and the backup will be configured correctly.
+</li><li>Due to Microsoft design flaws in NTFS sparse files handling, you may encounter system errors when writing data to large Dynamic volumes (more than few hundreds GB). To avoid this, the recommended size for a Dynamic volume container file for maximum compatibility
+ is 300 GB. The following link gives more details concerning this limitation: <a href="http://www.flexhex.com/docs/articles/sparse-files.phtml#msdn" target="_blank">
+http://www.flexhex.com/docs/articles/sparse-files.phtml#msdn</a> </li><li>Windows 8 introduced a new feature called &quot;<strong>Hybrid boot and shutdown</strong>&quot; to give users the impression that booting is quick. This feature is enabled by default and it has side effects on VeraCrypt volumes usage. It is advised to disable this
+ feature (e.g. this <a href="https://www.maketecheasier.com/disable-hybrid-boot-and-shutdown-in-windows-8/" target="_blank">
+link </a>explains how). Some examples of issues:
+<ul>
+<li>after a shutdown and a restart, mounted volume will continue to be mounted without typing the password: this due to the fact the new Windows 8 shutdown is not a real shutdown but a disguised hibernate/sleep.
+</li><li>when using system encryption and when there are System Favorites configured to be mounted at boot time: after shutdown and restart, these system favorites will not be mounted.
+</li></ul>
+</li><li>Windows system Repair/Recovery Disk can't be created when a VeraCrypt volume is mounted as a fixed disk (which is the default). To solve this, either dismount all volumes or mount volumes are removable media.
+</li><li>Further limitations are listed in the section <a href="Security%20Model.html">
+<em>Security Model</em></a>. </li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Journaling File Systems.html b/doc/html/Journaling File Systems.html
new file mode 100644
index 0000000..b04a6e4
--- /dev/null
+++ b/doc/html/Journaling File Systems.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Journaling%20File%20Systems.html">Journaling File Systems</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Journaling File Systems</h1>
+<p>When a file-hosted VeraCrypt container is stored in a journaling file system (such as NTFS or Ext3), a copy of the VeraCrypt container (or of its fragment) may remain in the free space on the host volume. This may have various security implications. For
+ example, if you change the volume password/keyfile(s) and an adversary finds the old copy or fragment (the old header) of the VeraCrypt volume, he might use it to mount the volume using an old compromised password (and/or using compromised keyfiles using an
+ old compromised password (and/or using compromised keyfiles that were necessary to mount the volume before the volume header was re- encrypted). Some journaling file systems also internally record file access times and other potentially sensitive information.
+ If you need plausible deniability (see section <a href="Plausible%20Deniability.html">
+<em>Plausible Deniability</em></a>), you must not store file-hosted VeraCrypt containers in journaling file systems. To prevent possible security issues related to journaling file systems, do one the following:</p>
+<ul>
+<li>Use a partition/device-hosted VeraCrypt volume instead of file-hosted. </li><li>Store the container in a non-journaling file system (for example, FAT32). </li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Keyfiles in VeraCrypt.html b/doc/html/Keyfiles in VeraCrypt.html
new file mode 100644
index 0000000..c64773b
--- /dev/null
+++ b/doc/html/Keyfiles in VeraCrypt.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Keyfiles%20in%20VeraCrypt.html">Keyfiles</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Keyfiles</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+Keyfile is a file whose content is combined with a password (for information on the method used to combine a keyfile with password, see the section
+<a href="Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Keyfiles</a> in the chapter <a href="Technical%20Details.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Technical Details</a>). Until the correct keyfile is provided, no volume that uses the keyfile can be mounted.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You do not have to use keyfiles. However, using keyfiles has some advantages:</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">
+May improve protection against brute force attacks (significant particularly if the volume password is not very strong).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Allows the use of security tokens and smart cards (see below). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Allows multiple users to mount a single volume using different user passwords or PINs. Just give each user a security token or smart card containing the same VeraCrypt keyfile and let them choose their personal password or PIN that will protect their security
+ token or smart card. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Allows managing multi-user <em style="text-align:left">shared</em> access (all keyfile holders must present their keyfiles before a volume can be mounted).
+</li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Any kind of file (for example, .txt, .exe, mp3**, .avi) can be used as a VeraCrypt keyfile (however, we recommend that you prefer compressed files, such as .mp3, .jpg, .zip, etc).
+<br style="text-align:left">
+<br style="text-align:left">
+Note that VeraCrypt never modifies the keyfile contents. You can select more than one keyfile; the order does not matter. You can also let VeraCrypt generate a file with random content and use it as a keyfile. To do so, select
+<em style="text-align:left">Tools &gt; Keyfile Generator</em>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: Keyfiles are currently not supported for system encryption.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+WARNING: If you lose a keyfile or if any bit of its first 1024 kilobytes changes, it will be impossible to mount volumes that use the keyfile!</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left"><strong style="text-align:left">WARNING: If password caching is enabled, the password cache also contains the processed contents of keyfiles used to successfully mount a volume. Then it is possible to remount the volume even if the
+ keyfile is not available/accessible.</strong> To prevent this, click '</em>Wipe Cache<em style="text-align:left">' or disable password caching (for more information, please see the subsection
+</em>'Settings -&gt; Preferences'<em style="text-align:left">, item </em>'Cache passwords in driver memory'<em style="text-align:left"> in the section
+</em><a href="Program%20Menu.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Program Menu</a>).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+See also the section <a href="Choosing%20Passwords%20and%20Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Choosing Passwords and Keyfiles</a> in the chapter <a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions</a>.</div>
+<p>&nbsp;</p>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Keyfiles Dialog Window</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If you want to use keyfiles (i.e. &quot;apply&quot; them) when creating or mounting volumes, or changing passwords, look for the '<em style="text-align:left">Use keyfiles</em>' option and the
+<em style="text-align:left">Keyfiles</em> button below a password input field.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<img src="Keyfiles in VeraCrypt_Image_040.gif" alt="VeraCrypt Keyfiles dialog" width="450" height="164"></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+These control elements appear in various dialog windows and always have the same functions. Check the
+<em style="text-align:left">Use keyfiles </em>option and click <em style="text-align:left">
+Keyfiles. </em>The keyfile dialog window should appear where you can specify keyfiles (to do so, click
+<em style="text-align:left">Add File</em>s or <em style="text-align:left">Add Token Files</em>)<em style="text-align:left"> or</em> keyfile search paths (click
+<em style="text-align:left">Add Path</em>).</div>
+<p>&nbsp;</p>
+<h3 id="SmartCard" style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Security Tokens and Smart Cards</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt can directly use keyfiles stored on a security token or smart card that complies with the PKCS&nbsp;#11 (2.0 or later) standard [23] and that allows the user to store a file (data object) on the token/card. To use such files as VeraCrypt keyfiles,
+ click <em style="text-align:left">Add Token Files</em> (in the keyfile dialog window).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Access to a keyfile stored on a security token or smart card is typically protected by PIN codes, which can be entered either using a hardware PIN pad or via the VeraCrypt GUI. It can also be protected by other means, such as fingerprint readers.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In order to allow VeraCrypt to access a security token or smart card, you need to install a PKCS #11 (2.0 or later) software library for the token or smart card first. Such a library may be supplied with the device or it may be available for download from the
+ website of the vendor or other third parties.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If your security token or smart card does not contain any file (data object) that you could use as a VeraCrypt keyfile, you can use VeraCrypt to import any file to the token or smart card (if it is supported by the device). To do so, follow these steps:</div>
+<ol 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">
+In the keyfile dialog window, click <em style="text-align:left">Add Token Files</em>.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If the token or smart card is protected by a PIN, password, or other means (such as a fingerprint reader), authenticate yourself (for example, by entering the PIN using a hardware PIN pad).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The 'Security Token Keyfile' dialog window should appear. In it, click <em style="text-align:left">
+Import Keyfile to Token</em> and then select the file you want to import to the token or smart card.
+</li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note that you can import for example 512-bit keyfiles with random content generated by VeraCrypt (see
+<em style="text-align:left">Tools &gt; Keyfile Generator</em> below).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To close all opened security token sessions, either select <em style="text-align:left">
+Tools</em> &gt; <em style="text-align:left">Close All Security Token Sessions</em> or define and use a hotkey combination (<em style="text-align:left">Settings</em> &gt;
+<em style="text-align:left">Hot Keys &gt; Close All Security Token Sessions</em>).</div>
+<p>&nbsp;</p>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Keyfile Search Path</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+By adding a folder in the keyfile dialog window (click <em style="text-align:left">
+Add Path</em>), you specify a <em style="text-align:left">keyfile search path</em>. All files found in the keyfile search path* will be used as keyfiles except files that have the Hidden file attribute set.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left"><em style="text-align:left">Important: Note that folders (and files they contain) and hidden files found in a keyfile search path are ignored.</em></strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Keyfile search paths are especially useful if you, for example, store keyfiles on a USB memory stick that you carry with you. You can set the drive letter of the USB memory stick as a default keyfile search path. To do so, select
+<em style="text-align:left">Settings </em>-&gt; <em style="text-align:left">Default Keyfiles</em>. Then click
+<br style="text-align:left">
+<em style="text-align:left">Add Path</em>, browse to the drive letter assigned to the USB memory stick, and click
+<em style="text-align:left">OK</em>. Now each time you mount a volume (and if the option
+<em style="text-align:left">Use keyfiles</em> is checked in the password dialog window), VeraCrypt will scan the path and use all files that it finds on the USB memory stick as keyfiles.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left"><em style="text-align:left">WARNING: When you add a folder (as opposed to a file) to the list of keyfiles, only the path is remembered, not the filenames! This means e.g. that if you create a new file in the folder or if you
+ copy an additional file to the folder, then all volumes that used keyfiles from the folder will be impossible to mount (until you remove the newly added file from the folder).
+</em></strong></div>
+<p>&nbsp;</p>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Empty Password &amp; Keyfile</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When a keyfile is used, the password may be empty, so the keyfile may become the only item necessary to mount the volume (which we do not recommend). If default keyfiles are set and enabled when mounting a volume, then before prompting for a password, VeraCrypt
+ first automatically attempts to mount using an empty password plus default keyfiles (however, this does not apply to the '<em style="text-align:left">Auto-Mount Devices</em>' function). If you need to set Mount Options (e.g., mount as read-only, protect hidden
+ volume etc.) for a volume being mounted this way, hold down the <em style="text-align:left">
+Control </em>(<em style="text-align:left">Ctrl</em>) key while clicking <em style="text-align:left">
+Mount </em>(or select <em style="text-align:left">Mount with Options </em>from the
+<em style="text-align:left">Volumes </em>menu). This will open the <em style="text-align:left">
+Mount Options </em>dialog.</div>
+<p>&nbsp;</p>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Quick Selection</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Keyfiles and keyfile search paths can be quickly selected in the following ways:</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">
+Right-click the <em style="text-align:left">Keyfiles</em> button in the password entry dialog window and select one of the menu items.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Drag the corresponding file/folder icons to the keyfile dialog window or to the password entry dialog.
+</li></ul>
+<p>&nbsp;</p>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Volumes -&gt; Add/Remove Keyfiles to/from Volume</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+This function allows you to re-encrypt a volume header with a header encryption key derived from any number of keyfiles (with or without a password), or no keyfiles at all. Thus, a volume which is possible to mount using only a password can be converted to
+ a volume that require keyfiles (in addition to the password) in order to be possible to mount. Note that the volume header contains the master encryption key with which the volume is encrypted. Therefore, the data stored on the volume will
+<em style="text-align:left">not</em> be lost after you use this function.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+This function can also be used to change/set volume keyfiles (i.e., to remove some or all keyfiles, and to apply new ones).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Remark: This function is internally equal to the Password Change function.<br style="text-align:left">
+<br style="text-align:left">
+When VeraCrypt re-encrypts a volume header, the original volume header is first overwritten 256 times with random data to prevent adversaries from using techniques such as magnetic force microscopy or magnetic force scanning tunneling microscopy [17] to recover
+ the overwritten header (however, see also the chapter <a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions</a>).</div>
+<p>&nbsp;</p>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Volumes -&gt; Remove All Keyfiles from Volume</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+This function allows you to re-encrypt a volume header with a header encryption key derived from a password and no keyfiles (so that it can be mounted using only a password, without any keyfiles). Note that the volume header contains the master encryption key
+ with which the volume is encrypted. Therefore, the data stored on the volume will
+<em style="text-align:left">not</em> be lost after you use this function.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Remark: This function is internally equal to the Password Change function.<br style="text-align:left">
+<br style="text-align:left">
+When VeraCrypt re-encrypts a volume header, the original volume header is first overwritten 256 times with random data to prevent adversaries from using techniques such as magnetic force microscopy or magnetic force scanning tunneling microscopy [17] to recover
+ the overwritten header (however, see also the chapter <a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions</a>).</div>
+<p>&nbsp;</p>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Tools &gt; Keyfile Generator</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You can use this function to generate a file or more with random content, which you can use as a keyfile(s) (recommended). This function uses the VeraCrypt Random Number Generator. Note that, by default, only one key file is generated and the resulting file
+ size is 64 bytes (i.e., 512 bits), which is also the maximum possible VeraCrypt password length. It is also possible to generate multiple files and specify their size (either a fixed value for all of them or let VeraCrypt choose file sizes randomly). In all
+ cases, the file size must be comprised between 64 bytes and 1048576 bytes (which is equal to 1MB, the maximum number of a key file bytes processed by VeraCrypt).</div>
+<h3 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:13px; margin-bottom:4px">
+Settings -&gt; Default Keyfiles</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Use this function to set default keyfiles and/or default keyfile search paths. This function is particularly useful if you, for example, store keyfiles on a USB memory stick that you carry with you. You can add its drive letter to the default keyfile configuration.
+ To do so, click <em style="text-align:left">Add Path</em>, browse to the drive letter assigned to the USB memory stick, and click
+<em style="text-align:left">OK</em>. Now each time you mount a volume (and if <em style="text-align:left">
+Use keyfiles</em> is checked in the password dialog), VeraCrypt will scan the path and use all files that it finds there as keyfiles.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left"><em style="text-align:left">WARNING: When you add a folder (as opposed to a file) to your default keyfile list, only the path is remembered, not the filenames! This means e.g. that if you create a new file in the folder or if
+ you copy an additional file to the folder, then all volumes that used keyfiles from the folder will be impossible to mount (until you remove the newly added file from the folder).
+<br style="text-align:left">
+<br style="text-align:left">
+</em></strong><span style="text-align:left; font-style:italic">IMPORTANT: Note that when you set default keyfiles and/or default keyfile search paths, the filenames and paths are saved unencrypted in the file
+</span>Default Keyfiles.xml<span style="text-align:left; font-style:italic">. For more information, please see the chapter
+</span><a href="VeraCrypt%20System%20Files.html" style="text-align:left; color:#0080c0; text-decoration:none">VeraCrypt System Files &amp; Application Data</a><span style="text-align:left; font-style:italic.html">.
+</span></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left"><br style="text-align:left">
+</em></div>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* Found at the time when you are mounting the volume, changing its password, or performing any other operation that involves re-encryption of the volume header.<br style="text-align:left">
+** However, if you use an MP3 file as a keyfile, you must ensure that no program modifies the ID3 tags within the MP3 file (e.g. song title, name of artist, etc.). Otherwise, it will be impossible to mount volumes that use the keyfile.<br style="text-align:left">
+</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Keyfiles in VeraCrypt_Image_040.gif b/doc/html/Keyfiles in VeraCrypt_Image_040.gif
new file mode 100644
index 0000000..4fc413e
--- /dev/null
+++ b/doc/html/Keyfiles in VeraCrypt_Image_040.gif
Binary files differ
diff --git a/doc/html/Keyfiles.html b/doc/html/Keyfiles.html
new file mode 100644
index 0000000..03627db
--- /dev/null
+++ b/doc/html/Keyfiles.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Keyfiles.html">Keyfiles</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Keyfiles</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>VeraCrypt keyfile is a file whose content is combined with a password. The user can use any kind of file as a VeraCrypt keyfile. The user can also generate a keyfile using the built-in keyfile generator, which utilizes the VeraCrypt RNG to generate a file
+ with random content (for more information, see the section <a href="Random%20Number%20Generator.html">
+<em>Random Number Generator</em></a>).</p>
+<p>The maximum size of a keyfile is not limited; however, only its first 1,048,576 bytes (1 MB) are processed (all remaining bytes are ignored due to performance issues connected with processing extremely large files). The user can supply one or more keyfiles
+ (the number of keyfiles is not limited).</p>
+<p>Keyfiles can be stored on PKCS-11-compliant [23] security tokens and smart cards protected by multiple PIN codes (which can be entered either using a hardware PIN pad or via the VeraCrypt GUI).</p>
+<p>Keyfiles are processed and applied to a password using the following method:</p>
+<ol>
+<li>Let <em>P</em> be a VeraCrypt volume password supplied by user (may be empty)
+</li><li>Let <em>KP</em> be the keyfile pool </li><li>Let <em>kpl</em> be the size of the keyfile pool <em>KP</em>, in bytes (64, i.e., 512 bits);
+<p>kpl must be a multiple of the output size of a hash function H</p>
+</li><li>Let <em>pl</em> be the length of the password <em>P</em>, in bytes (in the current version: 0 &le;
+<em>pl</em> &le; 64) </li><li>if <em>kpl &gt; pl</em>, append (<em>kpl &ndash; pl</em>) zero bytes to the password
+<em>P</em> (thus <em>pl = kpl</em>) </li><li>Fill the keyfile pool <em>KP</em> with <em>kpl</em> zero bytes. </li><li>For each keyfile perform the following steps:
+<ol type="a">
+<li>Set the position of the keyfile pool cursor to the beginning of the pool </li><li>Initialize the hash function <em>H</em> </li><li>Load all bytes of the keyfile one by one, and for each loaded byte perform the following steps:
+<ol type="i">
+<li>Hash the loaded byte using the hash function <em>H</em> without initializing the hash, to obtain an intermediate hash (state)
+<em>M.</em> Do not finalize the hash (the state is retained for next round). </li><li>Divide the state <em>M</em> into individual bytes.<br>
+For example, if the hash output size is 4 bytes, (<em>T</em><sub>0</sub> || <em>T</em><sub>1</sub> ||
+<em>T</em><sub>2</sub> || <em>T</em><sub>3</sub>) = <em>M</em> </li><li>Write these bytes (obtained in step 7.c.ii) individually to the keyfile pool with the modulo 2<sup>8</sup> addition operation (not by replacing the old values in the pool) at the position of the pool cursor. After a byte is written, the pool cursor position
+ is advanced by one byte. When the cursor reaches the end of the pool, its position is set to the beginning of the pool.
+</li></ol>
+</li></ol>
+</li><li>Apply the content of the keyfile pool to the password <em>P</em> using the following method:
+<ol type="a">
+<li>Divide the password <em>P</em> into individual bytes <em>B</em><sub>0</sub>...<em>B</em><sub>pl-1</sub>.<br>
+Note that if the password was shorter than the keyfile pool, then the password was padded with zero bytes to the length of the pool in Step 5 (hence, at this point the length of the password is always greater than or equal to the length of the keyfile pool).
+</li><li>Divide the keyfile pool <em>KP</em> into individual bytes <em>G</em><sub>0</sub>...<em>G</em><sub>kpl-1</sub>
+</li><li>For 0 &le; i &lt; kpl perform: Bi = Bi &oplus; Gi </li><li><em>P</em> = <em>B</em><sub>0</sub> || <em>B</em><sub>1</sub> || ... || <em>B</em><sub>pl-2</sub> ||
+<em>B</em><sub>pl-1</sub> </li></ol>
+</li><li>The password <em>P</em> (after the keyfile pool content has been applied to it) is now passed to the header key derivation function PBKDF2 (PKCS #5 v2), which processes it (along with salt and other data) using a cryptographically secure hash algorithm
+ selected by the user (e.g., SHA-512). See the section <a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a> for more information.
+</li></ol>
+<p>The role of the hash function <em>H</em> is merely to perform diffusion [2]. CRC-32 is used as the hash function
+<em>H</em>. Note that the output of CRC-32 is subsequently processed using a cryptographically secure hash algorithm: The keyfile pool content (in addition to being hashed using CRC-32) is applied to the password, which is then passed to the header key derivation
+ function PBKDF2 (PKCS #5 v2), which processes it (along with salt and other data) using a cryptographically secure hash algorithm selected by the user (e.g., SHA-512). The resultant values are used to form the header key and the secondary header key (XTS mode).</p>
+<p>&nbsp;</p>
+<p><a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Kuznyechik.html b/doc/html/Kuznyechik.html
new file mode 100644
index 0000000..e5d5d0c
--- /dev/null
+++ b/doc/html/Kuznyechik.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Algorithms.html">Encryption Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Kuznyechik.html">Kuznyechik</a>
+</p></div>
+<div class="wikidoc">
+<h1>Kuznyechik</h1>
+<p>Kuznyechik is a 128-bit block cipher first published in 2015 and defined in the National Standard of the Russian Federation&nbsp;<a href="http://tc26.ru/en/standard/gost/GOST_R_34_12_2015_ENG.pdf">GOST R 34.12-2015</a> and also in
+<a href="https://tools.ietf.org/html/rfc7801">RFC 7801</a>. It supersedes the old GOST-89 block cipher although it doesn't obsolete it.</p>
+<p>VeraCrypt uses Kuznyechik with 10 rounds and a 256-bit key operating in <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+XTS mode</a> (see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Modes of Operation</a>).</p>
+<p><a href="Serpent.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Language Packs.html b/doc/html/Language Packs.html
new file mode 100644
index 0000000..6076a3b
--- /dev/null
+++ b/doc/html/Language Packs.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Language%20Packs.html">Language Packs</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Language Packs</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+Language packs contain third-party translations of the VeraCrypt user interface texts. Note that language packs are currently supported only by the Windows version of VeraCrypt.</div>
+<h3>Installation</h3>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Since version 1.0e, all language packs are included in the VeraCrypt Windows installer and they can be found in VeraCrypt installation directory. To select a new language, run VeraCrypt, select
+<em style="text-align:left">Settings </em>-&gt; <em style="text-align:left">Language</em>, then select your language and click
+<em style="text-align:left">OK</em>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To revert to English, select <em style="text-align:left">Settings</em> -&gt; <em style="text-align:left">
+Language</em>. Then select <em style="text-align:left">English</em> and click <em style="text-align:left">
+OK</em>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You can still download an archive containing all language packs for the latest version (1.19) from
+<a href="https://launchpad.net/veracrypt/trunk/1.19/+download/VeraCrypt_1.19_Language_Files.zip">
+the following link</a>.</div>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/Legal Information.html b/doc/html/Legal Information.html
new file mode 100644
index 0000000..797a4ba
--- /dev/null
+++ b/doc/html/Legal Information.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Legal%20Information.html">Legal Information</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Legal Information</h1>
+<h3>License</h3>
+<p>The text of the license under which VeraCrypt is distributed is contained in the file
+<em>License.txt</em> that is included in the VeraCrypt binary and source code distribution packages.</p>
+<p>More information on the license <a href="VeraCrypt%20License.html">
+can be found here</a>.</p>
+<h3>Copyright Information</h3>
+<p>This software as a whole:<br>
+<br>
+Copyright &copy; 2013-2016 IDRIX. All rights reserved.<br>
+<br>
+Portions of this software:</p>
+<p>Copyright &copy; 2013-2016 IDRIX. All rights reserved.<br>
+<br>
+Copyright &copy; 2003-2012 TrueCrypt Developers Association. All rights reserved.</p>
+<p>Copyright &copy; 1998-2000 Paul Le Roux. All rights reserved.<br>
+<br>
+Copyright &copy; 1998-2008 Brian Gladman, Worcester, UK. All rights reserved.</p>
+<p>Copyright &copy; 1995-2017 Jean-loup Gailly and Mark Adler.</p>
+<p>Copyright &copy; 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov</p>
+<p>Copyright &copy; 1999-2014 Dieter Baron and Thomas Klausner.</p>
+<p>Copyright &copy; 2013, Alexey Degtyarev. All rights reserved.</p>
+<p>Copyright &copy; 1999-2013,2014,2015,2016 Jack Lloyd. All rights reserved.<br>
+<br>
+For more information, please see the legal notices attached to parts of the source code.</p>
+<h3>Trademark Information</h3>
+<p>Any trademarks mentioned in this document are the sole property of their respective owners.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Main Program Window.html b/doc/html/Main Program Window.html
new file mode 100644
index 0000000..4970fe7
--- /dev/null
+++ b/doc/html/Main Program Window.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Main%20Program%20Window.html">Main Program Window</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Main Program Window</h1>
+<h3>Select File</h3>
+<p>Allows you to select a file-hosted VeraCrypt volume. After you select it, you can perform various operations on it (e.g., mount it by clicking &lsquo;Mount&rsquo;). It is also possible to select a volume by dragging its icon to the &lsquo;VeraCrypt.exe&rsquo;
+ icon (VeraCrypt will be automatically launched then) or to the main program window.</p>
+<h3>Select Device</h3>
+<p>Allows you to select a VeraCrypt partition or a storage device (such as a USB memory stick). After it is selected, you can perform various operations with it (e.g., mount it by clicking &lsquo;Mount&rsquo;).<br>
+<br>
+Note: There is a more comfortable way of mounting VeraCrypt partitions/devices &ndash; see the section
+<em>Auto-Mount Devices</em> for more information.</p>
+<h3>Mount</h3>
+<p>After you click &lsquo;Mount&rsquo;, VeraCrypt will try to mount the selected volume using cached passwords (if there are any) and if none of them works, it prompts you for a password. If you enter the correct password (and/or provide correct keyfiles),
+ the volume will be mounted.</p>
+<p>Important: Note that when you exit the VeraCrypt application, the VeraCrypt driver continues working and no VeraCrypt volume is dismounted.</p>
+<h3 id="AutoMountDevices">Auto-Mount Devices</h3>
+<p>This function allows you to mount VeraCrypt partitions/devices without having to select them manually (by clicking &lsquo;Select Device&rsquo;). VeraCrypt scans headers of all available partitions/devices on your system (except DVD drives and similar devices)
+ one by one and tries to mount each of them as a VeraCrypt volume. Note that a VeraCrypt partition/device cannot be identified, nor the cipher it has been encrypted with. Therefore, the program cannot directly &ldquo;find&rdquo; VeraCrypt partitions. Instead,
+ it has to try mounting each (even unencrypted) partition/device using all encryption algorithms and all cached passwords (if there are any). Therefore, be prepared that this process may take a long time on slow computers.<br>
+<br>
+If the password you enter is wrong, mounting is attempted using cached passwords (if there are any). If you enter an empty password and if
+<em>Use keyfiles</em> is unchecked, only the cached passwords will be used when attempting to auto-mount partitions/devices. If you do not need to set mount options, you can bypass the password prompt by holding down the
+<em>Shift</em> key when clicking <em>Auto- Mount Devices</em> (only cached passwords will be used, if there are any).<br>
+<br>
+Drive letters will be assigned starting from the one that is selected in the drive list in the main window.</p>
+<h3>Dismount</h3>
+<p>This function allows you to dismount the VeraCrypt volume selected in the drive list in the main window. To dismount a VeraCrypt volume means to close it and make it impossible to read/write from/to the volume.</p>
+<h3>Dismount All</h3>
+<p>Note: The information in this section applies to all menu items and buttons with the same or similar caption (for example, it also applies to the system tray menu item
+<em>Dismount All</em>).<br>
+<br>
+This function allows you to dismount multiple VeraCrypt volumes. To dismount a VeraCrypt volume means to close it and make it impossible to read/write from/to the volume. This function dismounts all mounted VeraCrypt volumes except the following:</p>
+<ul>
+<li>Partitions/drives within the key scope of active system encryption (e.g., a system partition encrypted by VeraCrypt, or a non-system partition located on a system drive encrypted by VeraCrypt, mounted when the encrypted operating system is running).
+</li><li>VeraCrypt volumes that are not fully accessible to the user account (e.g. a volume mounted from within another user account).
+</li><li>VeraCrypt volumes that are not displayed in the VeraCrypt application window. For example, system favorite volumes attempted to be dismounted by an instance of VeraCrypt without administrator privileges when the option '<em>Allow only administrators to
+ view and dismount system favorite volumes in VeraCrypt</em>' is enabled. </li></ul>
+<h3>Wipe Cache</h3>
+<p>Clears all passwords (which may also contain processed keyfile contents) cached in driver memory. When there are no passwords in the cache, this button is disabled. For information on password cache, see the section
+<a href="Mounting%20VeraCrypt%20Volumes.html">
+<em>Cache Password in Driver Memory</em></a>.</p>
+<h3>Never Save History</h3>
+<p>If this option disabled, the file names and/or paths of the last twenty files/devices that were attempted to be mounted as VeraCrypt volumes will be saved in the History file (whose content can be displayed by clicking on the Volume combo-box in the main
+ window).<br>
+<br>
+When this option is enabled, VeraCrypt clears the registry entries created by the Windows file selector for VeraCrypt, and sets the &ldquo;current directory&rdquo; to the user&rsquo;s home directory (in portable mode, to the directory from which VeraCrypt was
+ launched) whenever a container or keyfile is selected via the Windows file selector. Therefore, the Windows file selector will not remember the path of the last mounted container (or the last selected keyfile). However, note that the operations described in
+ this paragraph are <em>not</em> guaranteed to be performed reliably and securely (see e.g.
+<a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>) so we strongly recommend that you encrypt the system partition/drive instead of relying on them (see
+<a href="System%20Encryption.html"><em>System Encryption</em></a>).<br>
+<br>
+Furthermore, if this option is enabled, the volume path input field in the main VeraCrypt window is cleared whenever you hide VeraCrypt.<br>
+<br>
+Note: You can clear the volume history by selecting <em>Tools</em> -&gt; <em>Clear Volume History</em>.</p>
+<h3>Exit</h3>
+<p>Terminates the VeraCrypt application. The driver continues working and no VeraCrypt volumes are dismounted. When running in &lsquo;portable&rsquo; mode, the VeraCrypt driver is unloaded when it is no longer needed (e.g., when all instances of the main application
+ and/or of the Volume Creation Wizard are closed and no VeraCrypt volumes are mounted). However, if you force dismount on a</p>
+<p>VeraCrypt volume when VeraCrypt runs in portable mode, or mount a writable NTFS-formatted volume on Windows Vista or later, the VeraCrypt driver may
+<em>not</em> be unloaded when you exit VeraCrypt (it will be unloaded only when you shut down or restart the system). This prevents various problems caused by a bug in Windows (for instance, it would be impossible to start VeraCrypt again as long as there are
+ applications using the dismounted volume).</p>
+<h3>Volume Tools</h3>
+<h4>Change Volume Password</h4>
+<p>See the section <a href="Program%20Menu.html">
+<em>Volumes -&gt; Change Volume Password</em></a>.</p>
+<h4>Set Header Key Derivation Algorithm</h4>
+<p>See the section <a href="Program%20Menu.html">
+<em>Volumes -&gt; Set Header Key Derivation Algorithm</em></a>.</p>
+<h4>Backup Volume Header</h4>
+<p>See the section <a href="Program%20Menu.html#tools-backup-volume-header">
+<em>Tools -&gt; Backup Volume Header</em></a>.</p>
+<h4>Restore Volume Header</h4>
+<p>See the section <a href="Program%20Menu.html#tools-restore-volume-header">
+<em>Tools -&gt; Restore Volume Header</em></a>.</p>
+<p>&nbsp;</p>
+<p><a href="Program%20Menu.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Malware.html b/doc/html/Malware.html
new file mode 100644
index 0000000..b45d69f
--- /dev/null
+++ b/doc/html/Malware.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Malware.html">Malware</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Malware</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The term 'malware' refers collectively to all types of malicious software, such as computer viruses, Trojan horses, spyware, or generally any piece of software (including VeraCrypt or an operating system component) that has been altered, prepared, or can be
+ controlled, by an attacker. Some kinds of malware are designed e.g. to log keystrokes, including typed passwords (such captured passwords are then either sent to the attacker over the Internet or saved to an unencrypted local drive from which the attacker
+ might be able to read it later, when he or she gains physical access to the computer). If you use VeraCrypt on a computer infected with any kind of malware, VeraCrypt may become unable to secure data on the computer.* Therefore, you must
+<em style="text-align:left">not</em> use VeraCrypt on such a computer.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+It is important to note that VeraCrypt is encryption software, <em style="text-align:left">
+not</em> anti-malware software. It is your responsibility to prevent malware from running on the computer. If you do not, VeraCrypt may become unable to secure data on the computer.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+There are many rules that you should follow to help prevent malware from running on your computer. Among the most important rules are the following: Keep your operating system, Internet browser, and other critical software, up-to-date. In Windows XP or later,
+ turn on DEP for all programs.** Do not open suspicious email attachments, especially executable files, even if they appear to have been sent by your relatives or friends (their computers might be infected with malware sending malicious emails from their computers/accounts
+ without their knowledge). Do not follow suspicious links contained in emails or on websites (even if the email/website appears to be harmless or trustworthy). Do not visit any suspicious websites. Do not download or install any suspicious software. Consider
+ using good, trustworthy, anti-malware software.</div>
+<p><br style="text-align:left">
+</p>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* In this section (<em style="text-align:left">Malware</em>), the phrase &quot;data on the computer&quot; means data on internal and external storage devices/media (including removable devices and network
+ drives) connected to the computer.</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">** DEP stands for Data Execution Prevention. For more information about DEP, please visit
+<a href="https://support.microsoft.com/kb/875352" style="text-align:left; color:#0080c0; text-decoration:none">
+https://support.microsoft.com/kb/875352</a> and <a href="http://technet.microsoft.com/en-us/library/cc700810.aspx" style="text-align:left; color:#0080c0; text-decoration:none">
+http://technet.microsoft.com/en-us/library/cc700810.aspx</a>.</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Memory Dump Files.html b/doc/html/Memory Dump Files.html
new file mode 100644
index 0000000..da4ccdd
--- /dev/null
+++ b/doc/html/Memory Dump Files.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Data%20Leaks.html">Data Leaks</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Memory%20Dump%20Files.html">Memory Dump Files</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Memory Dump Files</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Note: The issue described below does <strong style="text-align:left">
+not</strong> affect you if the system partition or system drive is encrypted (for more information, see the chapter
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+System Encryption</a>) and if the system is configured to write memory dump files to the system drive (which it typically is, by default).</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Most operating systems, including Windows, can be configured to write debugging information and contents of the system memory to so-called memory dump files (also called crash dump files) when an error occurs (system crash, &quot;blue screen,&quot; bug check). Therefore,
+ memory dump files may contain sensitive data. VeraCrypt <em style="text-align:left">
+cannot</em> prevent cached passwords, encryption keys, and the contents of sensitive files opened in RAM from being saved
+<em style="text-align:left">unencrypted</em> to memory dump files. Note that when you open a file stored on a VeraCrypt volume, for example, in a text editor, then the content of the file is stored
+<em style="text-align:left">unencrypted</em> in RAM (and it may remain <em style="text-align:left">
+unencrypted </em>in RAM until the computer is turned off). Also note that when a VeraCrypt volume is mounted, its master key is stored
+<em style="text-align:left">unencrypted</em> in RAM. Therefore, you must disable memory dump file generation on your computer at least for each session during which you work with any sensitive data and during which you mount a VeraCrypt volume. To do so in
+ Windows XP or later, right-click the '<em style="text-align:left">Computer</em>' (or '<em style="text-align:left">My Computer</em>') icon on the desktop or in the
+<em style="text-align:left">Start Menu</em>, and then select <em style="text-align:left">
+Properties</em> &gt; (on Windows Vista or later: &gt; <em style="text-align:left">
+Advanced System Settings</em> &gt;) <em style="text-align:left">Advanced </em>tab &gt; section
+<em style="text-align:left">Startup and Recovery </em>&gt; <em style="text-align:left">
+Settings &gt; </em>section <em style="text-align:left">Write debugging information
+</em>&gt; select <em style="text-align:left">(none)</em> &gt; <em style="text-align:left">
+OK</em>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Note for users of Windows XP/2003</em>: As Windows XP and Windows 2003 do not provide any API for encryption of memory dump files, if the system partition/drive is encrypted by VeraCrypt and your Windows XP system is configured to
+ write memory dump files to the system drive, the VeraCrypt driver automatically prevents Windows from writing any data to memory dump files<em style="text-align:left">.</em></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Miscellaneous.html b/doc/html/Miscellaneous.html
new file mode 100644
index 0000000..d83f6c3
--- /dev/null
+++ b/doc/html/Miscellaneous.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Miscellaneous</h1>
+<ul>
+<li><a href="Using%20VeraCrypt%20Without%20Administrator%20Privileges.html">Use Without Admin Rights</a>
+</li><li><a href="Sharing%20over%20Network.html">Sharing over Network</a>
+</li><li><a href="VeraCrypt%20Background%20Task.html">Background Task</a>
+</li><li><a href="Removable%20Medium%20Volume.html">Removable Medium Volumes</a>
+</li><li><a href="VeraCrypt%20System%20Files.html">VeraCrypt System Files</a>
+</li><li><a href="Removing%20Encryption.html">Removing Encryption</a>
+</li><li><a href="Uninstalling%20VeraCrypt.html">Uninstalling VeraCrypt</a>
+</li><li><a href="Digital%20Signatures.html">Digital Signatures</a>
+</li></ul>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/Modes of Operation.html b/doc/html/Modes of Operation.html
new file mode 100644
index 0000000..3ea4e8c
--- /dev/null
+++ b/doc/html/Modes of Operation.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Modes%20of%20Operation.html">Modes of Operation</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Modes of Operation</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+The mode of operation used by VeraCrypt for encrypted partitions, drives, and virtual volumes is XTS.
+<br style="text-align:left">
+<br style="text-align:left">
+XTS mode is in fact XEX mode <a href="http://www.cs.ucdavis.edu/%7Erogaway/papers/offsets.pdf">
+[12]</a>, which was designed by Phillip Rogaway in 2003, with a minor modification (XEX mode uses a single key for two different purposes, whereas XTS mode uses two independent keys).<br style="text-align:left">
+<br style="text-align:left">
+In 2010, XTS mode was approved by NIST for protecting the confidentiality of data on storage devices [24]. In 2007, it was also approved by the IEEE for cryptographic protection of data on block-oriented storage devices (IEEE 1619).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+&nbsp;</div>
+<h2 style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Description of XTS mode</strong>:</h2>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">C<sub style="text-align:left; font-size:85%">i</sub></em> =
+<em style="text-align:left">E</em><sub style="text-align:left; font-size:85%"><em style="text-align:left">K</em>1</sub>(<em style="text-align:left">P<sub style="text-align:left; font-size:85%">i</sub></em> ^ (<em style="text-align:left">E</em><sub style="text-align:left; font-size:85%"><em style="text-align:left">K</em>2</sub>(<em style="text-align:left">n</em>)
+<img src="gf2_mul.gif" alt="" width="10" height="10">
+<em style="text-align:left">a<sup style="text-align:left; font-size:85%">i</sup></em>)) ^ (<em style="text-align:left">E</em><sub style="text-align:left; font-size:85%"><em style="text-align:left">K</em>2</sub>(<em style="text-align:left">n</em>)
+<img src="gf2_mul.gif" alt="" width="10" height="10"><em style="text-align:left"> a<sup style="text-align:left; font-size:85%">i</sup></em>)</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Where:</div>
+<table style="border-collapse:separate; border-spacing:0px; width:608px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; border:0px outset #999">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+&nbsp;<sup style="text-align:left; font-size:85%">&nbsp;<img src="gf2_mul.gif" alt="" width="10" height="10"></sup></td>
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+denotes multiplication of two polynomials over the binary field GF(2) modulo <em style="text-align:left">
+x</em><sup style="text-align:left; font-size:85%">128</sup>&#43;<em style="text-align:left">x</em><sup style="text-align:left; font-size:85%">7</sup>&#43;<em style="text-align:left">x</em><sup style="text-align:left; font-size:85%">2</sup>&#43;<em style="text-align:left">x</em>&#43;1</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:30px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+<em style="text-align:left">K</em>1</td>
+<td style="width:578px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+is the encryption key (256-bit for each supported cipher; i.e, AES, Serpent, and Twofish)</td>
+</tr>
+<tr style="text-align:left">
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+<em style="text-align:left">K</em>2</td>
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+is the secondary key (256-bit for each supported cipher; i.e, AES, Serpent, and Twofish)</td>
+</tr>
+<tr style="text-align:left">
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+<em style="text-align:left">i</em></td>
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+is the cipher block index within a data unit; &nbsp; for the first cipher block within a data unit,
+<em style="text-align:left">i</em> = 0</td>
+</tr>
+<tr style="text-align:left">
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+<em style="text-align:left">n</em></td>
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+is the data unit index within the scope of <em style="text-align:left">K</em>1; &nbsp; for the first data unit,
+<em style="text-align:left">n</em> = 0</td>
+</tr>
+<tr style="text-align:left">
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+<em style="text-align:left">a</em></td>
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+is a primitive element of Galois Field (2<sup style="text-align:left; font-size:85%">128</sup>) that corresponds to polynomial
+<em style="text-align:left">x</em> (i.e., 2)</td>
+</tr>
+<tr style="text-align:left">
+<td colspan="2" style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">Note: The remaining symbols are defined in the section
+<a href="Notation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Notation</a>. </span></td>
+</tr>
+</tbody>
+</table>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+The size of each data unit is always 512 bytes (regardless of the sector size).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+For further information pertaining to XTS mode, see e.g. <a href="http://www.cs.ucdavis.edu/%7Erogaway/papers/offsets.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+[12]</a> and <a href="http://csrc.nist.gov/publications/nistpubs/800-38E/nist-sp-800-38E.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+[24]</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Mounting VeraCrypt Volumes.html b/doc/html/Mounting VeraCrypt Volumes.html
new file mode 100644
index 0000000..78b5c90
--- /dev/null
+++ b/doc/html/Mounting VeraCrypt Volumes.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Main%20Program%20Window.html">Main Program Window</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Mounting%20VeraCrypt%20Volumes.html">Mounting Volumes</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Mounting VeraCrypt Volumes</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>If you have not done so yet, please read the sections &lsquo;<em>Mount</em>&lsquo; and &lsquo;<em>Auto-Mount Devices</em>&lsquo; in the chapter
+<a href="Main%20Program%20Window.html"><em>Main Program Window</em></a>.</p>
+<h3>Cache Password in Driver Memory</h3>
+<p>This option can be set in the password entry dialog so that it will apply only to that particular mount attempt. It can also be set as default in the Preferences. For more information, please see the section
+<a href="Program%20Menu.html"><em>Settings -&gt; Preferences</em>, subsection
+<em>Cache passwords in driver memory</em></a>.</p>
+<h3>Mount Options</h3>
+<p>Mount options affect the parameters of the volume being mounted. The <em>Mount Options</em> dialog can be opened by clicking on the
+<em>Mount Options</em> button in the password entry dialog. When a correct password is cached, volumes are automatically mounted after you click
+<em>Mount</em>. If you need to change mount options for a volume being mounted using a cached password, hold down the
+<em>Control</em> (<em>Ctrl</em>) key while clicking <em>Mount</em> or a favorite volume in the
+<em>Favorites</em> menu<em>,</em> or select <em>Mount with Options</em> from the <em>
+Volumes</em> menu.<br>
+<br>
+Default mount options can be configured in the main program preferences (<em>Settings -&gt; Preferences).</em></p>
+<h4>Mount volume as read-only</h4>
+<p>When checked, it will not be possible to write any data to the mounted volume.</p>
+<h4>Mount volume as removable medium</h4>
+<p>See section <a href="Removable%20Medium%20Volume.html">
+<em>Volume Mounted as Removable Medium</em></a>.</p>
+<h4>Use backup header embedded in volume if available</h4>
+<p>All volumes created by VeraCrypt contain an embedded backup header (located at the end of the volume). If you check this option, VeraCrypt will attempt to mount the volume using the embedded backup header. Note that if the volume header is damaged, you do
+ not have to use this option. Instead, you can repair the header by selecting <em>
+Tools</em> &gt; <em>Restore Volume Header</em>.</p>
+<h4>Mount partition using system encryption without pre-boot authentication</h4>
+<p>Check this option, if you need to mount a partition that is within the key scope of system encryption without pre-boot authentication. For example, if you need to mount a partition located on the encrypted system drive of another operating system that is
+ not running. This can be useful e.g. when you need to back up or repair an operating system encrypted by VeraCrypt (from within another operating system). Note that this option can be enabled also when using the &lsquo;<em>Auto-Mount Devices</em>&rsquo; or
+ &lsquo;<em>Auto-Mount All Device-Hosted Volumes</em>&rsquo; functions.</p>
+<h4>Hidden Volume Protection</h4>
+<p>Please see the section <a href="Protection%20of%20Hidden%20Volumes.html">
+<em>Protection of Hidden Volumes Against Damage</em></a>.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Multi-User Environment.html b/doc/html/Multi-User Environment.html
new file mode 100644
index 0000000..4162b3c
--- /dev/null
+++ b/doc/html/Multi-User Environment.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Multi-User%20Environment.html">Multi-User Environment</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Multi-User Environment</h1>
+<p>Keep in mind, that the content of a mounted VeraCrypt volume is visible (accessible) to all logged on users. NTFS file/folder permissions can be set to prevent this, unless the volume is mounted as removable medium (see section
+<a href="Removable%20Medium%20Volume.html">
+<em>Volume Mounted as Removable Medium</em></a>) under a desktop edition of Windows Vista or later (sectors of a volume mounted as removable medium may be accessible at the volume level to users without administrator privileges, regardless of whether it is
+ accessible to them at the file-system level).<br>
+<br>
+Moreover, on Windows, the password cache is shared by all logged on users (for more information, please see the section
+<em>Settings -&gt; Preferences</em>, subsection <em>Cache passwords in driver memory</em>).<br>
+<br>
+Also note that switching users in Windows XP or later (<em>Fast User Switching</em> functionality) does
+<em>not</em> dismount a successfully mounted VeraCrypt volume (unlike system restart, which dismounts all mounted VeraCrypt volumes).<br>
+<br>
+On Windows 2000, the container file permissions are ignored when a file-hosted VeraCrypt volume is to be mounted. On all supported versions of Windows, users without administrator privileges can mount any partition/device-hosted VeraCrypt volume (provided that
+ they supply the correct password and/or keyfiles). A user without administrator privileges can dismount only volumes that he or she mounted. However, this does not apply to system favorite volumes unless you enable the option (disabled by default)
+<em>Settings</em> &gt; &lsquo;<em>System Favorite Volumes</em>&rsquo; &gt; &lsquo;<em>Allow only administrators to view and dismount system favorite volumes in VeraCrypt</em>&rsquo;.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Notation.html b/doc/html/Notation.html
new file mode 100644
index 0000000..dc3a1b9
--- /dev/null
+++ b/doc/html/Notation.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Notation.html">Notation</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Notation</h1>
+<p>&nbsp;</p>
+<table cellspacing="0">
+<tbody>
+<tr>
+<td><em>C</em></td>
+<td>Ciphertext block</td>
+</tr>
+<tr>
+<td><em>DK()</em></td>
+<td>Decryption algorithm using encryption/decryption key <em>K</em></td>
+</tr>
+<tr>
+<td><em>EK()</em></td>
+<td>Encryption algorithm using encryption/decryption key <em>K</em></td>
+</tr>
+<tr>
+<td><em>H()</em></td>
+<td>Hash function</td>
+</tr>
+<tr>
+<td><em>i</em></td>
+<td>Block index for n-bit blocks; n is context-dependent</td>
+</tr>
+<tr>
+<td><em>K</em></td>
+<td>Cryptographic key</td>
+</tr>
+<tr>
+<td><em>^</em></td>
+<td>Bitwise exclusive-OR operation (XOR)</td>
+</tr>
+<tr>
+<td><em>&oplus;</em></td>
+<td>Modulo 2n addition, where n is the bit size of the left-most operand and of the resultant value (e.g., if the left operand is a 1-bit value, and the right operand is a 2-bit value, then: 1 &oplus; 0 = 1; 1 &oplus; 1 = 0; 1 &oplus; 2 = 1; 1 &oplus; 3 = 0;
+ 0 &oplus; 0 = 0; 0 &oplus; 1 = 1; 0 &oplus; 2 = 0; 0 &oplus; 3 = 1)</td>
+</tr>
+<tr>
+<td><em>&otimes;</em></td>
+<td>Modular multiplication of two polynomials over the binary field GF(2) modulo x128&#43;x7&#43;x2&#43;x&#43;1 (GF stands for Galois Field)</td>
+</tr>
+<tr>
+<td><em>||</em></td>
+<td>Concatenation</td>
+</tr>
+</tbody>
+</table>
+<p>&nbsp;</p>
+<p><a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/Paging File.html b/doc/html/Paging File.html
new file mode 100644
index 0000000..b4c550d
--- /dev/null
+++ b/doc/html/Paging File.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Data%20Leaks.html">Data Leaks</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Paging%20File.html">Paging File</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Paging File</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Note: The issue described below does <strong style="text-align:left">
+not</strong> affect you if the system partition or system drive is encrypted (for more information, see the chapter
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+System Encryption</a>) and if all paging files are located on one or more of the partitions within the key scope of
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a>, for example, on the partition where Windows is installed (for more information, see the fourth paragraph in this subsection</em><em style="text-align:left">).</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Paging files, also called swap files, are used by Windows to hold parts of programs and data files that do not fit in memory. This means that sensitive data, which you believe are only stored in RAM, can actually be written
+<em style="text-align:left">unencrypted</em> to a hard drive by Windows without you knowing.
+<br style="text-align:left">
+<br style="text-align:left">
+Note that VeraCrypt <em style="text-align:left">cannot</em> prevent the contents of sensitive files that are opened in RAM from being saved
+<em style="text-align:left">unencrypted</em> to a paging file (note that when you open a file stored on a VeraCrypt volume, for example, in a text editor, then the content of the file is stored
+<em style="text-align:left">unencrypted</em> in RAM).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">To prevent the issues described above</strong>, encrypt the system partition/drive (for information on how to do so, see the chapter
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+System Encryption</a>) and make sure that all paging files are located on one or more of the partitions within the key scope of system encryption (for example, on the partition where Windows is installed). Note that the last condition is typically met on Windows
+ XP by default. However, Windows Vista and later versions of Windows are configured by default to create paging files on any suitable volume. Therefore, before, you start using VeraCrypt, you must follow these steps: Right-click the '<em style="text-align:left">Computer</em>'
+ (or '<em style="text-align:left">My Computer</em>') icon on the desktop or in the
+<em style="text-align:left">Start Menu</em>, and then select <em style="text-align:left">
+Properties</em> &gt; (<span style="text-align:left">on Windows Vista or later</span>: &gt;
+<em style="text-align:left">Advanced System Settings</em> &gt;) <em style="text-align:left">
+Advanced </em>tab &gt; section <em style="text-align:left">Performance </em>&gt; <em style="text-align:left">
+Settings &gt; Advanced </em>tab &gt; section <em style="text-align:left">Virtual memory
+</em>&gt;<em style="text-align:left"> Change</em>. On Windows Vista or later, disable '<em style="text-align:left">Automatically manage paging file size for all drives</em>'. Then make sure that the list of volumes available for paging file creation contains
+ only volumes within the intended key scope of system encryption (for example, the volume where Windows is installed). To disable paging file creation on a particular volume, select it, then select '<em style="text-align:left">No paging file</em>' and click
+<em style="text-align:left">Set</em>. When done, click <em style="text-align:left">
+OK</em> and restart the computer. <br style="text-align:left">
+<br style="text-align:left">
+<em style="text-align:left">Note: You may also want to consider creating a hidden operating system (for more information, see the section
+<a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a>)</em>.</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Parallelization.html b/doc/html/Parallelization.html
new file mode 100644
index 0000000..9da5d27
--- /dev/null
+++ b/doc/html/Parallelization.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Parallelization.html">Parallelization</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Parallelization</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When your computer has a multi-core processor (or multiple processors), VeraCrypt uses all of the cores (or processors) in parallel for encryption and decryption. For example, when VeraCrypt is to decrypt a chunk of data, it first splits the chunk into several
+ smaller pieces. The number of the pieces is equal to the number of the cores (or processors). Then, all of the pieces are decrypted in parallel (piece 1 is decrypted by thread 1, piece 2 is decrypted by thread 2, etc). The same method is used for encryption.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+So if your computer has, for example, a quad-core processor, then encryption and decryption are four times faster than on a single-core processor with equivalent specifications (likewise, they are twice faster on dual-core processors, etc).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Increase in encryption/decryption speed is directly proportional to the number of cores and/or processors.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: Processors with the Hyper-Threading technology provide multiple logical cores per one physical core (or multiple logical processors per one physical processor). When Hyper Threading is enabled in the computer firmware (e.g. BIOS) settings, VeraCrypt creates
+ one thread for each logical core/processor. For example, on a 6-core processor that provides two logical cores per one physical core, VeraCrypt uses 12 threads.</div>
+<p><br style="text-align:left">
+When your computer has a multi-core processor/CPU (or multiple processors/CPUs), <a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+header key derivation</a> is parallelized too. As a result, mounting of a volume is several times faster on a multi-core processor (or multi-processor computer) than on a single-core processor (or a single-processor computer) with equivalent specifications.</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Personal Iterations Multiplier (PIM).html b/doc/html/Personal Iterations Multiplier (PIM).html
new file mode 100644
index 0000000..d2da3b7
--- /dev/null
+++ b/doc/html/Personal Iterations Multiplier (PIM).html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Personal%20Iterations%20Multiplier%20(PIM).html">PIM</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>PIM</h1>
+<div>
+<p>PIM stands for &quot;Personal Iterations Multiplier&quot;. It is a parameter that was introduced in VeraCrypt 1.12 and whose value controls the number of iterations used by the header key derivation function. This value can be specified through the password dialog
+ or in the command line.</p>
+<p>If no PIM value is specified, VeraCrypt will use the default number of iterations used in versions prior to 1.12 (see
+<a href="Header%20Key%20Derivation.html">
+Header Key Derivation</a>).</p>
+<p>When a PIM value is specified, the number of iterations is calculated as follows:</p>
+<ul>
+<li>For system encryption that doesn't use SHA-512 or Whirlpool: Iterations = <strong>PIM x 2048</strong> </li><li>For system encryption that uses SHA-512 or Whirlpool, non-system encryption and file containers: Iterations = <strong>15000 &#43; (PIM x 1000)</strong>
+</li></ul>
+<p>Prior to version 1.12, the security of a VeraCrypt volume was only based on the password strength because VeraCrypt was using a fixed number of iterations.<br>
+With the introduction of PIM, VeraCrypt has a 2-dimensional security space for volumes based on the couple (Password, PIM). This provides more flexibility for adjusting the desired security level while also controlling the performance of the mount/boot operation.</p>
+<h3>PIM Usage</h3>
+It is not mandatory to specify a PIM.</div>
+<div><br>
+When creating a volume or when changing the password, the user has the possibility to specify a PIM value by checking the &quot;Use PIM&quot; checkbox which in turn will make a PIM field available in the GUI so a PIM value can be entered.</div>
+<div>&nbsp;</div>
+<div>The PIM is treated like a secret value that must be entered by the user each time alongside the password. If the incorrect PIM value is specified, the mount/boot operation will fail.</div>
+<div>&nbsp;</div>
+<div>Using high PIM values leads to better security thanks to the increased number of iterations but it comes with slower mounting/booting times.</div>
+<div>With small PIM values, mounting/booting is quicker but this could decrease security if a weak password is used.</div>
+<div>&nbsp;</div>
+<div>During the creation of a volume or the encryption of the system, VeraCrypt forces the PIM value to be greater than or equal to a certain minimal value when the password is less than 20 characters. This check is done in order to ensure that, for short passwords,
+ the security level is at least equal to the default level provided by an empty PIM.</div>
+<div>&nbsp;</div>
+<div>The PIM minimal value for short passwords is <strong>98</strong> for system encryption that doesn't use SHA-512 or Whirlpool and
+<strong>485</strong> for the other cases. For password with 20 characters and more, the PIM minimal value is
+<strong>1</strong>. In all cases, leaving the PIM empty or setting its value to 0 will make VeraCrypt use the default high number of iterations as explained in section
+<a href="Header%20Key%20Derivation.html">
+Header Key Derivation</a>.</div>
+<div><br>
+Motivations behind using a custom PIM value can be:<br>
+<ul>
+<li>Add an extra secret parameter (PIM) that an attacker will have to guess </li><li>Increase security level by using large PIM values to thwart future development of brute force attacks.
+</li><li>Speeding up booting or mounting through the use of a small PIM value (less than 98 for system encryption that doesn't use SHA-512 or Whirlpool and less than 485 for the other cases)
+</li></ul>
+<p>The screenshots below show the step to mount a volume using a PIM equal to 231:</p>
+<table style="margin-left:auto; margin-right:auto">
+<tbody>
+<tr>
+<td><img src="Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png" alt="" width="499" height="205"></td>
+</tr>
+<tr>
+<td><img src="Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png" alt="" width="499" height="205"></td>
+</tr>
+</tbody>
+</table>
+<p>&nbsp;</p>
+<h3>Changing/clearing the PIM</h3>
+<p>The PIM of a volume or for system encryption can be changed or cleared using the change password functionality. The screenshots below shows an example of changing the PIM from the empty default value to a value equal to 3 (this is possible since the password
+ has more than 20 characters). In order to do so, the user must first tick &quot;Use PIM&quot; checkbox in the &quot;New&quot; section to reveal the PIM field.</p>
+<table width="519" style="height:896px; width:519px; margin-left:auto; margin-right:auto">
+<caption><strong>Normal volume case</strong></caption>
+<tbody>
+<tr>
+<td style="text-align:center"><img src="Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png" alt="" width="511" height="436"></td>
+</tr>
+<tr>
+<td>
+<p><img src="Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png" alt="" width="511" height="436"></p>
+</td>
+</tr>
+</tbody>
+</table>
+<h5>&nbsp;</h5>
+<table style="margin-left:auto; margin-right:auto">
+<caption><strong>System encryption case</strong></caption>
+<tbody>
+<tr>
+<td><img src="Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png" alt="" width="501" height="426"></td>
+</tr>
+<tr>
+<td><img src="Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png" alt="" width="501" height="426"></td>
+</tr>
+</tbody>
+</table>
+<p>&nbsp;</p>
+<p><a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png
new file mode 100644
index 0000000..e9a5f6f
--- /dev/null
+++ b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png
Binary files differ
diff --git a/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png
new file mode 100644
index 0000000..b619100
--- /dev/null
+++ b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png
Binary files differ
diff --git a/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png
new file mode 100644
index 0000000..7df9d2b
--- /dev/null
+++ b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png
Binary files differ
diff --git a/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png
new file mode 100644
index 0000000..e1bdeba
--- /dev/null
+++ b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png
Binary files differ
diff --git a/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png
new file mode 100644
index 0000000..baf11c3
--- /dev/null
+++ b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png
Binary files differ
diff --git a/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.png b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.png
new file mode 100644
index 0000000..ba0a5d9
--- /dev/null
+++ b/doc/html/Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.png
Binary files differ
diff --git a/doc/html/Physical Security.html b/doc/html/Physical Security.html
new file mode 100644
index 0000000..fb788f0
--- /dev/null
+++ b/doc/html/Physical Security.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Physical%20Security.html">Physical Security</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Physical Security</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If an attacker can physically access the computer hardware <strong style="text-align:left">
+and</strong> you use it after the attacker has physically accessed it, then VeraCrypt may become unable to secure data on the computer.* This is because the attacker may modify the hardware or attach a malicious hardware component to it (such as a hardware
+ keystroke logger) that will capture the password or encryption key (e.g. when you mount a VeraCrypt volume) or otherwise compromise the security of the computer. Therefore, you must not use VeraCrypt on a computer that an attacker has physically accessed.
+ Furthermore, you must ensure that VeraCrypt (including its device driver) is not running when the attacker physically accesses the computer. Additional information pertaining to hardware attacks where the attacker has direct physical access is contained in
+ the section <a href="Unencrypted%20Data%20in%20RAM.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Unencrypted Data in RAM</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Furthermore, even if the attacker cannot physically access the computer hardware <em style="text-align:left">
+directly</em>, he or she may be able to breach the physical security of the computer by remotely intercepting and analyzing emanations from the computer hardware (including the monitor and cables). For example, intercepted emanations from the cable connecting
+ the keyboard with the computer can reveal passwords you type. It is beyond the scope of this document to list all of the kinds of such attacks (sometimes called TEMPEST attacks) and all known ways to prevent them (such as shielding or radio jamming). It is
+ your responsibility to prevent such attacks. If you do not, VeraCrypt may become unable to secure data on the computer.</div>
+<p><br style="text-align:left">
+</p>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* In this section (<em style="text-align:left">Physical Security</em>), the phrase &quot;data on the computer&quot; means data on internal and external storage devices/media (including removable devices
+ and network drives) connected to the computer.</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Pipelining.html b/doc/html/Pipelining.html
new file mode 100644
index 0000000..f50655d
--- /dev/null
+++ b/doc/html/Pipelining.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Pipelining.html">Pipelining</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Pipelining</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When encrypting or decrypting data, VeraCrypt uses so-called pipelining (asynchronous processing). While an application is loading a portion of a file from a VeraCrypt-encrypted volume/drive, VeraCrypt is automatically decrypting it (in RAM). Thanks to pipelining,
+ the application does not have wait for any portion of the file to be decrypted and it can start loading other portions of the file right away. The same applies to encryption when writing data to an encrypted volume/drive.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Pipelining allows data to be read from and written to an encrypted drive as fast as if the drive was not encrypted (the same applies to file-hosted and partition-hosted VeraCrypt
+<a href="VeraCrypt%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+volumes</a>).*</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: Pipelining is implemented only in the Windows versions of VeraCrypt.</div>
+<p>&nbsp;</p>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* Some solid-state drives compress data internally, which appears to increase the actual read/write speed when the data is compressible (for example, text files). However, encrypted data cannot
+ be compressed (as it appears to consist solely of random &quot;noise&quot; without any compressible patterns). This may have various implications. For example, benchmarking software that reads or writes compressible data (such as sequences of zeroes) will report lower
+ speeds on encrypted volumes than on unencrypted volumes (to avoid this, use benchmarking software that reads/writes random or other kinds of uncompressible data)</span><span style="text-align:left; font-size:10px; line-height:12px">.</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Plausible Deniability.html b/doc/html/Plausible Deniability.html
new file mode 100644
index 0000000..2a14c39
--- /dev/null
+++ b/doc/html/Plausible Deniability.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Plausible%20Deniability.html">Plausible Deniability</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Plausible Deniability</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In case an adversary forces you to reveal your password, VeraCrypt provides and supports two kinds of plausible deniability:</div>
+<ol 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">
+Hidden volumes (see the section <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">
+Hidden Volume</a>) and hidden operating systems (see the section <a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+<strong style="text-align:left">Hidden Operating System</strong></a>). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Until decrypted, a VeraCrypt partition/device appears to consist of nothing more than random data (it does not contain any kind of &quot;signature&quot;). Therefore, it should be impossible to prove that a partition or a device is a VeraCrypt volume or that it has been
+ encrypted (provided that the security requirements and precautions listed in the chapter
+<a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions</a> are followed). A possible plausible explanation for the existence of a partition/device containing solely random data is that you have wiped (securely erased) the content of the partition/device using one of the tools
+ that erase data by overwriting it with random data (in fact, VeraCrypt can be used to securely erase a partition/device too, by creating an empty encrypted partition/device-hosted volume within it). However, you need to prevent data leaks (see the section
+<a href="Data%20Leaks.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Data Leaks</a>) and also note that, for <a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a>, the first drive track contains the (unencrypted) VeraCrypt Boot Loader, which can be easily identified as such (for more information, see the chapter
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+System Encryption</a>). When using <a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a>, plausible deniability can be achieved by creating a hidden operating system (see the section
+<a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a>).<br style="text-align:left">
+<br style="text-align:left">
+Although file-hosted VeraCrypt volumes (containers) do not contain any kind of &quot;signature&quot; either (until decrypted, they appear to consist solely of random data), they cannot provide this kind of plausible deniability, because there is practically no plausible
+ explanation for the existence of a file containing solely random data. However, plausible deniability can still be achieved with a file-hosted VeraCrypt volume (container) by creating a hidden volume within it (see above).
+</li></ol>
+<h4 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:12px; margin-bottom:1px">
+<br style="text-align:left">
+Notes</h4>
+<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">
+When formatting a hard disk partition as a VeraCrypt volume (or encrypting a partition in place), the partition table (including the partition type) is
+<em style="text-align:left">never</em> modified (no VeraCrypt &quot;signature&quot; or &quot;ID&quot; is written to the partition table).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+There are methods to find files or devices containing random data (such as VeraCrypt volumes). Note, however, that this should
+<em style="text-align:left">not </em>affect plausible deniability in any way. The adversary still should not be able to
+<em style="text-align:left">prove</em> that the partition/device is a VeraCrypt volume or that the file, partition, or device, contains a hidden VeraCrypt volume (provided that you follow the security requirements and precautions listed in the chapter
+<a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions</a> and in the subsection <a href="Security%20Requirements%20for%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions Pertaining to Hidden Volumes</a>). </li></ul>
+<p>&nbsp;</p>
+<p><a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html>
diff --git a/doc/html/Portable Mode.html b/doc/html/Portable Mode.html
new file mode 100644
index 0000000..3ae2d3c
--- /dev/null
+++ b/doc/html/Portable Mode.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Portable%20Mode.html">Portable Mode</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Portable Mode</h1>
+<p>VeraCrypt can run in so-called portable mode, which means that it does not have to be installed on the operating system under which it is run. However, there are two things to keep in mind:</p>
+<ol>
+<li>You need administrator privileges in order to be able to run VeraCrypt in portable mode (for the reasons, see the chapter
+<a href="Using%20VeraCrypt%20Without%20Administrator%20Privileges.html">
+<em>Using VeraCrypt Without Administrator Privileges</em></a>).
+<table border="2">
+<tbody>
+<tr>
+<td style="text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; color:#ff0000; padding:15px; border:1px solid #000000">
+Note: No matter what kind of software you use, as regards personal privacy in most cases, it is
+<em>not</em> safe to work with sensitive data under systems where you do not have administrator privileges, as the administrator can easily capture and copy your sensitive data, including passwords and keys.</td>
+</tr>
+</tbody>
+</table>
+</li><li>After examining the registry file, it may be possible to tell that VeraCrypt was run (and that a VeraCrypt volume was mounted) on a Windows system even if it had been run in portable mode.
+</li></ol>
+<p><strong>Note</strong>: If that is a problem, see <a href="FAQ.html#notraces" target="_blank.html">
+this question</a> in the FAQ for a possible solution.<br>
+<br>
+There are two ways to run VeraCrypt in portable mode:</p>
+<ol>
+<li>After you extract files from the VeraCrypt self-extracting package, you can directly run
+<em>VeraCrypt.exe</em>.<br>
+<br>
+Note: To extract files from the VeraCrypt self-extracting package, run it, and then select
+<em>Extract</em> (instead of <em>Install</em>) on the second page of the VeraCrypt Setup wizard.
+</li><li>You can use the <em>Traveler Disk Setup</em> facility to prepare a special traveler disk and launch VeraCrypt from there.
+</li></ol>
+<p>The second option has several advantages, which are described in the following sections in this chapter.</p>
+<p>Note: When running in &lsquo;portable&rsquo; mode, the VeraCrypt driver is unloaded when it is no longer needed (e.g., when all instances of the main application and/or of the Volume Creation Wizard are closed and no VeraCrypt volumes are mounted). However,
+ if you force dismount on a VeraCrypt volume when VeraCrypt runs in portable mode, or mount a writable NTFS-formatted volume on Windows Vista or later, the VeraCrypt driver may
+<em>not</em> be unloaded when you exit VeraCrypt (it will be unloaded only when you shut down or restart the system). This prevents various problems caused by a bug in Windows (for instance, it would be impossible to start VeraCrypt again as long as there are
+ applications using the dismounted volume).</p>
+<h3>Tools -&gt; Traveler Disk Setup</h3>
+<p>You can use this facility to prepare a special traveler disk and launch VeraCrypt from there. Note that VeraCrypt &lsquo;traveler disk&rsquo; is
+<em>not</em> a VeraCrypt volume but an <em>unencrypted</em> volume. A &lsquo;traveler disk&rsquo; contains VeraCrypt executable files and optionally the &lsquo;autorun.inf&rsquo; script (see the section
+<em>AutoRun Configuration</em> below). After you select <em>Tools -&gt; Traveler Disk Setup</em>, the
+<em>Traveler Disk Setup</em> dialog box should appear. Some of the parameters that can be set within the dialog deserve further explanation:</p>
+<h4>Include VeraCrypt Volume Creation Wizard</h4>
+<p>Check this option, if you need to create new VeraCrypt volumes using VeraCrypt run from the traveler disk you will create. Unchecking this option saves space on the traveler disk.</p>
+<h4>AutoRun Configuration (autorun.inf)</h4>
+<p>In this section, you can configure the &lsquo;traveler disk&rsquo; to automatically start VeraCrypt or mount a specified VeraCrypt volume when the &lsquo;traveler disk&rsquo; is inserted. This is accomplished by creating a special script file called &lsquo;<em>autorun.inf</em>&rsquo;
+ on the traveler disk. This file is automatically executed by the operating system each time the &lsquo;traveler disk&rsquo; is inserted.<br>
+<br>
+Note, however, that this feature only works for removable storage devices such as CD/DVD (Windows XP SP2, Windows Vista, or a later version of Windows is required for this feature to work on USB memory sticks) and only when it is enabled in the operating system.
+ Depending on the operating system configuration, these auto-run and auto-mount features may work only when the traveler disk files are created on a non-writable CD/DVD-like medium (which is not a bug in VeraCrypt but a limitation of Windows).<br>
+<br>
+Also note that the &lsquo;<em>autorun.inf</em>&rsquo; file must be in the root directory (i.e., for example
+<em>G:\</em>, <em>X:\</em>, or <em>Y:\</em> etc.) of an <strong>unencrypted </strong>
+disk in order for this feature to work.</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Preface.html b/doc/html/Preface.html
new file mode 100644
index 0000000..95bfc59
--- /dev/null
+++ b/doc/html/Preface.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Preface.html">Preface</a>
+</p>
+</div>
+
+<div class="wikidoc">
+<h1>Preface</h1>
+<p>
+Please note that although most chapters of this documentation apply generally to all versions of VeraCrypt, some sections are primarily aimed at users of the Windows versions of VeraCrypt. Hence, such sections may contain information that is inappropriate in regards to the Mac OS X and Linux versions of VeraCrypt.
+</p>
+</div>
+
+</body></html> \ No newline at end of file
diff --git a/doc/html/Program Menu.html b/doc/html/Program Menu.html
new file mode 100644
index 0000000..a142755
--- /dev/null
+++ b/doc/html/Program Menu.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Main%20Program%20Window.html">Main Program Window</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Program%20Menu.html">Program Menu</a>
+</p></div>
+
+<div class="wikidoc">
+<h2>Program Menu</h2>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>Note: To save space, only the menu items that are not self-explanatory are described in this documentation.</p>
+<h3>Volumes -&gt; Auto-Mount All Device-Hosted Volumes</h3>
+<p>See the section <a href="Main%20Program%20Window.html">
+<em>Auto-Mount Devices.</em></a></p>
+<h3>Volumes -&gt; Dismount All Mounted Volumes</h3>
+<p>See the section <a href="Main%20Program%20Window.html">
+<em>Dismount All.</em></a></p>
+<h3>Volumes -&gt; Change Volume Password</h3>
+<p>Allows changing the password of the currently selected VeraCrypt volume (no matter whether the volume is hidden or standard). Only the header key and the secondary header key (XTS mode) are changed &ndash; the master key remains unchanged. This function
+ re-encrypts the volume header using<br>
+<br>
+a header encryption key derived from a new password. Note that the volume header contains the master encryption key with which the volume is encrypted. Therefore, the data stored on the volume will
+<em>not</em> be lost after you use this function (password change will only take a few seconds).<br>
+<br>
+To change a VeraCrypt volume password, click on <em>Select File</em> or <em>Select Device</em>, then select the volume, and from the
+<em>Volumes</em> menu select <em>Change Volume Password</em>.<br>
+<br>
+Note: For information on how to change a password used for pre-boot authentication, please see the section
+<em>System -&gt; Change Password</em>.<br>
+<br>
+See also the chapter <a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>.</p>
+<div style="margin-left:50px">
+<h4>PKCS-5 PRF</h4>
+<p>In this field you can select the algorithm that will be used in deriving new volume header keys (for more information, see the section
+<a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a>) and in generating the new salt (for more information, see the section
+<a href="Random%20Number%20Generator.html">
+<em>Random Number Generator</em></a>).<br>
+<br>
+Note: When VeraCrypt re-encrypts a volume header, the original volume header is first overwritten many times (3, 7, 35 or 256 depending on the user choice) with random data to prevent adversaries from using techniques such as magnetic force microscopy or magnetic
+ force scanning tunneling microscopy [17] to recover the overwritten header (however, see also the chapter
+<a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>).</p>
+</div>
+<h3>Volumes -&gt; Set Header Key Derivation Algorithm</h3>
+<p>This function allows you to re-encrypt a volume header with a header key derived using a different PRF function (for example, instead of HMAC-RIPEMD-160 you could use HMAC-Whirlpool). Note that the volume header contains the master encryption key with which
+ the volume is encrypted. Therefore, the data stored on the volume will <em>not</em> be lost after you use this function. For more information, see the section
+<a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a>.<br>
+<br>
+Note: When VeraCrypt re-encrypts a volume header, the original volume header is first overwritten many times (3, 7, 35 or 256 depending on the user choice) with random data to prevent adversaries from using techniques such as magnetic force microscopy or magnetic
+ force scanning tunneling microscopy [17] to recover the overwritten header (however, see also the chapter
+<a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>).</p>
+<h3>Volumes -&gt; Add/Remove Keyfiles to/from Volume</h3>
+<h3>Volumes -&gt; Remove All Keyfiles from Volume</h3>
+<p>See the chapter <a href="Keyfiles.html">
+<em>Keyfiles.</em></a></p>
+<h3>Favorites -&gt; Add Mounted Volume to Favorites Favorites -&gt; Organize Favorite Volumes Favorites -&gt; Mount Favorites Volumes</h3>
+<p>See the chapter <a href="Favorite%20Volumes.html">
+<em>Favorite Volumes</em></a>.</p>
+<h3>Favorites -&gt; Add Mounted Volume to System Favorites</h3>
+<h3>Favorites -&gt; Organize System Favorite Volumes</h3>
+<p>See the chapter <a href="System%20Favorite%20Volumes.html">
+<em>System Favorite Volumes</em></a>.</p>
+<h3>System -&gt; Change Password</h3>
+<p>Changes the password used for pre-boot authentication (see the chapter <em>System Encryption</em>). WARNING: Your VeraCrypt Rescue Disk allows you to restore key data if it is damaged. By doing so, you also restore the password that was valid when the VeraCrypt
+ Rescue Disk was created. Therefore, whenever you change the password, you should destroy your VeraCrypt Rescue Disk and create a new one (select
+<em>System</em> -&gt; <em>Create Rescue Disk</em>). Otherwise, an attacker could decrypt your system partition/drive using the old password (if he finds the old VeraCrypt Rescue Disk and uses it to restore the key data). See also the chapter
+<a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>.<br>
+<br>
+For more information on changing a password, please see the section <em>Volumes -&gt; Change Volume Password</em> above.</p>
+<h3>System -&gt; Mount Without Pre-Boot Authentication</h3>
+<p>Check this option, if you need to mount a partition that is within the key scope of system encryption without pre-boot authentication. For example, if you need to mount a partition located on the encrypted system drive of another operating system that is
+ not running. This can be useful e.g. when you need to back up or repair an operating system encrypted by VeraCrypt (from within another operating system).</p>
+<p>Note 1: If you need to mount multiple partitions at once, click <em>&lsquo;Auto-Mount Devices</em>&rsquo;, then click &lsquo;<em>Mount Options</em>&rsquo; and enable the option &lsquo;<em>Mount partition using system encryption without pre-boot authentication</em>&rsquo;.<br>
+<br>
+Please note you cannot use this function to mount extended (logical) partitions that are located on an entirely encrypted system drive.</p>
+<h3>Tools -&gt; Clear Volume History</h3>
+<p>Clears the list containing the file names (if file-hosted) and paths of the last twenty successfully mounted volumes.</p>
+<h3>Tools -&gt; Traveler Disk Setup</h3>
+<p>See the chapter <a href="Portable%20Mode.html">
+<em>Portable Mode.</em></a></p>
+<h3>Tools -&gt; Keyfile Generator</h3>
+<p>See section <em>Tools -&gt; Keyfile Generator</em> in the chapter <a href="Keyfiles.html">
+<em>Keyfiles.</em></a></p>
+<h3 id="tools-backup-volume-header">Tools -&gt; Backup Volume Header</h3>
+<h3 id="tools-restore-volume-header">Tools -&gt; Restore Volume Header</h3>
+<p>If the header of a VeraCrypt volume is damaged, the volume is, in most cases, impossible to mount. Therefore, each volume created by VeraCrypt (except system partitions) contains an embedded backup header, located at the end of the volume. For extra safety,
+ you can also create external volume header backup files. To do so, click <em>Select Device</em> or
+<em>Select File</em>, select the volume, select <em>Tools</em> -&gt; <em>Backup Volume Header</em>, and then follow the instructions.</p>
+<p>Note: For system encryption, there is no backup header at the end of the volume. For non-system volumes, a shrink operation is done first to ensure that all data are put at the beginning of the volume, leaving all free space at the end so that we have a
+ place to put the backup header. For system partitions, we can't perform this needed shrink operation while Windows is running and so the backup header can't be created at the end of the partition. The alternative way in the case of system encryption is the
+ use of the <a href="VeraCrypt%20Rescue%20Disk.html">
+Rescue Disk</a>.</p>
+<p>Note: A backup header (embedded or external) is <em>not</em> a copy of the original volume header because it is encrypted with a different header key derived using a different salt (see the section
+<a href="Header%20Key%20Derivation.html">
+<em>Header Key Derivation, Salt, and Iteration Count</em></a>). When the volume password and/or keyfiles are changed, or when the header is restored from the embedded (or an external) header backup, both the volume header and the backup header (embedded in
+ the volume) are re-encrypted with header keys derived using newly generated salts (the salt for the volume header is different from the salt for the backup header). Each salt is generated by the VeraCrypt random number generator (see the section
+<a href="Random%20Number%20Generator.html">
+<em>Random Number Generator</em></a>).</p>
+<p>Both types of header backups (embedded and external) can be used to repair a damaged volume header. To do so, click
+<em>Select Device</em> or <em>Select File</em>, select the volume, select <em>Tools</em> -&gt;
+<em>Restore Volume Header</em>, and then follow the instructions.<br>
+<br>
+WARNING: Restoring a volume header also restores the volume password that was valid when the backup was created. Moreover, if keyfile(s) are/is necessary to mount a volume when the backup is created, the same keyfile(s) will be necessary to mount the volume
+ again after the volume header is restored. For more information, see the section
+<a href="Encryption%20Scheme.html"><em>Encryption Scheme</em></a> in the chapter
+<a href="Technical%20Details.html"><em>Technical Details</em></a>.<br>
+<br>
+After you create a volume header backup, you might need to create a new one only when you change the volume password and/or keyfiles. Otherwise, the volume header remains unmodified so the volume header backup remains up-to-date.</p>
+<p>Note: Apart from salt (which is a sequence of random numbers), external header backup files do not contain any unencrypted information and they cannot be decrypted without knowing the correct password and/or supplying the correct keyfile(s). For more information,
+ see the chapter <a href="Technical%20Details.html">
+<em>Technical Details</em></a>.</p>
+<p>When you create an external header backup, both the standard volume header and the area where a hidden volume header can be stored is backed up, even if there is no hidden volume within the volume (to preserve plausible deniability of hidden volumes). If
+ there is no hidden volume within the volume, the area reserved for the hidden volume header in the backup file will be filled with random data (to preserve plausible deniability).<br>
+<br>
+When <em>restoring</em> a volume header, you need to choose the type of volume whose header you wish to restore (a standard or hidden volume). Only one volume header can be restored at a time. To restore both headers, you need to use the function twice (<em>Tools</em>
+ -&gt; <em>Restore Volume Header</em>). You will need to enter the correct password (and/or to supply the correct keyfiles) that was/were valid when the volume header backup was created. The password (and/or keyfiles) will also automatically determine the type
+ of the volume header to restore, i.e. standard or hidden (note that VeraCrypt determines the type through the process of trial and error).<br>
+<br>
+Note: If the user fails to supply the correct password (and/or keyfiles) twice in a row when trying to mount a volume, VeraCrypt will automatically try to mount the volume using the embedded backup header (in addition to trying to mount it using the primary
+ header) each subsequent time that the user attempts to mount the volume (until he or she clicks
+<em>Cancel</em>). If VeraCrypt fails to decrypt the primary header but it successfully decrypts the embedded backup header at the same time, the volume is mounted and the user is warned that the volume header is damaged (and informed as to how to repair it).</p>
+<h3 id="Settings-Performance">Settings -&gt; Performance and Driver Options</h3>
+<p>Invokes the Performance dialog window, where you can change enable or disable AES Hardware acceleration and thread based parallelization. You can also change the following driver option:</p>
+<h4>Enable extended disk control codes support</h4>
+<p>If enabled, VeraCrypt driver will support returning extended technical information about mounted volumes through IOCTL_STORAGE_QUERY_PROPERTY control code. This control code is always supported by physical drives and it can be required by some applications
+ to get technical information about a drive (e.g. the Windows fsutil program uses this control code to get the physical sector size of a drive.).<br>
+Enabling this option brings VeraCrypt volumes behavior much closer to that of physical disks and if it is disabled, applications can easily distinguish between physical disks and VeraCrypt volumes since sending this control code to a VeraCrypt volume will result
+ in an error.<br>
+Disable this option if you experience stability issues (like volume access issues or system BSOD) which can be caused by poorly written software and drivers.</p>
+<h3>Settings -&gt; Preferences</h3>
+<p>Invokes the Preferences dialog window, where you can change, among others, the following options:</p>
+<h4>Wipe cached passwords on exit</h4>
+<p>If enabled, passwords (which may also contain processed keyfile contents) cached in driver memory will be cleared when VeraCrypt exits.</p>
+<h4>Cache passwords in driver memory</h4>
+<p>When checked, passwords and/or processed keyfile contents for up to last four successfully mounted VeraCrypt volumes are cached. This allows mounting volumes without having to type their passwords (and selecting keyfiles) repeatedly. VeraCrypt never saves
+ any password to a disk (however, see the chapter <a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>). Password caching can be enabled/disabled in the Preferences (<em>Settings</em> -&gt;
+<em>Preferences</em>) and in the password prompt window. If the system partition/drive is encrypted, caching of the pre-boot authentication password can be enabled or disabled in the system encryption settings (<em>Settings</em> &gt; &lsquo;<em>System Encryption</em>&rsquo;).</p>
+<h4>Temporary Cache password during &quot;Mount Favorite Volumes&quot; operations</h4>
+<p>When this option is unchecked (this is the default), VeraCrypt will display the password prompt window for every favorite volume during the execution of the &quot;Mount Favorite Volumes&quot; operation and each password is erased once the volume is mounted (unless
+ password caching is enabled).<br>
+<br>
+If this option is checked and if there are two or more favorite volumes, then during the operation &quot;Mount Favorite Volumes&quot;, VeraCrypt will first try the password of the previous favorite and if it doesn't work, it will display password prompt window. This
+ logic applies starting from the second favorite volume onwards. Once all favorite volumes are processed, the password is erased from memory.</p>
+<p>This option is useful when favorite volumes share the same password since the password prompt window will only be displayed once for the first favorite and VeraCrypt will automatically mount all subsequent favorites.</p>
+<p>Please note that since we can't assume that all favorites use the same PRF (hash) nor the same TrueCrypt mode, VeraCrypt uses Autodetection for the PRF of subsequent favorite volumes and it tries both TrueCryptMode values (false, true) which means that the
+ total mounting time will be slower compared to the individual mounting of each volume with the manual selection of the correct PRF and the correct TrueCryptMode.</p>
+<h4>Open Explorer window for successfully mounted volume</h4>
+<p>If this option is checked, then after a VeraCrypt volume has been successfully mounted, an Explorer window showing the root directory of the volume (e.g., T:\) will be automatically opened.</p>
+<h4>Use a different taskbar icon when there are mounted volumes</h4>
+<p>If enabled, the appearance of the VeraCrypt taskbar icon (shown within the system tray notification area) is different while a VeraCrypt volume is mounted, except the following:</p>
+<ul>
+<li>Partitions/drives within the key scope of active system encryption (e.g., a system partition encrypted by VeraCrypt, or a non-system partition located on a system drive encrypted by VeraCrypt, mounted when the encrypted operating system is running).
+</li><li>VeraCrypt volumes that are not fully accessible to the user account (e.g. a volume mounted from within another user account).
+</li><li>VeraCrypt volumes that are not displayed in the VeraCrypt application window. For example, system favorite volumes attempted to be dismounted by an instance of VeraCrypt without administrator privileges when the option '<em>Allow only administrators to
+ view and dismount system favorite volumes in VeraCrypt</em>' is enabled. </li></ul>
+<h4>VeraCrypt Background Task &ndash; Enabled</h4>
+<p>See the chapter <a href="VeraCrypt%20Background%20Task.html">
+<em>VeraCrypt Background Task</em></a>.</p>
+<h4>VeraCrypt Background Task &ndash; Exit when there are no mounted volumes</h4>
+<p>If this option is checked, the VeraCrypt background task automatically and silently exits as soon as there are no mounted VeraCrypt volumes. For more information, see the chapter
+<a href="VeraCrypt%20Background%20Task.html">
+<em>VeraCrypt Background Task</em></a>. Note that this option cannot be disabled when VeraCrypt runs in portable mode.</p>
+<h4>Auto-dismount volume after no data has been read/written to it for</h4>
+<p>After no data has been written/read to/from a VeraCrypt volume for <em>n</em> minutes, the volume is automatically dismounted.</p>
+<h4>Force auto-dismount even if volume contains open files or directories</h4>
+<p>This option applies only to auto-dismount (not to regular dismount). It forces dismount (without prompting) on the volume being auto-dismounted in case it contains open files or directories (i.e., file/directories that are in use by the system or applications).</p>
+<p>&nbsp;</p>
+<p><a href="Mounting%20VeraCrypt%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Protection of Hidden Volumes.html b/doc/html/Protection of Hidden Volumes.html
new file mode 100644
index 0000000..7d489d5
--- /dev/null
+++ b/doc/html/Protection of Hidden Volumes.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Plausible%20Deniability.html">Plausible Deniability</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hidden%20Volume.html">Hidden Volume</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Protection%20of%20Hidden%20Volumes.html">Protection of Hidden Volumes</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Protection of Hidden Volumes Against Damage</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If you mount a VeraCrypt volume within which there is a <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden volume</a>, you may <em style="text-align:left">read</em> data stored on the (outer) volume without any risk. However, if you (or the operating system) need to
+<em style="text-align:left">save</em> data to the outer volume, there is a risk that the hidden volume will get damaged (overwritten). To prevent this, you should protect the hidden volume in a way described in this section.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When mounting an outer volume, type in its password and before clicking <em style="text-align:left">
+OK, </em>click <em style="text-align:left">Mount Options</em>:</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<img src="Protection of Hidden Volumes_Image_027.jpg" alt="VeraCrypt GUI" width="499" height="205"></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+&nbsp;</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In the <em style="text-align:left">Mount Options </em>dialog window, enable the option '<em style="text-align:left">Protect hidden volume against damage caused by writing to outer volume</em> '. In the '<em style="text-align:left">Password to hidden volume</em>'
+ input field, type the password for the hidden volume. Click <em style="text-align:left">
+OK </em>and, in the main password entry dialog, click <em style="text-align:left">
+OK</em>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<img src="Protection of Hidden Volumes_Image_028.jpg" alt="Mounting with hidden protection" width="432" height="402"></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<br style="text-align:left">
+Both passwords must be correct; otherwise, the outer volume will not be mounted. When hidden volume protection is enabled, VeraCrypt does
+<em style="text-align:left">not</em> actually mount the hidden volume. It only decrypts its header (in RAM) and retrieves information about the size of the hidden volume (from the decrypted header). Then, the outer volume is mounted and any attempt to save
+ data to the area of the hidden volume will be rejected (until the outer volume is dismounted).
+<strong style="text-align:left">Note that VeraCrypt never modifies the filesystem (e.g., information about allocated clusters, amount of free space, etc.) within the outer volume in any way. As soon as the volume is dismounted, the protection is lost. When
+ the volume is mounted again, it is not possible to determine whether the volume has used hidden volume protection or not. The hidden volume protection can be activated only by users who supply the correct password (and/or keyfiles) for the hidden volume (each
+ time they mount the outer volume). <br style="text-align:left">
+</strong><br style="text-align:left">
+As soon as a write operation to the hidden volume area is denied/prevented (to protect the hidden volume), the entire host volume (both the outer and the hidden volume) becomes write-protected until dismounted (the VeraCrypt driver reports the 'invalid parameter'
+ error to the system upon each attempt to write data to the volume). This preserves plausible deniability (otherwise certain kinds of inconsistency within the file system could indicate that this volume has used hidden volume protection). When damage to hidden
+ volume is prevented, a warning is displayed (provided that the VeraCrypt Background Task is enabled &ndash; see the chapter
+<a href="VeraCrypt%20Background%20Task.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Background Task</a>). Furthermore, the type of the mounted outer volume displayed in the main window changes to '<em style="text-align:left">Outer(!)</em> ':</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<img src="Protection of Hidden Volumes_Image_029.jpg" alt="VeraCrypt GUI" width="579" height="498"></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<br style="text-align:left">
+Moreover, the field <em style="text-align:left">Hidden Volume Protected </em>in the
+<em style="text-align:left">Volume Properties </em>dialog window says:<br style="text-align:left">
+'<em style="text-align:left">Yes (damage prevented!)</em>'<em style="text-align:left">.</em><br style="text-align:left">
+<br style="text-align:left">
+Note that when damage to hidden volume is prevented, <em style="text-align:left">
+no</em> information about the event is written to the volume. When the outer volume is dismounted and mounted again, the volume properties will
+<em style="text-align:left">not </em>display the string &quot;<em style="text-align:left">damage prevented</em>&quot;.<em style="text-align:left"><br style="text-align:left">
+</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+There are several ways to check that a hidden volume is being protected against damage:</div>
+<ol 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">
+A confirmation message box saying that hidden volume is being protected is displayed after the outer volume is mounted (if it is not displayed, the hidden volume is not protected!).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+In the <em style="text-align:left">Volume Properties </em>dialog, the field <em style="text-align:left">
+Hidden Volume Protected </em>says '<em style="text-align:left">Yes</em>': </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The type of the mounted outer volume is <em style="text-align:left">Outer</em>: </li></ol>
+<p><img src="Protection of Hidden Volumes_Image_030.jpg" alt="VeraCrypt GUI" width="579" height="232"></p>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left"><br style="text-align:left">
+<strong style="text-align:left">Important: You are the only person who can mount your outer volume with the hidden volume protection enabled (since nobody else knows your hidden volume password). When an adversary asks you to mount an outer volume, you of course
+ must </strong></em><strong style="text-align:left">not</strong><em style="text-align:left"><strong style="text-align:left"> mount it with the hidden volume protection enabled. You must mount it as a normal volume (and then VeraCrypt will not show the volume
+ type &quot;Outer&quot; but &quot;Normal&quot;). The reason is that, during the time when an outer volume is mounted with the hidden volume protection enabled, the adversary
+</strong></em><strong style="text-align:left">can</strong><em style="text-align:left"><strong style="text-align:left"> find out that a hidden volume exists within the outer volume (he/she will be able to find it out until the volume is dismounted and possibly
+ even some time after the computer has been powered off - see <a href="Unencrypted%20Data%20in%20RAM.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Unencrypted Data in RAM</a>).</strong></em> <br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<em style="text-align:left">Warning</em>: Note that the option '<em style="text-align:left">Protect hidden volume against damage caused by writing to outer volume</em>' in the
+<em style="text-align:left">Mount Options </em>dialog window is automatically disabled after a mount attempt is completed, no matter whether it is successful or not (all hidden volumes that are already being protected will, of course, continue to be protected).
+ Therefore, you need to check that option <em style="text-align:left">each </em>time you attempt to mount the outer volume (if you wish the hidden volume to be protected):<br style="text-align:left">
+<br style="text-align:left">
+<img src="Protection of Hidden Volumes_Image_031.jpg" alt="VeraCrypt GUI" width="432" height="402"></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+If you want to mount an outer volume and protect a hidden volume within using cached passwords, then follow these steps: Hold down the
+<em style="text-align:left">Control </em>(<em style="text-align:left">Ctrl</em>) key when clicking
+<em style="text-align:left">Mount </em>(or select <em style="text-align:left">Mount with Options
+</em>from the <em style="text-align:left">Volumes </em>menu). This will open the <em style="text-align:left">
+Mount Options </em>dialog. Enable the option '<em style="text-align:left">Protect hidden volume against damage caused by writing to outer volume</em>' and leave the password box empty. Then click
+<em style="text-align:left">OK</em>.</div>
+<p>If you need to mount an outer volume and you know that you will not need to save any data to it, then the most comfortable way of protecting the hidden volume against damage is mounting the outer volume as read-only (see the section
+<a href="Mounting%20VeraCrypt%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Mount Options</a>).</p>
+<p>&nbsp;</p>
+<p><a href="Security%20Requirements%20for%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Protection of Hidden Volumes_Image_027.jpg b/doc/html/Protection of Hidden Volumes_Image_027.jpg
new file mode 100644
index 0000000..69ed245
--- /dev/null
+++ b/doc/html/Protection of Hidden Volumes_Image_027.jpg
Binary files differ
diff --git a/doc/html/Protection of Hidden Volumes_Image_028.jpg b/doc/html/Protection of Hidden Volumes_Image_028.jpg
new file mode 100644
index 0000000..5a44bb0
--- /dev/null
+++ b/doc/html/Protection of Hidden Volumes_Image_028.jpg
Binary files differ
diff --git a/doc/html/Protection of Hidden Volumes_Image_029.jpg b/doc/html/Protection of Hidden Volumes_Image_029.jpg
new file mode 100644
index 0000000..1185714
--- /dev/null
+++ b/doc/html/Protection of Hidden Volumes_Image_029.jpg
Binary files differ
diff --git a/doc/html/Protection of Hidden Volumes_Image_030.jpg b/doc/html/Protection of Hidden Volumes_Image_030.jpg
new file mode 100644
index 0000000..fc35b2e
--- /dev/null
+++ b/doc/html/Protection of Hidden Volumes_Image_030.jpg
Binary files differ
diff --git a/doc/html/Protection of Hidden Volumes_Image_031.jpg b/doc/html/Protection of Hidden Volumes_Image_031.jpg
new file mode 100644
index 0000000..976a66d
--- /dev/null
+++ b/doc/html/Protection of Hidden Volumes_Image_031.jpg
Binary files differ
diff --git a/doc/html/RIPEMD-160.html b/doc/html/RIPEMD-160.html
new file mode 100644
index 0000000..663b073
--- /dev/null
+++ b/doc/html/RIPEMD-160.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hash%20Algorithms.html">Hash Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="RIPEMD-160.html">RIPEMD-160</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>RIPEMD-160</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+RIPEMD-160, published in 1996, is a hash algorithm designed by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel in an open academic community. The size of the output of RIPEMD-160 is 160 bits. RIPEMD-160 is a strengthened version of the RIPEMD hash algorithm
+ that was developed in the framework of the European Union's project RIPE (<em style="text-align:left">RACE Integrity Primitives Evaluation</em>), 1988-1992. RIPEMD-160 was adopted by the International Organization for Standardization (ISO) and the IEC in the
+ ISO/IEC 10118-3:2004 international standard [21].</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="SHA-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Random Number Generator.html b/doc/html/Random Number Generator.html
new file mode 100644
index 0000000..cadc171
--- /dev/null
+++ b/doc/html/Random Number Generator.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Random%20Number%20Generator.html">Random Number Generator</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Random Number Generator</h1>
+<p>The VeraCrypt random number generator (RNG) is used to generate the master encryption key, the secondary key (XTS mode), salt, and keyfiles. It creates a pool of random values in RAM (memory). The pool, which is 320 bytes long, is filled with data from the
+ following sources:</p>
+<ul>
+<li>Mouse movements </li><li>Keystrokes </li><li><em>Mac OS X and Linux</em>: Values generated by the built-in RNG (both <em>/dev/random</em> and<em>/dev/urandom</em>)
+</li><li><em>MS Windows only</em>: MS Windows CryptoAPI (collected regularly at 500-ms interval)
+</li><li><em>MS Windows only</em>: Network interface statistics (NETAPI32) </li><li><em>MS Windows only</em>: Various Win32 handles, time variables, and counters (collected regularly at 500-ms interval)
+</li></ul>
+<p>Before a value obtained from any of the above-mentioned sources is written to the pool, it is divided into individual bytes (e.g., a 32-bit number is divided into four bytes). These bytes are then individually written to the pool with the modulo 2<sup>8</sup>
+ addition operation (not by replacing the old values in the pool) at the position of the pool cursor. After a byte is written, the pool cursor position is advanced by one byte. When the cursor reaches the end of the pool, its position is set to the beginning
+ of the pool. After every 16<sup>th</sup> byte written to the pool, the pool mixing function is automatically applied to the entire pool (see below).</p>
+<h2>Pool Mixing Function</h2>
+<p>The purpose of this function is to perform diffusion [2]. Diffusion spreads the influence of individual &ldquo;raw&rdquo; input bits over as much of the pool state as possible, which also hides statistical relationships. After every 16<sup>th</sup> byte
+ written to the pool, this function is applied to the entire pool.</p>
+<p>Description of the pool mixing function:</p>
+<ol>
+<li>Let <em>R</em> be the randomness pool. </li><li>Let <em>H</em> be the hash function selected by the user (SHA-512, RIPEMD-160, or Whirlpool).
+</li><li><em>l</em> = byte size of the output of the hash function <em>H</em> (i.e., if
+<em>H</em> is RIPEMD-160, then <em>l</em> = 20; if <em>H</em> is SHA-512, <em>l</em> = 64)
+</li><li><em>z</em> = byte size of the randomness pool <em>R </em>(320 bytes) </li><li><em>q</em> = <em>z</em> / <em>l</em> &ndash; 1 (e.g., if <em>H</em> is Whirlpool, then
+<em>q</em> = 4) </li><li>Ris divided intol-byte blocksB0...Bq.
+<p>For 0 &le; i &le; q (i.e., for each block B) the following steps are performed:</p>
+<ol type="a">
+<li><em>M = H</em> (<em>B</em>0 || <em>B</em>1 || ... || <em>B</em>q) [i.e., the randomness pool is hashed using the hash function H, which produces a hash M]
+</li><li>Bi = Bi ^ M </li></ol>
+</li><li><em>R = B</em>0 || <em>B</em>1 || ... || <em>B</em>q </li></ol>
+<p>For example, if <em>q</em> = 1, the randomness pool would be mixed as follows:</p>
+<ol>
+<li>(<em>B</em>0 || <em>B</em>1) = <em>R</em> </li><li><em>B</em>0 = <em>B</em>0 ^ <em>H</em>(<em>B</em>0 || <em>B</em>1) </li><li><em>B</em>1 = <em>B</em>1 ^ <em>H</em>(<em>B</em>0 || <em>B</em>1) </li><li><em>R</em> = <em>B</em>0 || <em>B</em>1 </li></ol>
+<h2>Generated Values</h2>
+<p>The content of the RNG pool is never directly exported (even when VeraCrypt instructs the RNG to generate and export a value). Thus, even if the attacker obtains a value generated by the RNG, it is infeasible for him to determine or predict (using the obtained
+ value) any other values generated by the RNG during the session (it is infeasible to determine the content of the pool from a value generated by the RNG).</p>
+<p>The RNG ensures this by performing the following steps whenever VeraCrypt instructs it to generate and export a value:</p>
+<ol>
+<li>Data obtained from the sources listed above is added to the pool as described above.
+</li><li>The requested number of bytes is copied from the pool to the output buffer (the copying starts from the position of the pool cursor; when the end of the pool is reached, the copying continues from the beginning of the pool; if the requested number of bytes
+ is greater than the size of the pool, no value is generated and an error is returned).
+</li><li>The state of each bit in the pool is inverted (i.e., 0 is changed to 1, and 1 is changed to 0).
+</li><li>Data obtained from some of the sources listed above is added to the pool as described above.
+</li><li>The content of the pool is transformed using the pool mixing function. Note: The function uses a cryptographically secure one-way hash function selected by the user (for more information, see the section
+<em>Pool Mixing Function</em> above). </li><li>The transformed content of the pool is XORed into the output buffer as follows:
+<ol type="a">
+<li>The output buffer write cursor is set to 0 (the first byte of the buffer). </li><li>The byte at the position of the pool cursor is read from the pool and XORed into the byte in the output buffer at the position of the output buffer write cursor.
+</li><li>The pool cursor position is advanced by one byte. If the end of the pool is reached, the cursor position is set to 0 (the first byte of the pool).
+</li><li>The position of the output buffer write cursor is advanced by one byte. </li><li>Steps b&ndash;d are repeated for each remaining byte of the output buffer (whose length is equal to the requested number of bytes).
+</li><li>The content of the output buffer, which is the final value generated by the RNG, is exported.
+</li></ol>
+</li></ol>
+<h2>Design Origins</h2>
+<p>The design and implementation of the random number generator are based on the following works:</p>
+<ul>
+<li>Software Generation of Practically Strong Random Numbers by Peter Gutmann [10]
+</li><li>Cryptographic Random Numbers by Carl Ellison [11] </li></ul>
+<p>&nbsp;</p>
+<p><a href="Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Reallocated Sectors.html b/doc/html/Reallocated Sectors.html
new file mode 100644
index 0000000..cbaef18
--- /dev/null
+++ b/doc/html/Reallocated Sectors.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Reallocated%20Sectors.html">Reallocated Sectors</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Reallocated Sectors</h1>
+<p>Some storage devices, such as hard drives, internally reallocate/remap bad sectors. Whenever the device detects a sector to which data cannot be written, it marks the sector as bad and remaps it to a sector in a hidden reserved area on the drive. Any subsequent
+ read/write operations from/to the bad sector are redirected to the sector in the reserved area. This means that any existing data in the bad sector remains on the drive and it cannot be erased (overwritten with other data). This may have various security implications.
+ For instance, data that is to be encrypted in place may remain unencrypted in the bad sector. Likewise, data to be erased (for example, during the process of creation of a hidden operating system) may remain in the bad sector. Plausible deniability (see section
+<a href="Plausible%20Deniability.html"><em>Plausible Deniability</em></a>) may be adversely affected whenever a sector is reallocated. Additional examples of possible security implications are listed in the section
+<a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>. Please note that this list is not exhaustive (these are just examples). Also note that VeraCrypt
+<em>cannot</em> prevent any security issues related to or caused by reallocated sectors. To find out the number of reallocated sectors on a hard drive, you can use e.g. a third-party software tool for reading so-called S.M.A.R.T. data.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/References.html b/doc/html/References.html
new file mode 100644
index 0000000..a31f432
--- /dev/null
+++ b/doc/html/References.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="References.html">References</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>References</h1>
+<p>&nbsp;</p>
+<table style="border-collapse:separate; border-spacing:0px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[1]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+U.S. Committee on National Security Systems (CNSS), <em style="text-align:left">National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information</em>, CNSS Policy No. 15, Fact Sheet
+ No. 1, June 2003, available at <a href="http://csrc.nist.gov/groups/STM/cmvp/documents/CNSS15FS.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/groups/STM/cmvp/documents/CNSS15FS.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[2]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+C. E. Shannon, <em style="text-align:left">Communication Theory of Secrecy Systems</em>, Bell System Technical Journal, v. 28, n. 4, 1949</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[3]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+NIST, <em style="text-align:left">Advanced Encryption Standard (AES)</em>, Federal Information Processing Standards Publication 197, November 26, 2001, available at
+<a href="http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[4]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+J. Nechvatal, E. Barker, L. Bassham, W. Burr, M. Dworkin, J. Foti, E. Roback, NIST,
+<em style="text-align:left">Report on the Development of the Advanced Encryption Standard (AES)</em>, October 2, 2000, Journal of Research of the National Institute of Standards and Technology, Vol. 106, No. 3, May-June 2001, available at
+<a href="http://csrc.nist.gov/archive/aes/round2/r2report.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/archive/aes/round2/r2report.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[5]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+B. Schneier, J. Kelsey, D. Whiting, D. Wagner, C. Hall, N. Ferguson, T. Kohno, M. Stay,
+<em style="text-align:left">The Twofish Team's Final Comments on AES Selection, </em>
+May 15, 2000, available at <a href="http://csrc.nist.gov/archive/aes/round2/comments/20000515-bschneier.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/archive/aes/round2/comments/20000515-bschneier.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[6]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+Bruce Schneier, <em style="text-align:left">Beyond Fear: Thinking Sensibly About Security in an Uncertain World</em>, Springer, 2003
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[7]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+RSA Laboratories, <em style="text-align:left">PKCS #5 v2.0: Password-Based Cryptography Standard</em>, RSA Data Security, Inc. Public-Key Cryptography Standards (PKCS), March 25, 1999, available at
+<a href="https://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs-5-password-based-cryptography-standard.htm" target="_blank">
+https://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs-5-password-based-cryptography-standard.htm</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[8]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+H. Krawczyk, M. Bellare, R. Canetti, <em style="text-align:left">HMAC: Keyed-Hashing for Message Authentication</em>, RFC 2104, February 1997, available at
+<a href="http://www.ietf.org/rfc/rfc2104.txt" style="text-align:left; color:#0080c0; text-decoration:none">
+http://www.ietf.org/rfc/rfc2104.txt</a>. </td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[9]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+M. Nystrom, RSA Security, <em style="text-align:left">Identifiers and Test Vectors for HMAC-SHA-224, HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512</em>, RFC 4231, December 2005, available at
+<a href="http://www.ietf.org/rfc/rfc4231.txt" style="text-align:left; color:#0080c0; text-decoration:none">
+http://www.ietf.org/rfc/rfc4231.txt</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[10]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+Peter Gutmann, <em style="text-align:left">Software Generation of Practically Strong Random Numbers</em>, presented at the 1998 Usenix Security Symposium, available at
+<a href="http://www.cs.auckland.ac.nz/%7Epgut001/pubs/usenix98.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://www.cs.auckland.ac.nz/~pgut001/pubs/usenix98.pdf</a>. </td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[11]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+Carl Ellison, <em style="text-align:left">Cryptographic Random Numbers</em>, originally an appendix to the P1363 standard, available at
+<a href="http://world.std.com/%7Ecme/P1363/ranno.html" style="text-align:left; color:#0080c0; text-decoration:none">
+http://world.std.com/~cme/P1363/ranno.html</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[12]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+P. Rogaway, <em style="text-align:left">Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC</em>, Asiacrypt 2004. LNCS vol. 3329. Springer, 2004. Also available at:
+<a href="http://www.cs.ucdavis.edu/%7Erogaway/papers/offsets.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://www.cs.ucdavis.edu/~rogaway/papers/offsets.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[13]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+J. Kelsey, <em style="text-align:left">Twofish Technical Report #7: Key Separation in Twofish</em>, AES Round 2 public comment, April 7, 2000</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[14]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+NIST, <em style="text-align:left">Secure Hash Standard</em>, FIPS 180-2, August 1, 2002, available at
+<a href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[15]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+U. Maurer, J. Massey, <em style="text-align:left">Cascade Ciphers: The Importance of Being First</em>, Journal of Cryptology, v. 6, n. 1, 1993
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[16]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+Bruce Schneier, <em style="text-align:left">Applied Cryptography</em>, Second Edition, John Wiley &amp; Sons, 1996
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[17]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+Peter Gutmann, <em style="text-align:left">Secure Deletion of Data from Magnetic and Solid-State Memory</em>, first published in the Sixth USENIX Security Symposium Proceedings, San Jose, California, July 22-25, 1996, available at
+<a href="http://www.cs.auckland.ac.nz/%7Epgut001/pubs/secure_del.html" style="text-align:left; color:#0080c0; text-decoration:none">
+http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[18]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+Serpent home page: <a href="http://www.cl.cam.ac.uk/%7Erja14/serpent.html" style="text-align:left; color:#0080c0; text-decoration:none">
+http://www.cl.cam.ac.uk/~rja14/serpent.html</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[19]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+M. E. Smid, <em style="text-align:left">AES Issues</em>, AES Round 2 Comments, May 22, 2000, available at
+<a href="http://csrc.nist.gov/archive/aes/round2/comments/20000523-msmid-2.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/archive/aes/round2/comments/20000523-msmid-2.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[20]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+A. Menezes, P. van Oorschot, S. Vanstone, <em style="text-align:left">Handbook of Applied Cryptography</em>, CRC Press, October 1996</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[21]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+International Organization for Standardization (ISO), <em style="text-align:left">
+Information technology &ndash; Security techniques &ndash; Hash-functions &ndash; Part 3: Dedicated hash-functions</em>, ISO/IEC 10118-3:2004, February 24, 2004</td>
+</tr>
+<tr style="text-align:left">
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[22]</td>
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+NIST, <em style="text-align:left">The Keyed-Hash Message Authentication Code (HMAC)</em>, Federal Information Processing Standards Publication 198, March 6, 2002, available at
+<a href="http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf</a>.</td>
+</tr>
+<tr style="text-align:left">
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[23]</td>
+<td style="vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+RSA Laboratories, <em style="text-align:left">PKCS #11 v2.20: Cryptographic Token Interface Standard</em>, RSA Security, Inc. Public-Key Cryptography Standards (PKCS), June 28, 2004, available at
+<a href="https://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs-11-cryptographic-token-interface-standard.htm" target="_blank">
+https://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs-11-cryptographic-token-interface-standard.htm.
+</a>PDF available at <a href="https://www.cryptsoft.com/pkcs11doc/STANDARD/pkcs-11v2-20.pdf">
+https://www.cryptsoft.com/pkcs11doc/STANDARD/pkcs-11v2-20.pdf</a></td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[24]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<p>Morris Dworkin, <em style="text-align:left">Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices</em>, NIST Special Publication 800-3E, January 2010, available at
+<a href="http://csrc.nist.gov/publications/nistpubs/800-38E/nist-sp-800-38E.pdf" style="text-align:left; color:#0080c0; text-decoration:none">
+http://csrc.nist.gov/publications/nistpubs/800-38E/nist-sp-800-38E.pdf</a>.</p>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="width:41px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+[25]</td>
+<td style="width:600px; vertical-align:top; color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:0px">
+<p>NIST, Approved Security Functions for FIPS PUB 140-2, Security Requirements for Cryptographic Modules, October 8, 2010, available at
+<a href="http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf" target="_blank">
+http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf</a></p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>&nbsp;</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Release Notes.html b/doc/html/Release Notes.html
new file mode 100644
index 0000000..5cb4e6c
--- /dev/null
+++ b/doc/html/Release Notes.html
@@ -0,0 +1,301 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Release%20Notes.html">Version History</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Release Notes</h1>
+<p><strong style="text-align:left">1.19 </strong>(October 17<sup>th</sup>, 2016):</p>
+<ul>
+<li><strong>All OSs:</strong>
+<ul>
+<li>Fix issues raised by Quarkslab audit.
+<ul>
+<li>Remove GOST89 encryption algorithm. </li><li>Make PBKDF2 and HMAC code clearer and easier to analyze. </li><li>Add test vectors for Kuznyechik. </li><li>Update documentation to warn about risks of using command line switch &rdquo;tokenpin&rdquo;.
+</li></ul>
+</li><li>Use SSE2 optimized Serpent algorithm implementation from Botan project (2.5 times faster on 64-bit platforms).
+</li></ul>
+</li><li><strong>Windows:</strong>
+<ul>
+<li>Fix keyboard issues in EFI Boot Loader. </li><li>Fix crash on 32-bit machines when creating a volume that uses Streebog as PRF.
+</li><li>Fix false positive detection of Evil-Maid attacks in some cases (e.g. hidden OS creation)
+</li><li>Fix failure to access EFS data on VeraCrypt volumes under Windows 10. </li><li>Fix wrong password error in the process of copying hidden OS. </li><li>Fix issues raised by Quarkslab audit:
+<ul>
+<li>Fix leak of password length in MBR bootloader inherited from TrueCrypt. </li><li>EFI bootloader: Fix various leaks and erase keyboard buffer after password is typed.
+</li><li>Use libzip library for handling zip Rescue Disk file instead of vulnerable XUnzip library.
+</li></ul>
+</li><li>Support EFI system encryption for 32-bit Windows. </li><li>Perform shutdown instead of reboot during Pre-Test of EFI system encryption to detect incompatible motherboards.
+</li><li>Minor GUI and translations fixes. </li></ul>
+</li><li><strong>MacOSX:</strong>
+<ul>
+<li>Remove dependency to MacFUSE compatibility layer in OSXFuse. </li></ul>
+</li></ul>
+<p>&nbsp;</p>
+<p><strong style="text-align:left">1.18a </strong>(August 17<sup>th</sup>, 2016):</p>
+<ul>
+<li><strong>All OSs:</strong>
+<ul>
+<li>Support Japanese encryption standard Camellia, including for Windows system encryption (MBR &amp; EFI).
+</li><li>Support Russian encryption and hash standards Kuznyechik, Magma and Streebog, including for Windows EFI system encryption.
+</li></ul>
+</li><li><strong>Windows:</strong>
+<ul>
+<li>Support EFI Windows system encryption (limitations: no hidden os, no boot custom message)
+</li><li>Fix TrueCrypt vulnerability allowing detection of hidden volumes presence(reported by Ivanov Aleksey Mikhailovich, alekc96 [at] mail dot ru)
+</li><li>Enhanced protection against dll hijacking attacks. </li><li>Fix boot issues on some machines by increasing required memory by 1 KiB </li><li>Add benchmarking of hash algorithms and PRF with PIM (including for pre-boot).
+</li><li>Move build system to Visual C&#43;&#43; 2010 for better stability. </li><li>Workaround for AES-NI support under Hyper-V on Windows Server 2008 R2. </li><li>Correctly remove driver file veracrypt.sys during uninstall on Windows 64-bit.
+</li><li>Implement passing smart card PIN as command line argument (/tokenpin) when explicitly mounting a volume.
+</li><li>When no drive letter specified, choose A: or B: only when no other free drive letter is available.
+</li><li>Reduce CPU usage caused by the option to disable use of disconnected network drives.
+</li><li>Add new volume ID mechanism to be used to identify disks/partitions instead of their device name.
+</li><li>Add option to avoid PIM prompt in pre-boot authentication by storing PIM value unencrypted in MBR.
+</li><li>Add option and command line switch to hide waiting dialog when performing operations.
+</li><li>Add checkbox in &quot;VeraCrypt Format&quot; wizard GUI to skip Rescue Disk verification during system encryption procedure.
+</li><li>Allow files drag-n-drop when VeraCrypt is running as elevated process. </li><li>Minor GUI and translations fixes. </li></ul>
+</li><li><strong>Linux:</strong>
+<ul>
+<li>Fix mount issue on Fedora 23. </li><li>Fix mount failure when compiling source code using gcc 5.x. </li><li>Adhere to XDG Desktop Specification by using XDG_CONFIG_HOME to determine location of configuration files.
+</li></ul>
+</li><li><strong>MacOSX:</strong>
+<ul>
+<li>Solve compatibility issue with newer versions of OSXFuse. </li></ul>
+</li></ul>
+<p>&nbsp;</p>
+<p><strong style="text-align:left">1.17 </strong>(February 13<sup>th</sup>, 2016):</p>
+<ul>
+<li><strong>All OSs:</strong>
+<ul>
+<li>Support UNICODE passwords: all characters are now accepted in passwords (except Windows system encryption)
+</li><li>Cut mount/boot time by half thanks to a clever optimization of key derivation (found by
+<a href="https://madiba.encs.concordia.ca/~x_decarn/" target="_blank">Xavier de Carn&eacute; de Carnavalet</a>)
+</li><li>Optimize Whirlpool PRF speed by using assembly (25% speed gain compared to previous code).
+</li><li>Add support for creating exFAT volumes. </li><li>Add GUI indicator for the amount of randomness gathered using mouse movement.
+</li><li>Include new icons and graphics contributed by <em>Andreas Becker</em> (<a href="http://www.andreasbecker.de" target="_blank">http://www.andreasbecker.de</a>)
+</li></ul>
+</li><li><strong>Windows:</strong>
+<ul>
+<li>Fix dll hijacking issue affecting installer that allows code execution with elevation of privilege (CVE-2016-1281). Reported by Stefan Kanthak (<a href="http://home.arcor.de/skanthak/" target="_blank">http://home.arcor.de/skanthak/</a>)
+</li><li>Sign binaries using both SHA-1 and SHA-256 to follow new Microsoft recommendations.
+</li><li>Solve issues under Comodo/Kaspersky when running an application from a VeraCrypt volume (Reported and fixed by Robert Geisler).
+</li><li>Bootloader: Protect password/PIM length by filling the fields to maximum length with '*' after ENTER
+</li><li>Solve issue with system favorites not being able to be mounted to drive A: </li><li>Solve lost focus issues for after displaying the waiting dialog </li><li>Solve rare issue where some partitions where asscoiated with wrong disk the &quot;Select Device&quot; dialog.
+</li><li>Implement PIM caching, for both system encryption and normal volumes. Add option to activate it.
+</li><li>Don't try mounting using cached passwords if password and/or keyfile are specified in the command line.
+</li><li>Internal rewrite to make VeraCrypt native UNICODE application. </li><li>Workaround to avoid false positive detection by some anti-virus software. </li><li>Hide disconnected network drives in the list of available drives. Add option to make them available for mounting.
+</li><li>Solve issue that caused in some cases configuration and history XML files to be updated even when not needed.
+</li><li>Fix leak of path of selected keyfiles in RAM. </li><li>Fix TB unit can't be deselected in VeraCryptExpander. </li><li>Add Alt&#43;i keyboard shortcut for &quot;Use PIM&quot; checkbox in GUI. </li><li>Minor GUI and translations fixes. </li></ul>
+</li><li><strong>Linux/MacOSX:</strong>
+<ul>
+<li>Fix issue of --stdin option not handling correctly passwords that contain a space character (reported and fixed by Codeplex user horsley1953).
+</li><li>Fix issue creating volumes using command line with a filesystem other than FAT.
+</li><li>Support K/M/G/T suffixes for --size switch to indicate unit to use for size value.
+</li></ul>
+</li></ul>
+<p id="116"><strong style="text-align:left">1.16 (October 7<sup>th</sup>, 2015):</strong></p>
+<ul>
+<li><strong><strong>Windows:</strong></strong>
+<ul>
+<li>Modify patch for CVE-2015-7358 vulnerability to solve side effects on Windows while still making it very hard to abuse drive letter handling.
+</li><li>Fix failure to restore volume header from an external file in some configurations.
+</li><li>Add option to disable &ldquo;Evil Maid&rdquo; attack detection for those encountering false positive cases (e.g. FLEXnet/Adobe issue).
+</li><li>By default, don&rsquo;t try to mount using empty password when default keyfile configured or keyfile specified in command line. Add option to restore the old behavior.
+<ul>
+<li>If mounting using empty password is needed, explicitly specify so in the command line using: /p &quot;&quot;
+</li></ul>
+</li></ul>
+</li></ul>
+<p><strong style="text-align:left">1.15 </strong>(September 26<sup>th</sup>, 2015):</p>
+<ul>
+<li><strong>Windows:</strong>
+<ul>
+<li>Fix two TrueCrypt vulnerabilities reported by James Forshaw (Google Project<br>
+Zero)
+<ul>
+<li><a href="https://code.google.com/p/google-security-research/issues/detail?id=538" target="_blank">CVE-2015-7358</a>&nbsp;(critical): Local Elevation of Privilege on Windows by<br>
+abusing drive letter handling. </li><li><a href="https://code.google.com/p/google-security-research/issues/detail?id=537" target="_blank">CVE-2015-7359</a>: Local Elevation of Privilege on Windows caused by<br>
+incorrect Impersonation Token Handling. </li></ul>
+</li><li>Fix regression in mounting of favorite volumes at user logon. </li><li>Fix display of some Unicode languages (e.g. Chinese) in formatting wizard. </li><li>Set keyboard focus to PIM field when &quot;Use PIM&quot; is checked. </li><li>Allow Application key to open context menu on drive letters list </li><li>Support specifying volumes size in TB in the GUI (command line already supports this)
+</li></ul>
+</li></ul>
+<p><strong style="text-align:left">1.14 </strong>(September 16<sup>th</sup>, 2015):</p>
+<ul>
+<li><strong>All OSs:</strong>
+<ul>
+<li>Mask and unmask PIM value in GUI and bootloader like the password. </li></ul>
+</li></ul>
+<ul>
+<li><strong>Windows:</strong>
+<ul>
+<li>Solve Rescue Disk damaged error when using cascade ciphers and SHA256 for system encryption.
+</li><li>Solve option &quot;Cache password in drive memory&quot; always disabled even if checked in preferences.
+</li><li>Solve UI language change not taken into account for new install unless a preference is changed.
+</li><li>Implement creating file containers using command line. </li><li>Driver: disable support of IOCTL_STORAGE_QUERY_PROPERTY by default and add option to enable it.
+</li><li>Driver:&nbsp; Support returning StorageDeviceProperty when queried through IOCTL_STORAGE_QUERY_PROPERTY.
+</li><li>Support setting volume label in Explorer through mount option or favorite label value.
+</li><li>Fix for Hot Keys assignment dialog issue where OEM-233 is always displayed and can't be changed.
+</li><li>Always copy both 32-bit and 64-bit executable binaries during install and in Traveler Disk Setup.
+<ul>
+<li>Traveler Disk will again use 32-bit exe by default while also offering 64-bit exe.
+</li><li>On Windows 64-bit, 32-bit exe files are now available(e.g. if needed to use 32-bit PKCS#11 dll)
+</li></ul>
+</li><li>Include Volume Expander in Traveler Disk Setup. </li><li>Don't offer creating a restore point if it is disabled in Windows. </li><li>Add possibility to verify a Rescue Disk ISO image file. </li><li>Minors fixes in the installer, GUI and driver. </li></ul>
+</li></ul>
+<ul>
+<li><strong>Linux:</strong>
+<ul>
+<li>Support supplying password using stdin in non interactive mode (contributed by
+<a href="https://github.com/LouisTakePILLz" target="_blank">LouisTakePILLz</a>)
+<ul>
+<li>Example: <code>veracrypt -t ${IMAGE_PATH} ${MOUNT_PATH} --mount --non-interactive --stdin &lt;&lt;&lt; &quot;$PWD&quot;</code>
+</li></ul>
+</li></ul>
+</li></ul>
+<p><strong style="text-align:left">1.13 </strong>(August 9<sup>th</sup>, 2015):</p>
+<ul>
+<li><strong>Windows:</strong>
+<ul>
+<li>Solve TOR crashing when run from a VeraCrypt volume. </li></ul>
+</li></ul>
+<p><strong style="text-align:left">1.12 </strong>(August 5<sup>th</sup>, 2015):</p>
+<ul>
+<li><strong>All OSs:</strong>
+<ul>
+<li>Implement &quot;Dynamic Mode&quot; by supporting a Personal Iterations Multiplier (PIM). See documentation for more information.
+</li></ul>
+</li></ul>
+<ul>
+<li><strong>Windows:</strong>
+<ul>
+<li>Detect Boot Loader tampering (&quot;Evil Maid&quot; attacks) for system encryption and propose recovery options.
+</li><li>Fix buffer overrun issue and other memory related bugs when parsing language XML files.
+</li><li>Fix wrongly reported bad sectors by chkdsk caused by a bug in&nbsp;IOCTL_DISK_VERIFY handling.
+</li><li>Fix privacy issue caused by configuration and history files being updated whenever VeraCrypt is used (reported by Liran Elharar)
+</li><li>Fix system favorites not always mounting after cold start. </li><li>Solve installer error when updating VeraCrypt on Windows 10. </li><li>Implement decryption of non-system partition/drive. </li><li>Include 64-bit exe files in the installer and deploy them on 64-bit machines for better performances.
+</li><li>Allow using drive letters A: and B: for mounting volumes </li><li>Make command line argument parsing more strict and robust (e.g. /lz rejected, must be /l z)
+</li><li>Add possibility to show system encryption password in Windows GUI and bootloader
+</li><li>Solve &quot;Class Already exists&quot; error that was happening for some users. </li><li>Solve some menu items and GUI fields not translatable </li><li>Make volumes correctly report Physical Sector size to Windows. </li><li>Correctly detect switch user/RDP disconnect operations for autodismount on session locked.
+</li><li>Add manual selection of partition when resuming in-place encryption. </li><li>Add command line option (/cache f) to temporarily cache password during favorites mounting.
+</li><li>Add waiting dialog for Auto-Mount Devices operations to avoid freezing GUI. </li><li>Add extra information to displayed error message in order to help analyze reported issues.
+</li><li>Disable menu entry for changing system encryption PRF since it's not yet implemented.
+</li><li>Fix failure to change password when UAC required (inherited from TrueCrypt) </li><li>Minor fixes and changes (see Git history for more details) </li></ul>
+</li></ul>
+<ul>
+<li><strong>Linux:</strong>
+<ul>
+<li>Solve installer issue under KDE when xterm not available </li><li>Fix warnings on about/LegalNotice dialogs when wxWidgets linked dynamically (N/A for official binary)
+</li><li>Support hash names with '-' in command line (sha-256, sha-512 and ripemd-160)
+</li><li>Remove &quot;--current-hash&quot; switch and add &quot;--new-hash&quot; to be more coherent with existing switches.
+</li><li>When only keyfile specified in command line, don't try to mount using empty password.
+<ul>
+<li>If mounting using empty password is needed, explicitly specify so using: -p &quot;&quot;
+</li></ul>
+</li></ul>
+</li></ul>
+<p id="1.0f-2"><strong style="text-align:left">1.0f-2</strong>(April 5<sup>th</sup>, 2015):</p>
+<ul>
+<li><strong>All OSs:</strong>
+<ul>
+<li>Mounting speed improvement, up to 20% quicker on 64-bit (contributed by Nils Maier)
+</li><li>Add option to set default hash/TrueCryptMode used for mounting volumes. </li><li>Use TrueCryptMode/Hash specified in command line in password dialog. </li></ul>
+</li><li><strong>Windows:</strong>
+<ul>
+<li>Solve CryptAcquireContext vulnerability reported by Open Crypto Audit Phase II.
+</li><li>Proper handling of random generator failures. Inform user in such cases. </li><li>TrueCrypt Mode related changes:
+<ul>
+<li>Support mounting TrueCrypt system partition (no conversion yet) </li><li>Support TrueCrypt volumes as System Favorites. </li><li>Correct displaying wrong TrueCrypt mode in volume properties when SHA-256 is used.
+</li></ul>
+</li><li>Solve PIN BLOCKED issue with smart cards in a special case. </li><li>Correctly handle file access errors when mounting containers. </li><li>Solve several issues reported by the Static Code Analysis too Coverity. </li><li>Bootloader: Add &quot;Verifying Password...&quot; message. </li><li>When UAC prompt fails (for example timeout), offer the user to retry the operation.
+</li><li>Uninstall link now open the standard &quot;Add/Remove Programs&quot; window. </li><li>On uninstall, remove all VeraCrypt references from registry and disk. </li><li>Included VeraCryptExpander in the Setup. </li><li>Add option to temporary cache password when mounting multiple favorites. </li><li>Minor fixes and enhancements (see git history for more information) </li></ul>
+</li><li><strong>MacOSX:</strong>
+<ul>
+<li>Solve issue volumes not auto-dismounting when quitting VeraCrypt<strong>.</strong>
+</li><li>Solve issue VeraCrypt window not reopening by clicking dock icon. </li></ul>
+</li><li><strong>Linux/MacOSX:</strong>
+<ul>
+<li>Solve preferences dialog not closing when clicking on the 'X' icon. </li><li>Solve read-only issue when mounting non-FAT volumes in some cases. </li><li>Support opening/exploring mounted volumes on desktops other than Gnome/KDE. </li><li>Solve various installer issues when running on less common configurations </li><li>Minor fixes (see git history for more information) </li></ul>
+</li></ul>
+<p><strong style="text-align:left">1.0f-1 </strong>(January 4<sup>th</sup>, 2015)</p>
+<ul>
+<li><strong>All OSs</strong>:
+<ul>
+<li>Add support for old TrueCrypt 6.0. </li><li>Change naming of cascades algorithms in GUI for a better description. </li></ul>
+</li><li><strong>Linux/MacOSX:</strong>
+<ul>
+<li>Make cancel button of the preference dialog working. </li><li>Solve impossibility to enter a one digit size for the volume. </li><li>Add wait dialog to the benchmark calculation. </li></ul>
+</li><li><strong>Windows:</strong>
+<ul>
+<li>Add TrueCrypt mode to the mounted volume information. </li><li>For Windows XP, correct the installer graphical artefacts. </li></ul>
+</li></ul>
+<p><strong style="text-align:left">1.0f </strong>(December 30, 2014)</p>
+<ul>
+<li><strong>All OSs</strong>:
+<ul>
+<li>Add support for mounting TrueCrypt volumes. </li><li>Add support for converting TrueCrypt containers and non-system partitions. </li><li>Add support for SHA-256 for volume encryption. </li><li>Make SHA-512 the default key derivation algorithm and change the order of preference of derivation algorithms : SHA-512 -&gt; Whirlpool -&gt; SHA-256 -&gt; RIPEMD160
+</li><li>Deprecate RIPEMD160 for non-system encryption. </li><li>Speedup mount operation by enabling choice of correct hash algorithm. </li><li>Display a wait dialog during lengthy operations to avoid freezing the GUI. </li><li>Implement creation of multiple keyfiles at once, with predefined or random size.
+</li><li>Always display random gathering dialog before performing sensitive operations.
+</li><li>Links in the application now points to the online resources on Codeplex </li><li>First version of proper VeraCrypt User Guide </li></ul>
+</li><li><strong>MacOSX:</strong>
+<ul>
+<li>Implement support for hard drives with a large sector size (&gt; 512). </li><li>Link against new wxWidgets version 3.0.2. </li><li>Solve truncated text in some Wizard windows. </li></ul>
+</li><li><strong>Linux:</strong>
+<ul>
+<li>Add support of NTFS formatting of volumes. </li><li>Correct issue on opening of the user guide PDF. </li><li>Better support for hard drives with a large sector size (&gt; 512). </li><li>Link against new wxWidgets version 3.0.2. </li></ul>
+</li><li><strong>Windows:</strong><br>
+<ul>
+<li>Security: fix vulnerability in bootloader detected by Open Crypto Audit and make it more robust.
+</li><li>Add support for SHA-256 in system boot encryption. </li><li>Various optimizations in bootloader. </li><li>Complete fix of ShellExecute security issue. </li><li>Kernel driver: check that the password length received from bootloader is less or equal to 64.
+</li><li>Correct a random crash when clicking the link for more information on keyfiles
+</li><li>Implement option to auto-dismount when user session is locked </li><li>Add self-test vectors for SHA-256 </li><li>Modern look-and-feel by enabling visual styles </li><li>few minor fixed. </li></ul>
+</li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">1.0e </strong>(September 4, 2014)</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<ul>
+<li><strong style="text-align:left">Improvements and bug fixes:</strong>
+<ul>
+<li>Correct most of the security vulnerabilities reported by the Open Crypto Audit Project.
+</li><li>Correct security issues detected by Static Code Analysis, mainly under Windows.
+</li><li>Correct issue of unresponsiveness when changing password/key file of a volume. Reduce overall time taken for creating encrypted volume/partition.
+</li><li>Minor improvements and bug fixes (look at git history for more details). </li></ul>
+</li></ul>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<strong style="text-align:left">1.0d </strong>(June 3, 2014)</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<ul>
+<li><strong style="text-align:left">Improvements and bug fixes:</strong>
+<ul>
+<li>Correct issue while creating hidden operating system. </li><li>Minor improvements and bug fixes. </li></ul>
+</li></ul>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Removable Medium Volume.html b/doc/html/Removable Medium Volume.html
new file mode 100644
index 0000000..811a5c8
--- /dev/null
+++ b/doc/html/Removable Medium Volume.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Removable%20Medium%20Volume.html">Removable Medium Volume</a>
+</p></div>
+
+<div class="wikidoc">
+<h2>Volume Mounted as Removable Medium</h2>
+<p>This section applies to VeraCrypt volumes mounted when one of the following options is enabled (as applicable):</p>
+<ul>
+<li><em>Tools</em> &gt; <em>Preferences</em> &gt; <em>Mount volumes as removable media</em>
+</li><li><em>Mount Options</em> &gt; <em>Mount volume as removable medium</em> </li><li><em>Favorites</em> &gt; <em>Organize Favorite Volumes</em> &gt; <em>Mount selected volume as removable medium</em>
+</li><li><em>Favorites</em> &gt; <em>Organize System Favorite Volumes</em> &gt; <em>Mount selected volume as removable medium</em>
+</li></ul>
+<p>VeraCrypt Volumes that are mounted as removable media have the following advantages and disadvantages:</p>
+<ul>
+<li>Windows is prevented from automatically creating the &lsquo;<em>Recycled</em>&rsquo; and/or the &lsquo;<em>System Volume Information</em>&rsquo; folders on VeraCrypt volumes (in Windows, these folders are used by the Recycle Bin and System Restore features).
+</li><li>Windows 8 and later is prevented from writing an Event 98 to the Events Log that contains the device name (\\device\VeraCryptVolumeXX) of VeraCrypt volumes formatted using NTFS. This event log &quot;feature&quot; was introduced in Windows 8 as part of newly introduced
+ NTFS health checks as <a href="https://blogs.msdn.microsoft.com/b8/2012/05/09/redesigning-chkdsk-and-the-new-ntfs-health-model/" target="_blank">
+explained here</a>. Big thanks to Liran Elharar for discovering this. </li><li>Windows may use caching methods and write delays that are normally used for removable media (for example, USB flash drives). This might slightly decrease the performance but at the same increase the likelihood that it will be possible to dismount the volume
+ quickly without having to force the dismount. </li><li>The operating system may tend to keep the number of handles it opens to such a volume to a minimum. Hence, volumes mounted as removable media might require fewer forced dismounts than other volumes.
+</li><li>Under Windows Vista and earlier, the &lsquo;<em>Computer</em>&rsquo; (or &lsquo;<em>My Computer</em>&rsquo;) list does not show the amount of free space on volumes mounted as removable (note that this is a Windows limitation, not a bug in VeraCrypt).
+</li><li>Under desktop editions of Windows Vista or later, sectors of a volume mounted as removable medium may be accessible to all users (including users without administrator privileges; see section
+<a href="Multi-User%20Environment.html">
+<em>Multi-User Environment</em></a>). </li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Removing Encryption.html b/doc/html/Removing Encryption.html
new file mode 100644
index 0000000..6b5335b
--- /dev/null
+++ b/doc/html/Removing Encryption.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Removing%20Encryption.html">Removing Encryption</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>How to Remove Encryption</h1>
+<p>Please note that VeraCrypt can in-place decrypt only <strong>partitions and drives
+</strong>(select <em>System</em> &gt; <em>Permanently Decrypt System Partition/Drive
+</em>for system partition/drive and select <em>Volumes -&gt; Permanently Decrypt </em>
+for non-system partition/drive). If you need to remove encryption (e.g., if you no longer need encryption) from a
+<strong>file-hosted volume</strong>, please follow these steps:</p>
+<ol>
+<li>Mount the VeraCrypt volume. </li><li>Move all files from the VeraCrypt volume to any location outside the VeraCrypt volume (note that the files will be decrypted on the fly).
+</li><li>Dismount the VeraCrypt volume. </li><li>delete it (the container) just like you delete any other file. </li></ol>
+<p>If in-place decryption of non-system partitions/drives is not desired, it is also possible in this case to follow the steps 1-3 described above.<br>
+<br>
+In all cases, if the steps 1-3 are followed, the following extra operations can be performed:</p>
+<ul>
+<li><strong>If the volume is partition-hosted (applies also to USB flash drives)</strong>
+</li></ul>
+<ol type="a">
+<ol>
+<li>Right-click the &lsquo;<em>Computer</em>&rsquo; (or &lsquo;<em>My Computer</em>&rsquo;) icon on your desktop, or in the Start Menu, and select
+<em>Manage</em>. The &lsquo;<em>Computer Management</em>&rsquo; window should appear.
+</li><li>In the <em>Computer Management</em> window, from the list on the left, select &lsquo;<em>Disk Management</em>&rsquo; (within the
+<em>Storage</em> sub-tree). </li><li>Right-click the partition you want to decrypt and select &lsquo;<em>Change Drive Letter and Paths</em>&rsquo;.
+</li><li>The &lsquo;<em>Change Drive Letter and Paths</em>&rsquo; window should appear. If no drive letter is displayed in the window, click
+<em>Add</em>. Otherwise, click <em>Cancel</em>.<br>
+<br>
+If you clicked <em>Add</em>, then in the &lsquo;<em>Add Drive Letter or Path</em>&rsquo; (which should have appeared), select a drive letter you want to assign to the partition and click
+<em>OK</em>. </li><li>In the <em>Computer Management</em> window, right-click the partition you want to decrypt again and select
+<em>Format</em>. The <em>Format</em> window should appear. </li><li>In the <em>Format</em> window, click <em>OK</em>. After the partition is formatted, it will no longer be required to mount it with VeraCrypt to be able to save or load files to/from the partition.
+</li></ol>
+</ol>
+<ul>
+<li><strong>If the volume is device-hosted</strong> </li></ul>
+<blockquote>
+<ol>
+<li>Right-click the &lsquo;<em>Computer</em>&rsquo; (or &lsquo;<em>My Computer</em>&rsquo;) icon on your desktop, or in the Start Menu, and select
+<em>Manage</em>. The &lsquo;<em>Computer Management</em>&rsquo; window should appear.
+</li><li>In the <em>Computer Management</em> window, from the list on the left, select &lsquo;<em>Disk Management</em>&rsquo; (within the
+<em>Storage</em> sub-tree). </li><li>The &lsquo;<em>Initialize Disk</em>&rsquo; window should appear. Use it to initialize the disk.
+</li><li>In the &lsquo;<em>Computer Management</em>&rsquo; window, right-click the area representing the storage space of the encrypted device and select &lsquo;<em>New Partition</em>&rsquo; or &lsquo;<em>New Simple Volume</em>&rsquo;.
+</li><li>WARNING: Before you continue, make sure you have selected the correct device, as all files stored on it will be lost. The &lsquo;<em>New Partition Wizard</em>&rsquo; or &lsquo;<em>New Simple Volume Wizard</em>&rsquo; window should appear now; follow its
+ instructions to create a new partition on the device. After the partition is created, it will no longer be required to mount the device with VeraCrypt to be able to save or load files to/from the device.
+</li></ol>
+</blockquote>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/SHA-256.html b/doc/html/SHA-256.html
new file mode 100644
index 0000000..4e5bcc5
--- /dev/null
+++ b/doc/html/SHA-256.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hash%20Algorithms.html">Hash Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="SHA-256.html">SHA-256</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>SHA-256</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+SHA-256 is a hash algorithm designed by the NSA and published by NIST in FIPS PUB 180-2 [14] in 2002 (the first draft was published in 2001). The size of the output of this algorithm is 256 bits.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="SHA-512.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/SHA-512.html b/doc/html/SHA-512.html
new file mode 100644
index 0000000..0b2c9d8
--- /dev/null
+++ b/doc/html/SHA-512.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hash%20Algorithms.html">Hash Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="SHA-512.html">SHA-512</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>SHA-512</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+SHA-512 is a hash algorithm designed by the NSA and published by NIST in FIPS PUB 180-2 [14] in 2002 (the first draft was published in 2001). The size of the output of this algorithm is 512 bits.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="Whirlpool.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Security Model.html b/doc/html/Security Model.html
new file mode 100644
index 0000000..9a65dcf
--- /dev/null
+++ b/doc/html/Security Model.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Model.html">Security Model</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Security Model</h1>
+<div>
+<h4>Note to security researchers: If you intend to report a security issue or publish an attack on VeraCrypt, please make sure it does not disregard the security model of VeraCrypt described below. If it does, the attack (or security issue report) will be considered
+ invalid/bogus.</h4>
+</div>
+<p>VeraCrypt is a computer software program whose primary purposes are to:</p>
+<ul>
+<li>Secure data by encrypting it before it is written to a disk. </li><li>Decrypt encrypted data after it is read from the disk. </li></ul>
+<p>VeraCrypt does <strong>not</strong>:</p>
+<ul>
+<li>Encrypt or secure any portion of RAM (the main memory of a computer). </li><li>Secure any data on a computer* if an attacker has administrator privileges&dagger; under an operating system installed on the computer.
+</li><li>Secure any data on a computer if the computer contains any malware (e.g. a virus, Trojan horse, spyware) or any other piece of software (including VeraCrypt or an operating system component) that has been altered, created, or can be controlled, by an attacker.
+</li><li>Secure any data on a computer if an attacker has physical access to the computer before or while VeraCrypt is running on it.
+</li><li>Secure any data on a computer if an attacker has physical access to the computer between the time when VeraCrypt is shut down and the time when the entire contents of all volatile memory modules connected to the computer (including memory modules in peripheral
+ devices) have been permanently and irreversibly erased/lost. </li><li>Secure any data on a computer if an attacker can remotely intercept emanations from the computer hardware (e.g. the monitor or cables) while VeraCrypt is running on it (or otherwise remotely monitor the hardware and its use, directly or indirectly, while
+ VeraCrypt is running on it). </li><li>Secure any data stored in a VeraCrypt volume&Dagger; if an attacker without administrator privileges can access the contents of the mounted volume (e.g. if file/folder/volume permissions do not prevent such an attacker from accessing it).
+</li><li>Preserve/verify the integrity or authenticity of encrypted or decrypted data.
+</li><li>Prevent traffic analysis when encrypted data is transmitted over a network. </li><li>Prevent an attacker from determining in which sectors of the volume the content changed (and when and how many times) if he or she can observe the volume (dismounted or mounted) before and after data is written to it, or if the storage medium/device allows
+ the attacker to determine such information (for example, the volume resides on a device that saves metadata that can be used to determine when data was written to a particular sector).
+</li><li>Encrypt any existing unencrypted data in place (or re-encrypt or erase data) on devices/filesystems that use wear-leveling or otherwise relocate data internally.
+</li><li>Ensure that users choose cryptographically strong passwords or keyfiles. </li><li>Secure any computer hardware component or a whole computer. </li><li>Secure any data on a computer where the security requirements or precautions listed in the chapter
+<a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a> are not followed. </li><li>Do anything listed in the section <a href="Issues%20and%20Limitations.html#limitations">
+Limitations </a>(chapter <a href="Issues%20and%20Limitations.html">
+Known Issues &amp; Limitations</a>). </li></ul>
+<p>Under <strong>Windows</strong>, a user without administrator privileges can (assuming the default VeraCrypt and operating system configurations):</p>
+<ul>
+<li>Mount any file-hosted VeraCrypt volume provided that the file permissions of the container allow it.
+</li><li>Mount any partition/device-hosted VeraCrypt volume. </li><li>Complete the pre-boot authentication process and, thus, gain access to data on an encrypted system partition/drive (and start the encrypted operating system).
+</li><li>Skip the pre-boot authentication process (this can be prevented by disabling the option
+<em>Settings</em> &gt; &lsquo;<em>System Encryption</em>&rsquo; &gt; &lsquo;<em>Allow pre-boot authentication to be bypassed by pressing the Esc key</em>&rsquo;; note that this option can be enabled or disabled only by an administrator).
+</li><li>Dismount, using VeraCrypt, (and, in the VeraCrypt application window, see the path to and properties of) any VeraCrypt volume mounted by him or her. However, this does not apply to &lsquo;system favorite volumes&rsquo;, which he or she can dismount (etc.)
+ regardless of who mounted them (this can be prevented by enabling the option <em>
+Settings</em> &gt; &lsquo;<em>System Favorite Volumes</em>&rsquo; &gt; &lsquo;<em>Allow</em> only administrators to view and dismount system favorite volumes in VeraCrypt&rsquo;; note that this option can be enabled or disabled only by an administrator).
+</li><li>Create a file-hosted VeraCrypt volume containing a FAT or no file system (provided that the relevant folder permissions allow it).
+</li><li>Change the password, keyfiles, and header key derivation algorithm for, and restore or back up the header of, a file-hosted VeraCrypt volume (provided that the file permissions allow it).
+</li><li>Access the filesystem residing within a VeraCrypt volume mounted by another user on the system (however, file/folder/volume permissions can be set to prevent this).
+</li><li>Use passwords (and processed keyfiles) stored in the password cache (note that caching can be disabled; for more information see the section
+<em>Settings -&gt; Preferences</em>, subsection <em>Cache passwords in</em> driver memory).
+</li><li>View the basic properties (e.g. the size of the encrypted area, encryption and hash algorithms used, etc.) of the encrypted system partition/drive when the encrypted system is running.
+</li><li>Run and use the VeraCrypt application (including the VeraCrypt Volume Creation Wizard) provided that the VeraCrypt device driver is running and that the file permissions allow it.
+</li></ul>
+<p>Under <strong>Linux</strong>, a user without administrator privileges can (assuming the default VeraCrypt and operating system configurations):</p>
+<ul>
+<li>Create a file-hosted or partition/device-hosted VeraCrypt volume containing a FAT or no file system provided that the relevant folder/device permissions allow it.
+</li><li>Change the password, keyfiles, and header key derivation algorithm for, and restore or back up the header of, a file-hosted or partition/device-hosted VeraCrypt volume provided that the file/device permissions allow it.
+</li><li>Access the filesystem residing within a VeraCrypt volume mounted by another user on the system (however, file/folder/volume permissions can be set to prevent this).
+</li><li>Run and use the VeraCrypt application (including the VeraCrypt Volume Creation Wizard) provided that file permissions allow it.
+</li><li>In the VeraCrypt application window, see the path to and properties of any VeraCrypt volume mounted by him or her.
+</li></ul>
+<p>Under <strong>Mac OS X</strong>, a user without administrator privileges can (assuming the default VeraCrypt and operating system configurations):</p>
+<ul>
+<li>Mount any file-hosted or partition/device-hosted VeraCrypt volume provided that the file/device permissions allow it.
+</li><li>Dismount, using VeraCrypt, (and, in the VeraCrypt application window, see the path to and properties of) any VeraCrypt volume mounted by him or her.
+</li><li>Create a file-hosted or partition/device-hosted VeraCrypt volume provided that the relevant folder/device permissions allow it.
+</li><li>Change the password, keyfiles, and header key derivation algorithm for, and restore or back up the header of, a file-hosted or partition/device-hosted VeraCrypt volume (provided that the file/device permissions allow it).
+</li><li>Access the filesystem residing within a VeraCrypt volume mounted by another user on the system (however, file/folder/volume permissions can be set to prevent this).
+</li><li>Run and use the VeraCrypt application (including the VeraCrypt Volume Creation Wizard) provided that the file permissions allow it.
+</li></ul>
+<p>VeraCrypt does not support the set-euid root mode of execution.<br>
+<br>
+Additional information and details regarding the security model are contained in the chapter
+<a href="Security%20Requirements%20and%20Precautions.html">
+<em>Security Requirements and Precautions</em></a>.</p>
+<p>* In this section (<em>Security Model</em>), the phrase &ldquo;data on a computer&rdquo; means data on internal and external storage devices/media (including removable devices and network drives) connected to the computer.</p>
+<p>&dagger; In this section (<em>Security Model</em>), the phrase &ldquo;administrator privileges&rdquo; does not necessarily refer to a valid administrator account. It may also refer to an attacker who does not have a valid administrator account but who is
+ able (for example, due to improper configuration of the system or by exploiting a vulnerability in the operating system or a third-party application) to perform any action that only a user with a valid administrator account is normally allowed to perform (for
+ example, to read or modify an arbitrary part of a drive or the RAM, etc.)</p>
+<p>&Dagger; &ldquo;VeraCrypt volume&rdquo; also means a VeraCrypt-encrypted system partition/drive (see the chapter
+<a href="System%20Encryption.html"><em>System Encryption</em></a>).</p>
+</div>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/Security Requirements and Precautions.html b/doc/html/Security Requirements and Precautions.html
new file mode 100644
index 0000000..4df99b3
--- /dev/null
+++ b/doc/html/Security Requirements and Precautions.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Security Requirements and Precautions</h1>
+<table style="border-collapse:separate; border-spacing:0px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<td style="text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; color:#ff0000; padding:15px; border:1px solid #000000">
+<strong style="text-align:left">IMPORTANT</strong>: If you want to use VeraCrypt, you must follow the security requirements and security precautions listed in this chapter.</td>
+</tr>
+</tbody>
+</table>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The sections in this chapter specify security requirements for using VeraCrypt and give information about things that adversely affect or limit the ability of VeraCrypt to secure data and to provide plausible deniability. Disclaimer: This chapter is not guaranteed
+ to contain a list of <em style="text-align:left">all</em> security issues and attacks that might adversely affect or limit the ability of VeraCrypt to secure data and to provide plausible deniability.</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">
+<a href="Data%20Leaks.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Data Leaks</a>
+<ul>
+<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Paging%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Paging File</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Hibernation%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Hibernation File</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Memory%20Dump%20Files.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Memory Dump Files</a>
+</li></ul>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Unencrypted%20Data%20in%20RAM.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Unencrypted Data in RAM</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Physical%20Security.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Physical Security</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Malware.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Malware</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Multi-User%20Environment.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Multi-User Environment</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Authenticity%20and%20Integrity.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Authenticity and Integrity</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Choosing%20Passwords%20and%20Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Choosing Passwords and Keyfiles</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Changing%20Passwords%20and%20Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Changing Passwords and Keyfiles</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Trim%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Trim Operation</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Wear-Leveling.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Wear-Leveling</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Reallocated%20Sectors.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Reallocated Sectors</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Defragmenting.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Defragmenting</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Journaling%20File%20Systems.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Journaling File Systems</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Volume%20Clones.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Volume Clones</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Additional%20Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Additional Security Requirements and Precautions</a>
+</li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Security Requirements for Hidden Volumes.html b/doc/html/Security Requirements for Hidden Volumes.html
new file mode 100644
index 0000000..0999829
--- /dev/null
+++ b/doc/html/Security Requirements for Hidden Volumes.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Plausible%20Deniability.html">Plausible Deniability</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hidden%20Volume.html">Hidden Volume</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html">Security Requirements for Hidden Volumes</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Security Requirements and Precautions Pertaining to Hidden Volumes</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If you use a <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden VeraCrypt volume</a>, you must follow the security requirements and precautions listed below in this section. Disclaimer: This section is not guaranteed to contain a list of
+<em style="text-align:left">all</em> security issues and attacks that might adversely affect or limit the ability of VeraCrypt to secure data stored in a hidden VeraCrypt volume and the ability to provide plausible deniability.</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">
+If an adversary has access to a (dismounted) VeraCrypt volume at several points over time, he may be able to determine which sectors of the volume are changing. If you change the contents of a
+<a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden volume</a> (e.g., create/copy new files to the hidden volume or modify/delete/rename/move files stored on the hidden volume, etc.), the contents of sectors (ciphertext) in the hidden volume area will change. After being given the password to the outer
+ volume, the adversary might demand an explanation why these sectors changed. Your failure to provide a plausible explanation might indicate the existence of a hidden volume within the outer volume.<br style="text-align:left">
+<br style="text-align:left">
+Note that issues similar to the one described above may also arise, for example, in the following cases:<br style="text-align:left">
+<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">
+The file system in which you store a file-hosted VeraCrypt container has been defragmented and a copy of the VeraCrypt container (or of its fragment) remains in the free space on the host volume (in the defragmented file system). To prevent this, do one of
+ the following:
+<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">
+Use a partition/device-hosted VeraCrypt volume instead of file-hosted. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Securely erase free space on the host volume (in the defragmented file system) after defragmenting. On Windows, this can be done using the Microsoft
+<a href="https://technet.microsoft.com/en-us/sysinternals/bb897443.aspx">free utility SDelete</a>. On Linux, the
+<em>shred</em> utility from GNU coreutils package can be used for this purpose. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Do not defragment file systems in which you store VeraCrypt volumes. </li></ul>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+A file-hosted VeraCrypt container is stored in a journaling file system (such as NTFS). A&nbsp;copy of the VeraCrypt container (or of its fragment) may remain on the host volume. To prevent this, do one the following:
+<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">
+Use a partition/device-hosted VeraCrypt volume instead of file-hosted. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Store the container in a non-journaling file system (for example, FAT32). </li></ul>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+A VeraCrypt volume resides on a device/filesystem that utilizes a wear-leveling mechanism (e.g. a flash-memory SSD or USB flash drive). A copy of (a fragment of) the VeraCrypt volume may remain on the device. Therefore, do not store hidden volumes on such devices/filesystems.
+ For more information on wear-leveling, see the section <a href="Wear-Leveling.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Wear-Leveling</a> in the chapter <a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions</a>. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+A VeraCrypt volume resides on a device/filesystem that saves data (or on a device/filesystem that is controlled or monitored by a system/device that saves data) (e.g. the value of a timer or counter) that can be used to determine that a block had been written
+ earlier than another block and/or to determine how many times a block has been written/read. Therefore, do not store hidden volumes on such devices/filesystems. To find out whether a device/system saves such data, please refer to documentation supplied with
+ the device/system or contact the vendor/manufacturer. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+A VeraCrypt volume resides on a device that is prone to wear (it is possible to determine that a block has been written/read more times than another block). Therefore, do not store hidden volumes on such devices/filesystems. To find out whether a device is
+ prone to such wear, please refer to documentation supplied with the device or contact the vendor/manufacturer.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+You back up content of a hidden volume by cloning its host volume or create a new hidden volume by cloning its host volume. Therefore, you must not do so. Follow the instructions in the chapter
+<a href="How%20to%20Back%20Up%20Securely.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+How to Back Up Securely</a> and in the section <a href="Volume%20Clones.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Volume Clones</a>. </li></ul>
+</li></ul>
+<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">
+Make sure that <em style="text-align:left">Quick Format</em> is disabled when encrypting a partition/device within which you intend to create a hidden volume.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+On Windows, make sure you have not deleted any files within a volume within which you intend to create a hidden volume (the cluster bitmap scanner does not detect deleted files).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+On Linux or Mac OS X, if you intend to create a hidden volume within a file-hosted VeraCrypt volume, make sure that the volume is not sparse-file-hosted (the Windows version of VeraCrypt verifies this and disallows creation of hidden volumes within sparse files).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+When a hidden volume is mounted, the operating system and third-party applications may write to non-hidden volumes (typically, to the unencrypted system volume) unencrypted information about the data stored in the hidden volume (e.g. filenames and locations
+ of recently accessed files, databases created by file indexing tools, etc.), the data itself in an unencrypted form (temporary files, etc.), unencrypted information about the filesystem residing in the hidden volume (which might be used e.g. to identify the
+ filesystem and to determine whether it is the filesystem residing in the outer volume), the password/key for the hidden volume, or other types of sensitive data. Therefore, the following security requirements and precautions must be followed:
+<br style="text-align:left">
+<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">
+<em style="text-align:left">Windows</em>: Create a hidden operating system (for information on how to do so, see the section
+<a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a>) and mount hidden volumes only when the hidden operating system is running.
+<span style="text-align:left; font-size:10px; line-height:12px">Note: When a hidden operating system is running, VeraCrypt ensures that all local unencrypted filesystems and non-hidden VeraCrypt volumes are read-only (i.e. no files can be written to such filesystems
+ or VeraCrypt volumes).<a href="#hidden_os_exception">*</a> Data is allowed to be written to filesystems within
+<a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden VeraCrypt volumes</a>.</span> Alternatively, if a hidden operating system cannot be used, use a &quot;live-CD&quot; Windows PE system (entirely stored on and booted from a CD/DVD) that ensures that any data written to the system volume is written to a RAM disk.
+ Mount hidden volumes only when such a &quot;live-CD&quot; system is running (if a hidden operating system cannot be used). In addition, during such a &quot;live-CD&quot; session, only filesystems that reside in hidden VeraCrypt volumes may be mounted in read-write mode (outer
+ or unencrypted volumes/filesystems must be mounted as read-only or must not be mounted/accessible at all); otherwise, you must ensure that applications and the operating system do not write any sensitive data (see above) to non-hidden volumes/filesystems during
+ the &quot;live-CD&quot; session. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Linux</em>: Download or create a &quot;live-CD&quot; version of your operating system (i.e. a &quot;live&quot; Linux system entirely stored on and booted from a CD/DVD) that ensures that any data written to the system volume is written to a RAM disk.
+ Mount hidden volumes only when such a &quot;live-CD&quot; system is running. During the session, only filesystems that reside in hidden VeraCrypt volumes may be mounted in read-write mode (outer or unencrypted volumes/filesystems must be mounted as read-only or must
+ not be mounted/accessible at all). If you cannot comply with this requirement and you are not able to ensure that applications and the operating system do not write any sensitive data (see above) to non-hidden volumes/filesystems, you must not mount or create
+ hidden VeraCrypt volumes under Linux. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Mac OS X</em>: If you are not able to ensure that applications and the operating system do not write any sensitive data (see above) to non-hidden volumes/filesystems, you must not mount or create hidden VeraCrypt volumes under Mac
+ OS X. </li></ul>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+When an outer volume is mounted with <a href="Protection%20of%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden volume protection</a> enabled (see section <a href="Protection%20of%20Hidden%20Volumes.html">
+Protection of Hidden Volumes Against Damage</a>), you must follow the same security requirements and precautions that you are required to follow when a hidden volume is mounted (see above). The reason is that the operating system might leak the password/key
+ for the hidden volume to a non-hidden or unencrypted volume. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If you use an <strong style="text-align:left">operating system residing within a hidden volume</strong> (see the section
+<a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a>), then, in addition to the above, you must follow these security requirements and precautions:
+<br style="text-align:left">
+<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">
+You should use the decoy operating system as frequently as you use your computer. Ideally, you should use it for all activities that do not involve sensitive data. Otherwise, plausible deniability of the hidden operating system might be adversely affected (if
+ you revealed the password for the decoy operating system to an adversary, he could find out that the system is not used very often, which might indicate the existence of a hidden operating system on your computer). Note that you can save data to the decoy
+ system partition anytime without any risk that the hidden volume will get damaged (because the decoy system is
+<em style="text-align:left">not</em> installed in the outer volume). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If the operating system requires activation, it must be activated before it is cloned (cloning is part of the process of creation of a hidden operating system &mdash; see the section
+<a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Operating System</a>) and the hidden operating system (i.e. the clone) must never be reactivated. The reason is that the hidden operating system is created by copying the content of the system partition to a hidden volume (so if the operating system
+ is not activated, the hidden operating system will not be activated either). If you activated or reactivated a hidden operating system, the date and time of the activation (and other data) might be logged on a Microsoft server (and on the hidden operating
+ system) but not on the <a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+decoy operating system</a>. Therefore, if an adversary had access to the data stored on the server or intercepted your request to the server (and if you revealed the password for the decoy operating system to him), he might find out that the decoy operating
+ system was activated (or reactivated) at a different time, which might indicate the existence of a hidden operating system on your computer.<br style="text-align:left">
+<br style="text-align:left">
+For similar reasons, any software that requires activation must be installed and activated before you start creating the hidden operating system.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+When you need to shut down the hidden system and start the decoy system, do <em style="text-align:left">
+not</em> restart the computer. Instead, shut it down or hibernate it and then leave it powered off for at least several minutes (the longer, the better) before turning the computer on and booting the decoy system. This is required to clear the memory, which
+ may contain sensitive data. For more information, see the section <a href="Unencrypted%20Data%20in%20RAM.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Unencrypted Data in RAM</a> in the chapter <a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions</a>. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The computer may be connected to a network (including the internet) only when the decoy operating system is running. When the hidden operating system is running, the computer should not be connected to any network, including the internet (one of the most reliable
+ ways to ensure it is to unplug the network cable, if there is one). Note that if data is downloaded from or uploaded to a remote server, the date and time of the connection, and other data, are typically logged on the server. Various kinds of data are also
+ logged on the operating system (e.g. Windows auto-update data, application logs, error logs, etc.) Therefore, if an adversary had access to the data stored on the server or intercepted your request to the server (and if you revealed the password for the decoy
+ operating system to him), he might find out that the connection was not made from within the decoy operating system, which might indicate the existence of a hidden operating system on your computer.
+<br style="text-align:left">
+<br style="text-align:left">
+Also note that similar issues would affect you if there were any filesystem shared over a network under the hidden operating system (regardless of whether the filesystem is remote or local). Therefore, when the hidden operating system is running, there must
+ be no filesystem shared over a network (in any direction). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Any actions that can be detected by an adversary (or any actions that modify any data outside mounted hidden volumes) must be performed only when the decoy operating system is running (unless you have a plausible alternative explanation, such as using a &quot;live-CD&quot;
+ system to perform such actions). For example, the option '<em style="text-align:left">Auto-adjust for daylight saving time</em>' option may be enabled only on the decoy system.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If the BIOS, EFI, or any other component logs power-down events or any other events that could indicate a hidden volume/system is used (e.g. by comparing such events with the events in the Windows event log), you must either disable such logging or ensure that
+ the log is securely erased after each session (or otherwise avoid such an issue in an appropriate way).
+</li></ul>
+</li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+In addition to the above, you must follow the security requirements and precautions listed in the following chapters:</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">
+<a href="Security%20Requirements%20and%20Precautions.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Security Requirements and Precautions</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left"><a href="How%20to%20Back%20Up%20Securely.html" style="text-align:left; color:#0080c0; text-decoration:none.html">How to Back Up Securely</a></strong>
+</li></ul>
+<p><a href="VeraCrypt%20Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p id="hidden_os_exception"><span style="text-align:left; font-size:10px; line-height:12px">* This does not apply to filesystems on CD/DVD-like media and on custom, untypical, or non-standard devices/media.</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Security Tokens & Smart Cards.html b/doc/html/Security Tokens & Smart Cards.html
new file mode 100644
index 0000000..b061325
--- /dev/null
+++ b/doc/html/Security Tokens & Smart Cards.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Tokens%20%26%20Smart%20Cards.html">Security Tokens &amp; Smart Cards</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Security Tokens &amp; Smart Cards</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt supports security (or cryptographic) tokens and smart cards that can be accessed using the PKCS&nbsp;#11 (2.0 or later) protocol [23]. For more information, please see the section
+<em style="text-align:left">Security Tokens and Smart Cards</em> in the chapter <a href="Keyfiles%20in%20VeraCrypt.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+<em style="text-align:left">Keyfiles</em></a>.</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Serpent.html b/doc/html/Serpent.html
new file mode 100644
index 0000000..81e7a1e
--- /dev/null
+++ b/doc/html/Serpent.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Algorithms.html">Encryption Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Serpent.html">Serpent</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Serpent</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>Designed by Ross Anderson, Eli Biham, and Lars Knudsen; published in 1998. It uses a 256-bit key, 128-bit block, and operates in XTS mode (see the section
+<a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Serpent was one of the AES finalists. It was not selected as the proposed AES algorithm even though it appeared to have a higher security margin
+ than the winning Rijndael [4]. More concretely, Serpent appeared to have a <em>high</em> security margin, while Rijndael appeared to have only an
+<em>adequate</em> security margin [4]. Rijndael has also received some criticism suggesting that its mathematical structure might lead to attacks in the future [4].<br>
+<br>
+In [5], the Twofish team presents a table of safety factors for the AES finalists. Safety factor is defined as: number of rounds of the full cipher divided by the largest number of rounds that has been broken. Hence, a broken cipher has the lowest safety factor
+ 1. Serpent had the highest safety factor of the AES finalists: 3.56 (for all supported key sizes). Rijndael-256 had a safety factor of 1.56.<br>
+<br>
+In spite of these facts, Rijndael was considered an appropriate selection for the AES for its combination of security, performance, efficiency, implementability, and flexibility [4]. At the last AES Candidate Conference, Rijndael got 86 votes, Serpent got 59
+ votes, Twofish got 31 votes, RC6 got 23 votes, and MARS got 13 votes [18, 19].*</p>
+<p>* These are positive votes. If negative votes are subtracted from the positive votes, the following results are obtained: Rijndael: 76 votes, Serpent: 52 votes, Twofish: 10 votes, RC6: -14 votes, MARS: -70 votes [19].</p>
+<p>&nbsp;</p>
+<p><a href="Twofish.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Sharing over Network.html b/doc/html/Sharing over Network.html
new file mode 100644
index 0000000..db204a7
--- /dev/null
+++ b/doc/html/Sharing over Network.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Sharing%20over%20Network.html">Sharing over Network</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Sharing over Network</h1>
+<p>If there is a need to access a single VeraCrypt volume simultaneously from multiple operating systems, there are two options:</p>
+<ol>
+<li>A VeraCrypt volume is mounted only on a single computer (for example, on a server) and only the content of the mounted VeraCrypt volume (i.e., the file system within the VeraCrypt volume) is shared over a network. Users on other computers or systems will
+ not mount the volume (it is already mounted on the server).
+<p><strong>Advantages</strong><span>: All users can write data to the VeraCrypt volume. The shared volume may be both file-hosted and partition/device-hosted.</span></p>
+<p><strong>Disadvantage</strong><span>: Data sent over the network will not be encrypted. However, it is still possible to encrypt them using e.g. SSL, TLS, VPN, or other technologies.</span></p>
+<p><strong>Remarks</strong>: Note that, when you restart the system, the network share will be automatically restored only if the volume is a system favorite volume or an encrypted system partition/drive (for information on how to configure a volume as a system
+ favorite volume, see the chapter <a href="System%20Favorite%20Volumes.html">
+<em>System Favorite Volumes</em></a>).</p>
+</li><li>A dismounted VeraCrypt file container is stored on a single computer (for example, on a server). This encrypted file is shared over a network. Users on other computers or systems will locally mount the shared file. Thus, the volume will be mounted simultaneously
+ under multiple operating systems.
+<p><strong>Advantage</strong><span>: Data sent over the network will be encrypted (however, it is still recommended to encrypt them using e.g. SSL, TLS, VPN, or other appropriate technologies to make traffic analysis more difficult and to preserve the integrity
+ of the data).</span></p>
+<p><strong>Disadvantages</strong>: The shared volume may be only file-hosted (not partition/device-hosted). The volume must be mounted in read-only mode under each of the systems (see the section
+<em>Mount Options</em> for information on how to mount a volume in read-only mode). Note that this requirement applies to unencrypted volumes too. One of the reasons is, for example, the fact that data read from a conventional file system under one OS while
+ the file system is being modified by another OS might be inconsistent (which could result in data corruption).</p>
+</li></ol>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Source Code.html b/doc/html/Source Code.html
new file mode 100644
index 0000000..2942a93
--- /dev/null
+++ b/doc/html/Source Code.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Source%20Code.html">Source Code</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Source Code</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>VeraCrypt is open-source and free software. The complete source code of VeraCrypt (written in C, C&#43;&#43;, and assembly) is freely available for peer review at the following Git repositories:</p>
+<p>
+<ul>
+ <li><a href="https://www.veracrypt.fr/code/" target="_blank">https://www.veracrypt.fr/code/</li>
+ <li><a href="https://sourceforge.net/p/veracrypt/code/ci/master/tree/" target="_blank">https://sourceforge.net/p/veracrypt/code/ci/master/tree/</li>
+ <li><a href="https://github.com/veracrypt/VeraCrypt" target="_blank">https://github.com/veracrypt/VeraCrypt</li>
+ <li><a href="https://bitbucket.org/veracrypt/veracrypt/src" target="_blank">https://bitbucket.org/veracrypt/veracrypt/src</a></li>
+</ul>
+</p>
+<p>The source code of each release can be downloaded from the same location as the release binaries.</p>
+<p>&nbsp;</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Standard Compliance.html b/doc/html/Standard Compliance.html
new file mode 100644
index 0000000..14d40d1
--- /dev/null
+++ b/doc/html/Standard Compliance.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Standard%20Compliance.html">Compliance with Standards and Specifications</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Compliance with Standards and Specifications</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>To our best knowledge, VeraCrypt complies with the following standards, specifications, and recommendations:</p>
+<ul>
+<li>ISO/IEC 10118-3:2004 [21] </li><li>FIPS 197 [3] </li><li>FIPS 198 [22] </li><li>FIPS 180-2 [14] </li><li>FIPS 140-2 (XTS-AES, SHA-256, SHA-512, HMAC) [25] </li><li>NIST SP 800-38E [24] </li><li>PKCS #5 v2.0 [7] </li><li>PKCS #11 v2.20 [23] </li></ul>
+<p>The correctness of the implementations of the encryption algorithms can be verified using test vectors (select
+<em>Tools</em> &gt; <em>Test Vectors</em>) or by examining the source code of VeraCrypt.</p>
+<p>&nbsp;</p>
+<p><a href="Source%20Code.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Streebog.html b/doc/html/Streebog.html
new file mode 100644
index 0000000..8c9dca8
--- /dev/null
+++ b/doc/html/Streebog.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hash%20Algorithms.html">Hash Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Streebog.html">Streebog</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Streebog</h1>
+<p>Streebog is a family of two hash algorithms, Streebog-256 and Streebog-512, defined in the Russian national standard&nbsp;<a href="https://www.tc26.ru/research/polozhenie/GOST_R_34_11-2012_eng.pdf">GOST R 34.11-2012</a> Information Technology - Cryptographic
+ Information Security - Hash Function. It is also described in <a href="https://tools.ietf.org/html/rfc6986">
+RFC 6986</a>. It is the competitor of NIST SHA-3 standard.</p>
+<p>VeraCrypt uses only Streebog-512 which has an output size of 512 bits.</p>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/Supported Operating Systems.html b/doc/html/Supported Operating Systems.html
new file mode 100644
index 0000000..389f831
--- /dev/null
+++ b/doc/html/Supported Operating Systems.html
@@ -0,0 +1,63 @@
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Supported%20Operating%20Systems.html">Supported Operating Systems</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Supported Operating Systems</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt currently supports the following operating systems:</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">
+Windows 10 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows 8 and 8.1 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows 7 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Vista </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows XP </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Server 2012 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Server 2008 R2 (64-bit) </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Server 2008 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Server 2003 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Mac OS X 10.12 Sierra </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Mac OS X 10.11 El Capitan </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Mac OS X 10.10 Yosemite </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Mac OS X 10.9 Mavericks </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Mac OS X 10.8 Mountain Lion </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Mac OS X 10.7 Lion </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Mac OS X 10.6 Snow Leopard </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Linux x86 (32-bit and 64-bit versions, kernel 2.6 or compatible) </li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">Note: The following operating systems (among others) are not supported: Windows RT, Windows 2003 IA-64, Windows 2008 IA-64, Windows XP IA-64, and the Embedded/Tablet versions of Windows.</span></div>
+<p><br style="text-align:left">
+<br style="text-align:left">
+Also see the section <strong style="text-align:left"><a href="Supported%20Systems%20for%20System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Operating Systems Supported for System
+ Encryption</a></strong></p>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/Supported Systems for System Encryption.html b/doc/html/Supported Systems for System Encryption.html
new file mode 100644
index 0000000..45542a7
--- /dev/null
+++ b/doc/html/Supported Systems for System Encryption.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="System%20Encryption.html">System Encryption</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Supported%20Systems%20for%20System%20Encryption.html">Supported Systems for System Encryption</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Operating Systems Supported for System Encryption</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<br style="text-align:left">
+VeraCrypt can currently encrypt the following operating systems:</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">
+Windows 10 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows 8 and 8.1 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows 7 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Vista (SP1 or later) </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows XP </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Server 2012 </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Server 2008 and Windows Server 2008 R2 (64-bit) </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Windows Server 2003 </li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<span style="text-align:left; font-size:10px; line-height:12px">Note: The following operating systems (among others) are not supported: Windows RT, Windows 2003 IA-64, Windows 2008 IA-64, Windows XP IA-64, and the Embedded/Tablet versions of Windows.
+</span></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Also see the section <a href="Supported%20Operating%20Systems.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Supported Operating Systems</a></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+&nbsp;</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="VeraCrypt%20Rescue%20Disk.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div><div class="ClearBoth"></div></body></html>
diff --git a/doc/html/System Encryption.html b/doc/html/System Encryption.html
new file mode 100644
index 0000000..676c2e1
--- /dev/null
+++ b/doc/html/System Encryption.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="System%20Encryption.html">System Encryption</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>System Encryption</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+VeraCrypt can on-the-fly encrypt a system partition or entire system drive, i.e. a partition or drive where Windows is installed and from which it boots.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+System encryption provides the highest level of security and privacy, because all files, including any temporary files that Windows and applications create on the system partition (typically, without your knowledge or consent), hibernation files, swap files,
+ etc., are always permanently encrypted (even when power supply is suddenly interrupted). Windows also records large amounts of potentially sensitive data, such as the names and locations of files you open, applications you run, etc. All such log files and
+ registry entries are always permanently encrypted as well.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+System encryption involves pre-boot authentication, which means that anyone who wants to gain access and use the encrypted system, read and write files stored on the system drive, etc., will need to enter the correct password each time before Windows boots
+ (starts). Pre-boot authentication is handled by the VeraCrypt Boot Loader, which resides in the first track of the boot drive and on the
+<a href="VeraCrypt%20Rescue%20Disk.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Rescue Disk (see below)</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note that VeraCrypt can encrypt an existing unencrypted system partition/drive in-place while the operating system is running (while the system is being encrypted, you can use your computer as usual without any restrictions). Likewise, a VeraCrypt-encrypted
+ system partition/drive can be decrypted in-place while the operating system is running. You can interrupt the process of encryption or decryption anytime, leave the partition/drive partially unencrypted, restart or shut down the computer, and then resume the
+ process, which will continue from the point it was stopped.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The mode of operation used for system encryption is <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+XTS</a> (see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Modes of Operation</a>). For further technical details of system encryption, see the section
+<a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a> in the chapter <a href="Technical%20Details.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Technical Details</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To encrypt a system partition or entire system drive, select <em style="text-align:left">
+System</em> &gt; <em style="text-align:left">Encrypt System Partition/Drive</em> and then follow the instructions in the wizard. To decrypt a system partition/drive, select
+<em style="text-align:left">System</em> &gt; <em style="text-align:left">Permanently Decrypt System Partition/Drive</em>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Because of BIOS requirement, the pre-boot password is typed using <strong>US keyboard layout.
+</strong>During the system encryption process, VeraCrypt automatically and transparently switches the keyboard to US layout in order to ensure that the password value typed will match the one typed in pre-boot mode. Thus, in order to avoid wrong password errors,
+ one must type the password using the same keys as when creating the system encryption.</div>
+<p>Note: By default, Windows 7 and later boot from a special small partition. The partition contains files that are required to boot the system. Windows allows only applications that have administrator privileges to write to the partition (when the system is
+ running). VeraCrypt encrypts the partition only if you choose to encrypt the whole system drive (as opposed to choosing to encrypt only the partition where Windows is installed).</p>
+<p>&nbsp;</p>
+<p><a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</body></html>
diff --git a/doc/html/System Favorite Volumes.html b/doc/html/System Favorite Volumes.html
new file mode 100644
index 0000000..4344d4a
--- /dev/null
+++ b/doc/html/System Favorite Volumes.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Volume.html">VeraCrypt Volume</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="System%20Favorite%20Volumes.html">System Favorite Volumes</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>System Favorite Volumes</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>System favorites are useful, for example, in the following cases:</p>
+<ul>
+<li>You have volumes that need to be <strong>mounted before system and application services start and before users start logging on</strong>.
+</li><li>There are network-shared folders located on VeraCrypt volumes. If you configure these volumes as system favorites, you will ensure that the
+<strong>network shares will be automatically restored </strong>by the operating system each time it is restarted.
+</li><li>You need each such volume to be mounted as <strong>the same drive letter </strong>
+each time the operating system starts. </li></ul>
+<p>Note that, unlike the regular (non-system) favorites, <strong>system favorite volumes use the pre-boot authentication password
+</strong>and, therefore, require your system partition/drive to be encrypted (also note it is not required to enable caching of the pre-boot authentication password). Moreover, since the pre-boot password is typed using
+<strong>US keyboard layout</strong> (BIOS requirement), the password of the system favorite volume must be entered during its creation process using the
+<strong>US keyboard layout</strong> by typing the same keyboard keys you type when you enter the pre-boot authentication password. If the password of the system favorite volume is not identical to the pre-boot authentication password under the US keyboard layout,
+ then<strong> it will fail to mount</strong>.</p>
+<p>When creating a volume that you want to make a system favorite later, you must explicitly set the keyboard layout associated with VeraCrypt to US layout and you have to type the same keyboard keys you type when you enter the pre-boot authentication password.<br>
+<br>
+System favorite volumes <strong>can be configured to be available within VeraCrypt only to users with administrator privileges
+</strong>(select <em>Settings </em>&gt; &lsquo;<em>System Favorite Volumes</em>&rsquo; &gt; &lsquo;<em>Allow only administrators to view and dismount system favorite volumes in VeraCrypt</em>&rsquo;). This option should be enabled on servers to ensure that
+ system favorite volumes cannot be dismounted by users without administrator privileges. On non-server systems, this option can be used to prevent normal VeraCrypt volume actions (such as &lsquo;<em>Dismount All</em>&rsquo;, auto-dismount, etc.) from affecting
+ system favorite volumes. In addition, when VeraCrypt is run without administrator privileges (the default on Windows Vista and later), system favorite volumes will not be displayed in the drive letter list in the main VeraCrypt application window.</p>
+<h3>To configure a VeraCrypt volume as a system favorite volume, follow these steps:</h3>
+<ol>
+<li>Mount the volume (to the drive letter to which you want it to be mounted every time).
+</li><li>Right-click the mounted volume in the drive list in the main VeraCrypt window and select &lsquo;<em>Add to System Favorites</em>&rsquo;.
+</li><li>The System Favorites Organizer window should appear now. In this window, enable the option &lsquo;<em>Mount system favorite volumes when Windows starts</em>&rsquo; and click
+<em>OK</em>. </li></ol>
+<p>The order in which system favorite volumes are displayed in the System Favorites Organizer window (<em>Favorites
+</em>&gt; &lsquo;<em>Organize System Favorite Volumes</em>&rsquo;) is <strong>the order in which the volumes are mounted</strong>. You can use the
+<em>Move Up </em>and <em>Move Down </em>buttons to change the order of the volumes.</p>
+<p id="Label">A special label can be assigned to each system favorite volume. This label is not the same as the filesystem label and it is shown within the VeraCrypt user interface instead of the volume path. To assign such a label, follow these steps:</p>
+<ol>
+<li>Select <em>Favorites </em>&gt; &lsquo;<em>Organize System Favorite Volumes</em>&rsquo;.
+</li><li>The System Favorites Organizer window should appear now. In this window, select the volume whose label you want to edit.
+</li><li>Enter the label in the &lsquo;<em>Label of selected favorite volume</em>&rsquo; input field and click OK.
+</li></ol>
+<p>Note that the System Favorites Organizer window (<em>Favorites </em>&gt; &lsquo;<em>Organize System Favorite Volumes</em>&rsquo;) allows you to
+<strong>set various options for each system favorite volume</strong>. For example, any of them can be mounted as read-only or as removable medium.<br>
+<br>
+Warning: When the drive letter assigned to a system favorite volume (saved in the configuration file) is not free, the volume is not mounted and no error message is displayed.<br>
+<br>
+Note that Windows needs to use some files (e.g. paging files, Active Directory files, etc.) before system favorite volumes are mounted. Therefore, such files cannot be stored on system favorite volumes. Note, however, that they
+<em>can </em>be stored on any partition that is within the key scope of system encryption (e.g. on the system partition or on any partition of a system drive that is entirely encrypted by VeraCrypt).<br>
+<br>
+<strong>To remove a volume from the list of system favorite volumes</strong>, select
+<em>Favorites </em>&gt; <em>Organize System Favorite Volumes</em>, select the volume, click
+<em>Remove</em>, and click OK.</p>
+</div>
+</div>
+
+</body></html>
diff --git a/doc/html/Technical Details.html b/doc/html/Technical Details.html
new file mode 100644
index 0000000..a5696e1
--- /dev/null
+++ b/doc/html/Technical Details.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Technical Details</h1>
+<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">
+<a href="Notation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Notation</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Encryption Scheme</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Modes of Operation</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Header Key Derivation, Salt, and Iteration Count</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Random Number Generator</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Keyfiles</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">PIM</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none.html">VeraCrypt Volume Format Specification</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Standard%20Compliance.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Compliance with Standards and Specifications</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Source%20Code.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Source Code</a>
+</li></ul>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Trim Operation.html b/doc/html/Trim Operation.html
new file mode 100644
index 0000000..fd9137c
--- /dev/null
+++ b/doc/html/Trim Operation.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Trim%20Operation.html">Trim Operation</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Trim Operation</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Some storage devices (e.g., some solid-state drives, including USB flash drives) use so-called 'trim' operation to mark drive sectors as free e.g. when a file is deleted. Consequently, such sectors may contain unencrypted zeroes or other undefined data (unencrypted)
+ even if they are located within a part of the drive that is encrypted by VeraCrypt. VeraCrypt does not block the trim operation on partitions that are within the key scope of
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a> (unless a <a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden operating system</a> is running) and under Linux on all volumes that use the Linux native kernel cryptographic services. In those cases, the adversary will be able to tell which sectors contain free space (and may be able to use this information for
+ further analysis and attacks) and <a href="Plausible%20Deniability.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+plausible deniability</a> may be negatively affected. If you want to avoid those issues, do not use
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+system encryption</a> on drives that use the trim operation and, under Linux, either configure VeraCrypt not to use the Linux native kernel cryptographic services or make sure VeraCrypt volumes are not located on drives that use the trim operation.</div>
+<p>To find out whether a device uses the trim operation, please refer to documentation supplied with the device or contact the vendor/manufacturer.</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Troubleshooting.html b/doc/html/Troubleshooting.html
new file mode 100644
index 0000000..e56390a
--- /dev/null
+++ b/doc/html/Troubleshooting.html
@@ -0,0 +1,434 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Troubleshooting.html">Troubleshooting</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Troubleshooting</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+This section presents possible solutions to common problems that you may run into when using VeraCrypt.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: If your problem is not listed here, it might be listed in one of the following sections:</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">
+<a href="Incompatibilities.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Incompatibilities</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="Issues%20and%20Limitations.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Known Issues &amp; Limitations</a>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<a href="FAQ.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Frequently Asked Questions</a>
+</li></ul>
+<table style="border-collapse:separate; border-spacing:0px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<td style="color:#000000; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; padding:15px; border:1px solid #000000">
+Make sure you use the latest stable version of VeraCrypt. If the problem is caused by a bug in an old version of VeraCrypt, it may have already been fixed. Note: Select
+<em style="text-align:left"><strong style="text-align:left">Help</strong></em> &gt;
+<em style="text-align:left"><strong style="text-align:left">About</strong></em> to find out which version you use.</td>
+</tr>
+</tbody>
+</table>
+<p>&nbsp;</p>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Writing/reading to/from volume is very slow even though, according to the benchmark, the speed of the cipher that I'm using is higher than the speed of the hard drive.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+This is probably caused by an interfering application.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+First, make sure that your VeraCrypt container does not have a file extension that is reserved for executable files (for example, .exe, .sys, or .dll). If it does, Windows and antivirus software may interfere with the container and adversely affect the performance
+ of the volume.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Second, disable or uninstall any application that might be interfering, which usually is antivirus software or automatic disk defragmentation tool, etc. In case of antivirus software, it often helps to turn off real-time (on-access) scanning in the preferences
+ of the antivirus software. If it does not help, try temporarily disabling the virus protection software. If this does not help either, try uninstalling it completely and restarting your computer subsequently.</div>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">VeraCrypt volume cannot be mounted; VeraCrypt reports &quot;</em>Incorrect password or not a VeraCrypt volume<em style="text-align:left">&quot;.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The volume header may have been damaged by a third-party application or malfunctioning hardware component.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solutions: </strong></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">
+You can try to restore the volume header from the backup embedded in the volume by following these steps:
+<ol 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">
+Run VeraCrypt. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Click <em style="text-align:left">Select Device</em> or <em style="text-align:left">
+Select File</em> to select your volume. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Select <em style="text-align:left"><a href="Program%20Menu.html#tools-restore-volume-header" style="text-align:left; color:#0080c0; text-decoration:none.html">Tools &gt; Restore Volume Header</a></em>.
+</li></ol>
+</li></ul>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem:</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">After successfully mounting a volume, Windows reports &quot;</em>This device does not contain a valid file system<em style="text-align:left">&quot; or a similar error.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The file system on the VeraCrypt volume may be corrupted (or the volume is unformatted).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You can use filesystem repair tools supplied with your operating system to attempt to repair the filesystem on the VeraCrypt volume. In Windows, it is the '<em style="text-align:left">chkdsk</em>' tool. VeraCrypt provides an easy way to use this tool on a VeraCrypt
+ volume: First, make a backup copy of the VeraCrypt volume (because the '<em style="text-align:left">chkdsk</em>' tool might damage the filesystem even more) and then mount it. Right-click the mounted volume in the main VeraCrypt window (in the drive list)
+ and from the context menu select '<em style="text-align:left">Repair Filesystem</em>'.</div>
+<hr style="text-align:left">
+<div id="hidden_volume_small_max_size" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem:</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">When trying to create a hidden volume, its maximum possible size is unexpectedly small (there is much more free space than this on the outer volume).</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Causes: </strong></div>
+<ol 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">
+The outer volume has been formatted as NTFS </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Fragmentation </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Too small cluster size &#43; too many files/folders in the root directory of the outer volume.
+</li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solutions: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Solution Related to Cause 1:</div>
+<blockquote style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Unlike the FAT filesystem, the NTFS filesystem always stores internal data exactly in the middle of the volume. Therefore, the hidden volume can reside only in the second half of the outer volume. If this constraint is unacceptable, do one of the following:</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">
+Reformat the outer volume as FAT and then create a hidden volume within it. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If the outer volume is too large to be formatted as FAT, split the volume to several 2-terabyte volumes (or 16-terabyte volumes if the device uses 4-kilobyte sectors) and format each of them as FAT.
+</li></ul>
+</blockquote>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Solution Related to Cause 2:</div>
+<blockquote style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Create a new outer volume (defragmentation is not a solution, because it would adversely affect plausible deniability &ndash; see section
+<a href="Defragmenting.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Defragmenting</a>).</div>
+</blockquote>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Solution Related to Cause 3:</div>
+<blockquote style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: The following solution applies only to hidden volumes created within FAT volumes.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Defragment the outer volume (mount it, right-click its drive letter in the '<em style="text-align:left">Computer</em>' or '<em style="text-align:left">My Computer</em>' window, click
+<em style="text-align:left">Properties</em>, select the <em style="text-align:left">
+Tools</em> tab, and click '<em style="text-align:left">Defragment Now</em>'). After the volume is defragmented, exit
+<em style="text-align:left">Disk Defragmenter</em> and try to create the hidden volume again.
+<br style="text-align:left">
+<br style="text-align:left">
+If this does not help, delete <em style="text-align:left">all</em> files and folders on the outer volume by pressing Shift&#43;Delete, not by formatting, (do not forget to disable the Recycle Bin and System Restore for this drive beforehand) and try creating the
+ hidden volume on this <em style="text-align:left">completely empty </em>outer volume again (for testing purposes only). If the maximum possible size of the hidden volume does not change even now, the cause of the problem is very likely an extended root directory.
+ If you did not use the '<em style="text-align:left">Default</em>' cluster size (the last step in the Wizard), reformat the outer volume and this time leave the cluster size at '<em style="text-align:left">Default</em>'.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If it does not help, reformat the outer volume again and copy less files/folders to its root folder than you did last time. If it does not help, keep reformatting and decreasing the number of files/folders in the root folder. If this is unacceptable or if it
+ does not help, reformat the outer volume and select a larger cluster size. If it does not help, keep reformatting and increasing the cluster size, until the problem is solved. Alternatively, try creating a hidden volume within an NTFS volume.</div>
+</blockquote>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+One of the following problems occurs:</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">
+A VeraCrypt volume cannot be mounted. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+NTFS VeraCrypt volumes cannot be created. </li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In addition, the following error may be reported: &quot;<em style="text-align:left">The process cannot access the file because it is being used by another process.</em>&quot;</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+This is probably caused by an interfering application. Note that this is not a bug in VeraCrypt. The operating system reports to VeraCrypt that the device is locked for an exclusive access by an application (so VeraCrypt is not allowed to access it).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+It usually helps to disable or uninstall the interfering application, which is usually an anti-virus utility, a disk management application, etc.</div>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">In the VeraCrypt Boot Loader screen, I'm trying to type my password and/or pressing other keys but the VeraCrypt boot loader is not responding.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You have a USB keyboard (not a PS/2 keyboard) and pre-boot support for USB keyboards is disabled in your BIOS settings.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You need to enable pre-boot support for USB keyboards in your BIOS settings. To do so, follow the below steps:</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Restart your computer, press F2 or Delete (as soon as you see a BIOS start-up screen), and wait until a BIOS configuration screen appears. If no BIOS configuration screen appears, restart (reset) the computer again and start pressing F2 or Delete repeatedly
+ as soon as you restart (reset) the computer. When a BIOS configuration screen appears, enable pre-boot support for USB keyboards. This can typically be done by selecting:
+<em style="text-align:left">Advanced</em> &gt; '<em style="text-align:left">USB Configuration</em>' &gt; '<em style="text-align:left">Legacy USB Support</em>' (or '<em style="text-align:left">USB Legacy</em>') &gt;
+<em style="text-align:left">Enabled</em>. (Note that the word 'legacy' is in fact misleading, because pre-boot components of modern versions of MS Windows require this option to be enabled to allow user interaction/control.) Then save the BIOS settings (typically
+ by pressing F10) and restart your computer. For more information, please refer to the documentation for your BIOS/motherboard or contact your computer vendor's technical support team for assistance.</div>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">After the system partition/drive is encrypted, the computer cannot boot after it is restarted (it is also impossible to enter the BIOS configuration screen).</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause:</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A bug in the BIOS of your computer.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solutions: </strong></div>
+<p>Follow these steps:</p>
+<ol 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">
+Disconnect the encrypted drive. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Connect an unencrypted drive with an installed operating system (or install it on the drive).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Upgrade the BIOS. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If it does not help, please report this bug to the manufacturer or vendor of the computer.
+</li></ol>
+<p>OR</p>
+<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">
+If the BIOS/motherboard/computer manufacturer/vendor does not provide any updates that resolve the issue and you use Windows 7 or later and there is an extra boot partition (whose size is less than 1 GB) on the drive, you can try reinstalling Windows without
+ this extra boot partition (to work around a bug in the BIOS). </li></ul>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+One of the following problems occurs:</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">
+<em style="text-align:left">After the pre-boot authentication password is entered during the system encryption pretest, the computer hangs (after the message '</em>Booting...<em style="text-align:left">' is displayed).</em>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">When the system partition/drive is encrypted (partially or fully) and the system is restarted for the first time since the process of encryption of the system partition/drive started, the computer hangs after you enter the pre-boot
+ authentication password (after the message '</em>Booting...<em style="text-align:left">' is displayed).</em>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">After the hidden operating system is cloned and the password for it entered, the computer hangs (after the message '</em>Booting...'<em style="text-align:left"> is displayed).</em>
+</li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A bug in the BIOS of your computer or an issue with Windows bootloader.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution:</strong></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">
+Upgrade your BIOS (for information on how to do so, please refer to the documentation for your BIOS/motherboard or contact your computer vendor's technical support team for assistance).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Use a different motherboard model/brand. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If the BIOS/motherboard/computer manufacturer/vendor does not provide any updates that resolve the issue and you use Windows 7 or later and there is an extra boot partition (whose size is less than 1 GB) on the drive, you can try reinstalling Windows without
+ this extra boot partition (to work around a bug in the BIOS). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+There two other known workarounds for this issue that require having a Windows Installation disk:
+<ul>
+<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Boot your machine using a Windows Installation disk and select to repair your computer. Choose &quot;Command Prompt&quot; option and when it opens, type the commands below and then restart your system:
+<ul>
+<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+BootRec /fixmbr </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+BootRec /FixBoot </li></ul>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Delete the 100 MB System Reserved partition located at the beginning of your drive, set the system partition next to it as the active partition (both can be done using diskpart utility available in Windows Installation disk repair option). After that, run Startup
+ Repair after rebooting on Windows Installation disk. The following link contains detailed instructions:
+<a href="https://www.sevenforums.com/tutorials/71363-system-reserved-partition-delete.html" target="_blank">
+https://www.sevenforums.com/tutorials/71363-system-reserved-partition-delete.html</a>
+</li></ul>
+</li></ul>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">When trying to encrypt the system partition/drive, during the pretest, the VeraCrypt Boot Loader always reports that the pre-boot authentication password I entered is incorrect (even though I'm sure it is correct).</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Causes:</strong></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">
+Different state of the <em style="text-align:left">Num Lock</em> and/or <em style="text-align:left">
+Caps Lock</em> key </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Data corruption </li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<ol 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">
+When you <em style="text-align:left">set</em> a pre-boot authentication password, remember whether the
+<em style="text-align:left">Num Lock</em> and <em style="text-align:left">Caps Lock</em> keys are on or off (depending on the manufacturer, the keys may have different labels, such as
+<em style="text-align:left">Num LK</em>). Note: You can change the state of each of the keys as desired before you set the password, but you need to remember the states.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+When you enter the password in the VeraCrypt Boot Loader screen, make sure the state of each of the keys is the same as when you set the password.
+</li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: For other possible solutions to this problem, see the other sections of this chapter.</div>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem:</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">When the system partition/drive is encrypted, the operating system 'freezes' for approx. 10-60 seconds every 5-60 minutes (100% CPU usage may co-occur).</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A CPU and/or motherboard issue.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solutions: </strong></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">
+Try disabling all power-saving-related features (including any special CPU enhanced halt functions) in the BIOS settings and in the 'Power Options' Windows control panel.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Replace the processor with a different one (different type and/or brand). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Replace the motherboard with a different one (different type and/or brand). </li></ul>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem:</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">When mounting or dismounting a VeraCrypt volume, the system crashes (a 'blue screen' error screen appears or the
+<span style="text-align:left">computer abruptly restarts)</span>.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+OR</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Since I installed VeraCrypt, the operating system has been crashing frequently.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Causes: </strong></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">
+A bug in a third-party application (e.g. antivirus, system &quot;tweaker&quot;, driver, etc.)
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+A bug in VeraCrypt </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+A bug in Windows or a malfunctioning hardware component </li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solutions: </strong></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">
+Try disabling any antivirus tools, system &quot;tweakers&quot;, and any other similar applications. If it does not help, try uninstalling them and restarting Windows.
+<br style="text-align:left">
+<br style="text-align:left">
+If the problem persists, run VeraCrypt and select <em style="text-align:left">Help</em> &gt; '<em style="text-align:left">Analyze a System Crash</em>' shortly after the system crashes or restarts. VeraCrypt will then analyze crash dump files that Windows automatically
+ created when it crashed (if any). If VeraCrypt determines that a bug in a third party driver is likely to have caused the crash, it will show the name and provider of the driver (note that updating or uninstalling the driver might resolve the issue). Whatever
+ the results, you will be able to choose to send us essential information about the system crash to help us determine whether it was caused by a bug in VeraCrypt.
+</li></ul>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem:</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">On Windows 7/Vista (and possibly later versions), the Microsoft Windows Backup tool cannot be used to backup data to a non-system VeraCrypt Volume.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A bug in the Windows Backup tool.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<ol 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">
+Mount the VeraCrypt volume to which you want to back up data. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Right-click a folder located on the volume (or right-click its drive letter in the '<em style="text-align:left">Computer</em>' list) and select an item from the '<em style="text-align:left">Share with</em>' submenu (on Windows Vista, select '<em style="text-align:left">Share</em>').
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Follow the instructions to share the folder with your user account. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+In the Windows Backup tool, select the shared folder (the network location/path) as the destination.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Start the backup process. </li></ol>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: The above solution does not apply to the <em style="text-align:left">Starter</em> and
+<em style="text-align:left">Home</em> editions of Windows 7 (and possibly later versions).</div>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem:</strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">The label of a filesystem in a VeraCrypt volume cannot be changed from within the 'Computer' window under Windows Vista or a later version of Windows.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A Windows issue causes the label to be written only to the Windows registry file, instead of being written to the filesystem.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solutions: </strong></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">
+Right-click the mounted volume in the '<em style="text-align:left">Computer</em>' window, select
+<em style="text-align:left">Properties</em>, and enter a new label for the volume.
+</li></ul>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">I cannot encrypt a partition/device because VeraCrypt Volume Creation Wizard says it is in use.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Close, disable, or uninstall all programs that might be using the partition/device in any way (for example an anti-virus utility). If it does not help, right-click the '<em style="text-align:left">Computer</em>' (or '<em style="text-align:left">My Computer</em>')
+ icon on your desktop and select <em style="text-align:left">Manage </em>-&gt;<em style="text-align:left"> Storage
+</em>-&gt;<em style="text-align:left"> Disk Management.</em> Then right-click the partition that you want to encrypt, and click
+<em style="text-align:left">Change Drive Letter and Paths. </em>Then click <em style="text-align:left">
+Remove</em> and <em style="text-align:left">OK. </em>Restart the operating system.</div>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">When creating a hidden volume, the Wizard reports that the outer volume cannot be locked.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The outer volume contains files being used by one or more applications.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Close all applications that are using files on the outer volume. If it does not help, try disabling or uninstalling any anti-virus utility you use and restarting the system subsequently.</div>
+<hr style="text-align:left">
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Problem: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When accessing a file-hosted container shared over a network, you receive one or both of the following error messages:
+<br style="text-align:left">
+&quot;<em style="text-align:left">Not enough server storage is available to process this command.</em>&quot; and/or,<br style="text-align:left">
+&quot;<em style="text-align:left">Not enough memory to complete transaction.</em>&quot;</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Probable Cause: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">IRPStackSize</em> in the Windows registry may have been set to a too small value.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<strong style="text-align:left">Possible Solution: </strong></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Locate the <em style="text-align:left">IRPStackSize </em>key in the Windows registry and set it to a higher value. Then restart the system. If the key does not exist in the Windows registry, create it at
+<em style="text-align:left">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters</em> and set its value to 16 or higher. Then restart the system. For more information, see:
+<a href="https://support.microsoft.com/kb/285089/" style="text-align:left; color:#0080c0; text-decoration:none">
+https://support.microsoft.com/kb/285089/ </a>and <a href="https://support.microsoft.com/kb/177078/" style="text-align:left; color:#0080c0; text-decoration:none">
+https://support.microsoft.com/kb/177078/</a></div>
+<hr style="text-align:left">
+<p><br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+&nbsp;&nbsp;See also: <a href="Issues%20and%20Limitations.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">
+Known Issues &amp; Limitations</a>,&nbsp;&nbsp;<a href="Incompatibilities.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Incompatibilities</a></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/TrueCrypt Support.html b/doc/html/TrueCrypt Support.html
new file mode 100644
index 0000000..a259773
--- /dev/null
+++ b/doc/html/TrueCrypt Support.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="TrueCrypt%20Support.html">TrueCrypt Support</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>TrueCrypt Support</h1>
+<p>Starting from version 1.0f, VeraCrypt supports loading TrueCrypt volumes and partitions, both normal and hidden. In order to activate this, you have to check &ldquo;TrueCrypt Mode&rdquo; in the password prompt dialog as shown below.</p>
+<p><img src="TrueCrypt Support_truecrypt_mode_gui.jpg" alt="TrueCrypt mode" width="499" height="205"></p>
+<p><strong>Note:</strong> Only volumes and partitions created using TrueCrypt versions
+<strong>6.x</strong> and <strong>7.x</strong> are supported.</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/TrueCrypt Support_truecrypt_mode_gui.jpg b/doc/html/TrueCrypt Support_truecrypt_mode_gui.jpg
new file mode 100644
index 0000000..3418e08
--- /dev/null
+++ b/doc/html/TrueCrypt Support_truecrypt_mode_gui.jpg
Binary files differ
diff --git a/doc/html/Twofish.html b/doc/html/Twofish.html
new file mode 100644
index 0000000..7d8ce2e
--- /dev/null
+++ b/doc/html/Twofish.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Encryption%20Algorithms.html">Encryption Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Twofish.html">Twofish</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Twofish</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<p>Designed by Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, and Niels Ferguson; published in 1998. It uses a 256-bit key and 128-bit block and operates in XTS mode (see the section
+<a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Twofish was one of the AES finalists. This cipher uses key- dependent S-boxes. Twofish may be viewed as a collection of 2128 different cryptosystems,
+ where 128 bits derived from a 256-bit key control the selection of the cryptosystem [4]. In [13], the Twofish team asserts that key-dependent S-boxes constitute a form of security margin against unknown attacks [4].</p>
+<p>&nbsp;</p>
+<p><a href="Cascades.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Unencrypted Data in RAM.html b/doc/html/Unencrypted Data in RAM.html
new file mode 100644
index 0000000..8917867
--- /dev/null
+++ b/doc/html/Unencrypted Data in RAM.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Unencrypted%20Data%20in%20RAM.html">Unencrypted Data in RAM</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Unencrypted Data in RAM</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+It is important to note that VeraCrypt is <em style="text-align:left">disk</em> encryption software, which encrypts only disks, not RAM (memory).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Keep in mind that most programs do not clear the memory area (buffers) in which they store unencrypted (portions of) files they load from a VeraCrypt volume. This means that after you exit such a program, unencrypted data it worked with may remain in memory
+ (RAM) until the computer is turned off (and, according to some researchers, even for some time after the power is turned off*). Also note that if you open a file stored on a VeraCrypt volume, for example, in a text editor and then force dismount on the VeraCrypt
+ volume, then the file will remain unencrypted in the area of memory (RAM) used by (allocated to) the text editor. This also applies to forced auto-dismount.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Inherently, unencrypted master keys have to be stored in RAM too. When a non-system VeraCrypt volume is dismounted, VeraCrypt erases its master keys (stored in RAM). When the computer is cleanly restarted (or cleanly shut down), all non-system VeraCrypt volumes
+ are automatically dismounted and, thus, all master keys stored in RAM are erased by the VeraCrypt driver (except master keys for system partitions/drives &mdash; see below). However, when power supply is abruptly interrupted, when the computer is reset (not
+ cleanly restarted), or when the system crashes, <strong style="text-align:left">
+VeraCrypt naturally stops running and therefore cannot </strong>erase any keys or any other sensitive data. Furthermore, as Microsoft does not provide any appropriate API for handling hibernation and shutdown, master keys used for system encryption cannot be
+ reliably (and are not) erased from RAM when the computer hibernates, is shut down or restarted.**</div>
+<table style="border-collapse:separate; border-spacing:0px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<td style="text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; color:#ff0000; padding:15px; border:1px solid #000000">
+To summarize, VeraCrypt <strong style="text-align:left">cannot</strong> and does <strong style="text-align:left">
+not</strong> ensure that RAM contains no sensitive data (e.g. passwords, master keys, or decrypted data). Therefore, after each session in which you work with a VeraCrypt volume or in which an encrypted operating system is running, you must shut down (or, if
+ the <a href="Hibernation%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hibernation file</a> is <a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+encrypted</a>, hibernate) the computer and then leave it powered off for at least several minutes (the longer, the better) before turning it on again. This is required to clear the RAM (also see the section
+<a href="Hibernation%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hibernation File</a>).</td>
+</tr>
+</tbody>
+</table>
+<p>&nbsp;</p>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* Allegedly, for 1.5-35 seconds under normal operating temperatures (26-44 &deg;C) and up to several hours when the memory modules are cooled (when the computer is running) to very low temperatures
+ (e.g. -50&nbsp;&deg;C). New types of memory modules allegedly exhibit a much shorter decay time (e.g. 1.5-2.5 seconds) than older types (as of 2008).</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">** Before a key can be erased from RAM, the corresponding VeraCrypt volume must be dismounted. For non-system volumes, this does not cause any problems. However, as Microsoft currently does not
+ provide any appropriate API for handling the final phase of the system shutdown process, paging files located on encrypted system volumes that are dismounted during the system shutdown process may still contain valid swapped-out memory pages (including portions
+ of Windows system files). This could cause 'blue screen' errors. Therefore, to prevent 'blue screen' errors, VeraCrypt does not dismount encrypted system volumes and consequently cannot clear the master keys of the system volumes when the system is shut down
+ or restarted.</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Uninstalling VeraCrypt.html b/doc/html/Uninstalling VeraCrypt.html
new file mode 100644
index 0000000..e2ee600
--- /dev/null
+++ b/doc/html/Uninstalling VeraCrypt.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Uninstalling%20VeraCrypt.html">Uninstalling VeraCrypt</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>Uninstalling VeraCrypt</h1>
+<p>To uninstall VeraCrypt on Windows XP, select <em>Start</em> menu &gt; <em>Settings</em> &gt;
+<em>Control Panel</em> &gt; <em>Add or Remove Programs</em>&gt; <em>VeraCrypt</em> &gt;
+<em>Change/Remove</em>.</p>
+<p>To uninstall VeraCrypt on Windows Vista or later, select <em>Start</em> menu &gt;
+<em>Computer</em> &gt; <em>Uninstall or change a program</em> &gt; <em>VeraCrypt</em> &gt;
+<em>Uninstall</em>.</p>
+<p>To uninstall VeraCrypt on Linux, you have to run the following command as root: veracrypt-uninstall.sh. For example, on Ubuntu, you can type the following in Terminal: sudo veracrypt-uninstall.sh<br>
+<br>
+No VeraCrypt volume will be removed when you uninstall VeraCrypt. You will be able to mount your VeraCrypt volume(s) again after you install VeraCrypt or when you run it in portable mode.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Using VeraCrypt Without Administrator Privileges.html b/doc/html/Using VeraCrypt Without Administrator Privileges.html
new file mode 100644
index 0000000..c02320e
--- /dev/null
+++ b/doc/html/Using VeraCrypt Without Administrator Privileges.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Using%20VeraCrypt%20Without%20Administrator%20Privileges.html">Using Without Admin Rights</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h2>Using VeraCrypt Without Administrator Privileges</h2>
+<p>In Windows, a user who does not have administrator privileges <em>can</em> use VeraCrypt, but only after a system administrator installs VeraCrypt on the system. The reason for that is that VeraCrypt needs a device driver to provide transparent on-the-fly
+ encryption/decryption, and users without administrator privileges cannot install/start device drivers in Windows.<br>
+<br>
+After a system administrator installs VeraCrypt on the system, users without administrator privileges will be able to run VeraCrypt, mount/dismount any type of VeraCrypt volume, load/save data from/to it, and create file-hosted VeraCrypt volumes on the system.
+ However, users without administrator privileges cannot encrypt/format partitions, cannot create NTFS volumes, cannot install/uninstall VeraCrypt, cannot change passwords/keyfiles for VeraCrypt partitions/devices, cannot backup/restore headers of VeraCrypt
+ partitions/devices, and they cannot run VeraCrypt in &lsquo;portable&rsquo; mode.</p>
+<div>
+<table style="border-collapse:separate; border-spacing:0px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<td style="text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; color:#ff0000; padding:15px; border:1px solid #000000">
+Warning: No matter what kind of software you use, as regards personal privacy in most cases, it is
+<em>not</em> safe to work with sensitive data under systems where you do not have administrator privileges, as the administrator can easily capture and copy your sensitive data, including passwords and keys.</td>
+</tr>
+</tbody>
+</table>
+<p>&nbsp;</p>
+</div>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/VeraCrypt Background Task.html b/doc/html/VeraCrypt Background Task.html
new file mode 100644
index 0000000..7cacb13
--- /dev/null
+++ b/doc/html/VeraCrypt Background Task.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Background%20Task.html">Background Task</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>VeraCrypt Background Task</h1>
+<p>When the main VeraCrypt window is closed, the VeraCrypt Background Task takes care of the following tasks/functions:</p>
+<ol>
+<li>Hot keys </li><li>Auto-dismount (e.g., upon logoff, inadvertent host device removal, time-out, etc.)
+</li><li>Auto-mount of favorite volumes </li><li>Notifications (e.g., when damage to hidden volume is prevented) </li><li>Tray icon </li></ol>
+<p>WARNING: If neither the VeraCrypt Background Task nor VeraCrypt is running, the above- mentioned tasks/functions are disabled.<br>
+<br>
+The VeraCrypt Background Task is actually the Vera<em>Crypt.exe</em> application, which continues running in the background after you close the main VeraCrypt window. Whether it is running or not can be determined by looking at the system tray area. If you
+ can see the VeraCrypt icon there, then the VeraCrypt Background Task is running. You can click the icon to open the main VeraCrypt window. Right-click on the icon opens a popup menu with various VeraCrypt-related functions.<br>
+<br>
+You can shut down the Background Task at any time by right-clicking the VeraCrypt tray icon and selecting
+<em>Exit</em>. If you need to disable the VeraCrypt Background Task completely and permanently, select
+<em>Settings</em> -&gt; <em>Preferences</em> and uncheck the option <em>Enabled</em> in the Vera<em>Crypt Background Task</em> area of the
+<em>Preferences</em> dialog window.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/VeraCrypt Hidden Operating System.html b/doc/html/VeraCrypt Hidden Operating System.html
new file mode 100644
index 0000000..03ba167
--- /dev/null
+++ b/doc/html/VeraCrypt Hidden Operating System.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Plausible%20Deniability.html">Plausible Deniability</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Hidden%20Operating%20System.html">Hidden Operating System</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Hidden Operating System</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If your system partition or system drive is encrypted using VeraCrypt, you need to enter your
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+pre-boot authentication</a> password in the VeraCrypt Boot Loader screen after you turn on or restart your computer. It may happen that you are forced by somebody to decrypt the operating system or to reveal the pre-boot authentication password. There are many
+ situations where you cannot refuse to do so (for example, due to extortion). VeraCrypt allows you to create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed &mdash; see below). Thus, you
+ will not have to decrypt or reveal the password for the hidden operating system.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Before you continue reading this section, make sure you have read the section <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+<strong style="text-align:left">Hidden Volume</strong></a> and that you understand what a
+<a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden VeraCrypt volume</a> is.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+A <strong style="text-align:left">hidden operating system</strong> is a system (for example, Windows 7 or Windows XP) that is installed in a
+<a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden VeraCrypt volume</a>. It should be impossible to prove that a <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden VeraCrypt volume</a> exists (provided that certain guidelines are followed; for more information, see the section
+<a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Volume</a>) and, therefore, it should be impossible to prove that a hidden operating system exists.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+However, in order to boot a system encrypted by VeraCrypt, an unencrypted copy of the
+<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Boot Loader</a> has to be stored on the system drive or on a <a href="VeraCrypt%20Rescue%20Disk.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt Rescue Disk</a>. Hence, the mere presence of the VeraCrypt Boot Loader can indicate that there is a system encrypted by VeraCrypt on the computer. Therefore, to provide a plausible explanation for the presence of the VeraCrypt Boot Loader, the VeraCrypt
+ wizard helps you create a second encrypted operating system, so-called <strong style="text-align:left">
+decoy operating system</strong>, during the process of creation of a hidden operating system. A decoy operating system must not contain any sensitive files. Its existence is not secret (it is
+<em style="text-align:left">not</em> installed in a <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden volume</a>). The password for the decoy operating system can be safely revealed to anyone forcing you to disclose your pre-boot authentication password.*</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+You should use the decoy operating system as frequently as you use your computer. Ideally, you should use it for all activities that do not involve sensitive data. Otherwise, plausible deniability of the hidden operating system might be adversely affected (if
+ you revealed the password for the decoy operating system to an adversary, he could find out that the system is not used very often, which might indicate the existence of a hidden operating system on your computer). Note that you can save data to the decoy
+ system partition anytime without any risk that the hidden volume will get damaged (because the decoy system is
+<em style="text-align:left">not</em> installed in the outer volume &mdash; see below).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+There will be two pre-boot authentication passwords &mdash; one for the hidden system and the other for the decoy system. If you want to start the hidden system, you simply enter the password for the hidden system in the VeraCrypt Boot Loader screen (which
+ appears after you turn on or restart your computer). Likewise, if you want to start the decoy system (for example, when asked to do so by an adversary), you just enter the password for the decoy system in the VeraCrypt Boot Loader screen.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: When you enter a pre-boot authentication password, the VeraCrypt Boot Loader first attempts to decrypt (using the entered password) the last 512 bytes of the first logical track of the system drive (where encrypted master key data for non-hidden encrypted
+ system partitions/drives are normally stored). If it fails and if there is a partition behind the active partition, the VeraCrypt Boot Loader (even if there is actually no hidden volume on the drive) automatically tries to decrypt (using the same entered password
+ again) the area of the first partition behind the active partition where the encrypted header of a possible hidden volume might be stored (however, if the size of the active partition is less than 256 MB, then the data is read from the
+<em style="text-align:left">second</em> partition behind the active one, because Windows 7 and later, by default, do not boot from the partition on which they are installed). Note that VeraCrypt never knows if there is a hidden volume in advance (the hidden
+ volume header cannot be identified, as it appears to consist entirely of random data). If the header is successfully decrypted (for information on how VeraCrypt determines that it was successfully decrypted, see the section
+<a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a>), the information about the size of the hidden volume is retrieved from the decrypted header (which is still stored in RAM), and the hidden volume is mounted (its size also determines its offset). For further technical details, see the
+ section <a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a> in the chapter <a href="Technical%20Details.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Technical Details</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When running, the hidden operating system appears to be installed on the same partition as the original operating system (the decoy system). However, in reality, it is installed within the partition behind it (in a hidden volume). All read/write operations
+ are transparently redirected from the system partition to the hidden volume. Neither the operating system nor applications will know that data written to and read from the system partition is actually written to and read from the partition behind it (from/to
+ a hidden volume). Any such data is encrypted and decrypted on the fly as usual (with an encryption key different from the one that is used for the decoy operating system).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note that there will also be a third password &mdash; the one for the <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+<strong style="text-align:left">outer volume</strong></a>. It is not a pre-boot authentication password, but a regular VeraCrypt volume password. It can be safely disclosed to anyone forcing you to reveal the password for the encrypted partition where the hidden
+ volume (containing the hidden operating system) resides. Thus, the existence of the hidden volume (and of the hidden operating system) will remain secret. If you are not sure you understand how this is possible, or what an outer volume is, please read the
+ section <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Volume</a>. The outer volume should contain some sensitive-looking files that you actually do
+<em style="text-align:left">not</em> want to hide.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To summarize, there will be three passwords in total. Two of them can be revealed to an attacker (for the decoy system and for the outer volume). The third password, for the hidden system, must remain secret.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<img src="Beginner's Tutorial_Image_034.png" alt="Example Layout of System Drive Containing Hidden Operating System" width="604" height="225"></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Example Layout of System Drive Containing Hidden Operating System</em></div>
+<p>&nbsp;</p>
+<h4 id="CreationProcess" style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:12px; margin-bottom:1px">
+Process of Creation of Hidden Operating System</h4>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To start the process of creation of a hidden operating system, select <em style="text-align:left">
+System</em> &gt; <em style="text-align:left">Create Hidden Operating System</em> and then follow the instructions in the wizard.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Initially, the wizard verifies that there is a suitable partition for a hidden operating system on the system drive. Note that before you can create a hidden operating system, you need to create a partition for it on the system drive. It must be the first partition
+ behind the system partition and it must be at least 5% larger than the system partition (the system partition is the one where the currently running operating system is installed). However, if the outer volume (not to be confused with the system partition)
+ is formatted as NTFS, the partition for the hidden operating system must be at least 110% (2.1 times) larger than the system partition (the reason is that the NTFS file system always stores internal data exactly in the middle of the volume and, therefore,
+ the hidden volume, which is to contain a clone of the system partition, can reside only in the second half of the partition).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+In the next steps, the wizard will create two VeraCrypt volumes (<a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">outer and hidden</a>) within the first partition behind the
+ system partition. The <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden volume</a> will contain the hidden operating system. The size of the hidden volume is always the same as the size of the system partition. The reason is that the hidden volume will need to contain a clone of the content of the system partition (see below).
+ Note that the clone will be encrypted using a different encryption key than the original. Before you start copying some sensitive-looking files to the outer volume, the wizard tells you the maximum recommended size of space that the files should occupy, so
+ that there is enough free space on the outer volume for the hidden volume.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Remark: After you copy some sensitive-looking files to the outer volume, the cluster bitmap of the volume will be scanned in order to determine the size of uninterrupted area of free space whose end is aligned with the end of the outer volume. This area will
+ accommodate the hidden volume, so it limits its maximum possible size. The maximum possible size of the hidden volume will be determined and it will be verified that it is greater than the size of the system partition (which is required, because the entire
+ content of the system partition will need to be copied to the hidden volume &mdash; see below). This ensures that no data stored on the outer volume will be overwritten by data written to the area of the hidden volume (e.g. when the system is being copied
+ to it). The size of the hidden volume is always the same as the size of the system partition.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Then, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume. Data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating
+ system. The process of copying the system is performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of
+ the computer). You will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because
+ the content of the system partition must not change during cloning). The hidden operating system will initially be a clone of the operating system under which you started the wizard.</div>
+<div id="SecureEraseOS" style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Windows creates (typically, without your knowledge or consent) various log files, temporary files, etc., on the system partition. It also saves the content of RAM to hibernation and paging files located on the system partition. Therefore, if an adversary analyzed
+ files stored on the partition where the original system (of which the hidden system is a clone) resides, he might find out, for example, that you used the VeraCrypt wizard in the hidden-system-creation mode (which might indicate the existence of a hidden operating
+ system on your computer). To prevent such issues, VeraCrypt will securely erase the entire content of the partition where the original system resides after the hidden system has been created. Afterwards, in order to achieve plausible deniability, VeraCrypt
+ will prompt you to install a new system on the partition and encrypt it using VeraCrypt. Thus, you will create the decoy system and the whole process of creation of the hidden operating system will be completed.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Note: VeraCrypt will erase the content of the partition where the original system resides by filling it with random data entirely. If you revealed the password for the decoy system to an adversary and he asked you why the free space of the (decoy) system partition
+ contains random data, you could answer, for example: &quot;The partition previously contained a system encrypted by VeraCrypt, but I forgot the pre-boot authentication password (or the system was damaged and stopped booting), so I had to reinstall Windows and encrypt
+ the partition again.&quot;</div>
+<h4 id="data_leak_protection" style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:12px; margin-bottom:1px">
+Plausible Deniability and Data Leak Protection</h4>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+For security reasons, when a hidden operating system is running, VeraCrypt ensures that all local unencrypted filesystems and non-hidden VeraCrypt volumes are read-only (i.e. no files can be written to such filesystems or VeraCrypt volumes).&dagger; Data is
+ allowed to be written to any filesystem that resides within a <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden VeraCrypt volume</a> (provided that the hidden volume is not located in a container stored on an unencrypted filesystem or on any other read-only filesystem).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+There are three main reasons why such countermeasures have been implemented:</div>
+<ol 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">
+It enables the creation of a secure platform for mounting of hidden VeraCrypt volumes. Note that we officially recommend that hidden volumes are mounted only when a hidden operating system is running. For more information, see the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions Pertaining to Hidden Volumes</a>. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+In some cases, it is possible to determine that, at a certain time, a particular filesystem was not mounted under (or that a particular file on the filesystem was not saved or accessed from within) a particular instance of an operating system (e.g. by analyzing
+ and comparing filesystem journals, file timestamps, application logs, error logs, etc). This might indicate that a hidden operating system is installed on the computer. The countermeasures prevent these issues.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+It prevents data corruption and allows safe hibernation. When Windows resumes from hibernation, it assumes that all mounted filesystems are in the same state as when the system entered hibernation. VeraCrypt ensures this by write-protecting any filesystem accessible
+ both from within the decoy and hidden systems. Without such protection, the filesystem could become corrupted when mounted by one system while the other system is hibernated.
+</li></ol>
+<p>If you need to securely transfer files from the decoy system to the hidden system, follow these steps:</p>
+<ol 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">
+Start the decoy system. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Save the files to an unencrypted volume or to an outer/normal VeraCrypt volume. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Start the hidden system </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If you saved the files to a VeraCrypt volume, mount it (it will be automatically mounted as read-only).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Copy the files to the hidden system partition or to another hidden volume. </li></ol>
+<p>&nbsp;</p>
+<h4 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:12px; margin-bottom:1px">
+Possible Explanations for Existence of Two VeraCrypt Partitions on Single Drive</h4>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+An adversary might ask why you created two VeraCrypt-encrypted partitions on a single drive (a system partition and a non-system partition) rather than encrypting the entire disk with a single encryption key. There are many possible reasons to do that. However,
+ if you do not know any (other than creating a hidden operating system), you can provide, for example, one of the following explanations:</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">
+If there are more than two partitions on a system drive and you want to encrypt only two of them (the system partition and the one behind it) and to leave the other partitions unencrypted (for example, to achieve the best possible performance when reading and
+ writing data, which is not sensitive, to such unencrypted partitions), the only way to do that is to encrypt both partitions separately (note that, with a single encryption key, VeraCrypt could encrypt the entire system drive and
+<em style="text-align:left">all</em> partitions on it, but it cannot encrypt only two of them &mdash; only one or all of the partitions can be encrypted with a single key). As a result, there will be two adjacent VeraCrypt partitions on the system drive (the
+ first will be a system partition, the second will be a non-system one), each encrypted with a different key (which is also the case when you create a hidden operating system, and therefore it can be explained this way).<br style="text-align:left">
+<br style="text-align:left">
+If you do not know any good reason why there should be more than one partition on a system drive at all:<br style="text-align:left">
+<br style="text-align:left">
+It is generally recommended to separate non-system files (documents) from system files. One of the easiest and most reliable ways to do that is to create two partitions on the system drive; one for the operating system and the other for documents (non-system
+ files). The reasons why this practice is recommended include:
+<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">
+If the filesystem on one of the partitions is damaged, files on the partition may get corrupted or lost, whereas files on the other partition are not affected.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+It is easier to reinstall the system without losing your documents (reinstallation of an operating system involves formatting the system partition, after which all files stored on it are lost). If the system is damaged, full reinstallation is often the only
+ option. </li></ul>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+A <a href="Cascades.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+cascade encryption algorithm</a> (e.g. AES-Twofish-Serpent) can be many times slower than a non-cascade one (e.g.
+<a href="AES.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+AES</a>). However, a cascade encryption algorithm may be more secure than a non-cascade one (for example, the probability that three distinct encryption algorithms will be broken, e.g. due to advances in cryptanalysis, is significantly lower than the probability
+ that only one of them will be broken). Therefore, if you encrypt the outer volume with a cascade encryption algorithm and the decoy system with a non-cascade encryption algorithm, you can answer that you wanted the best performance (and adequate security)
+ for the system partition, and the highest possible security (but worse performance) for the non-system partition (i.e. the outer volume), where you store the most sensitive data, which you do not need to access very often (unlike the operating system, which
+ you use very often, and therefore you need it to have the best possible performance). On the system partition, you store data that is less sensitive (but which you need to access very often) than data you store on the non-system partition (i.e. on the outer
+ volume). </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Provided that you encrypt the outer volume with a cascade encryption algorithm (e.g. AES-Twofish-Serpent) and the decoy system with a non-cascade encryption algorithm (e.g. AES), you can also answer that you wanted to prevent the problems about which VeraCrypt
+ warns when the user attempts to choose a cascade encryption algorithm for system encryption (see below for a list of the problems). Therefore, to prevent those problems, you decided to encrypt the system partition with a non-cascade encryption algorithm. However,
+ you still wanted to use a cascade encryption algorithm (because it is more secure than a non-cascade encryption algorithm) for the most sensitive data, so you decided to create a second partition, which those problems do
+<em style="text-align:left">not</em> affect (because it is non-system) and to encrypt it with a cascade encryption algorithm. On the system partition, you store data that is less sensitive than data you store on the non-system partition (i.e. on the outer volume).
+<br style="text-align:left">
+<br style="text-align:left">
+Note: When the user attempts to encrypt the system partition with a cascade encryption algorithm, VeraCrypt warns him or her that it can cause the following problems (and implicitly recommends to choose a non-cascade encryption algorithm instead):
+<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; font-size:10px; line-height:12px">
+For cascade encryption algorithms, the VeraCrypt Boot Loader is larger than normal and, therefore, there is not enough space in the first drive track for a backup of the VeraCrypt Boot Loader. Hence,
+<em style="text-align:left">whenever</em> it gets damaged (which often happens, for example, during inappropriately designed anti-piracy activation procedures of certain programs), the user must use the VeraCrypt Rescue Disk to repair the VeraCrypt Boot Loader
+ or to boot. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-size:10px; line-height:12px">
+On some computers, resuming from hibernation takes longer. </li></ul>
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+In contrast to a password for a non-system VeraCrypt volume, a pre-boot authentication password needs to be typed each time the computer is turned on or restarted. Therefore, if the pre-boot authentication password is long (which is required for security purposes),
+ it may be very tiresome to type it so frequently. Hence, you can answer that it was more convenient for you to use a short (and therefore weaker) password for the system partition (i.e. the decoy system) and that it is more convenient for you to store the
+ most sensitive data (which you do not need to access as often) in the non-system VeraCrypt partition (i.e. in the outer volume) for which you chose a very long password.
+<br style="text-align:left">
+<br style="text-align:left">
+As the password for the system partition is not very strong (because it is short), you do not intentionally store sensitive data on the system partition. However, you still prefer the system partition to be encrypted, because potentially sensitive or mildly
+ sensitive data is stored on it as a result of your everyday use of the computer (for example, passwords to online forums you visit, which can be automatically remembered by your browser, browsing history, applications you run, etc.)
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+When an attacker gets hold of your computer when a VeraCrypt volume is mounted (for example, when you use a laptop outside), he can, in most cases, read any data stored on the volume (data is decrypted on the fly as he reads it). Therefore, it may be wise to
+ limit the time the volume is mounted to a minimum. Obviously, this may be impossible or difficult if the sensitive data is stored on an encrypted system partition or on an entirely encrypted system drive (because you would also have to limit the time you work
+ with the computer to a minimum). Hence, you can answer that you created a separate partition (encrypted with a different key than your system partition) for your most sensitive data and that you mount it only when necessary and dismount it as soon as possible
+ (so as to limit the time the volume is mounted to a minimum). On the system partition, you store data that is less sensitive (but which you need to access often) than data you store on the non-system partition (i.e. on the outer volume).
+</li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+&nbsp;</div>
+<h4 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:12px; margin-bottom:1px">
+Safety/Security Precautions and Requirements Pertaining to Hidden Operating Systems</h4>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+As a hidden operating system resides in a hidden VeraCrypt volume, a user of a hidden operating system must follow all of the security requirements and precautions that apply to normal hidden VeraCrypt volumes. These requirements and precautions, as well as
+ additional requirements and precautions pertaining specifically to hidden operating systems, are listed in the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions Pertaining to Hidden Volumes</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+WARNING: If you do not protect the hidden volume (for information on how to do so, refer to the section
+<a href="Protection%20of%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Protection of Hidden Volumes Against Damage</a>), do <em style="text-align:left">
+not</em> write to the outer volume (note that the decoy operating system is <em style="text-align:left">
+not</em> installed in the outer volume). Otherwise, you may overwrite and damage the hidden volume (and the hidden operating system within it)!</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If all the instructions in the wizard have been followed and if the security requirements and precautions listed in the subsection
+<a href="Security%20Requirements%20for%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Security Requirements and Precautions Pertaining to Hidden Volumes</a> are followed, it should be impossible to prove that the hidden volume and hidden operating system exist, even when the outer volume is mounted or when the decoy operating system is decrypted
+ or started.</div>
+<p>&nbsp;</p>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* It is not practical (and therefore is not supported) to install operating systems in two VeraCrypt volumes that are embedded within a single partition, because using the outer operating system
+ would often require data to be written to the area of the hidden operating system (and if such write operations were prevented using the
+<a href="Protection%20of%20Hidden%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden volume protection</a> feature, it would inherently cause system crashes, i.e. 'Blue Screen' errors).<br style="text-align:left">
+&dagger; This does not apply to filesystems on CD/DVD-like media and on custom, atypical, or non-standard devices/media.</span><br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+&nbsp;&nbsp;See also: <strong style="text-align:left"><a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">System Encryption</a></strong>, &nbsp;<strong style="text-align:left"><a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">Hidden
+ Volume</a></strong></p>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/VeraCrypt License.html b/doc/html/VeraCrypt License.html
new file mode 100644
index 0000000..6b670e1
--- /dev/null
+++ b/doc/html/VeraCrypt License.html
@@ -0,0 +1,408 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20License.html">VeraCrypt License</a>
+</p></div>
+
+<div class="wikidoc">
+<h1><strong style="text-align:left">VeraCrypt License</strong></h1>
+<p>Software distributed under this license is distributed on an &quot;AS IS&quot; BASIS WITHOUT WARRANTIES OF ANY KIND. THE AUTHORS AND DISTRIBUTORS OF THE SOFTWARE DISCLAIM ANY LIABILITY. ANYONE WHO USES, COPIES, MODIFIES, OR (RE)DISTRIBUTES ANY PART OF THE SOFTWARE
+ IS, BY SUCH ACTION(S), ACCEPTING AND AGREEING TO BE BOUND BY ALL TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT ACCEPT THEM, DO NOT USE, COPY, MODIFY, NOR (RE)DISTRIBUTE THE SOFTWARE, NOR ANY PART(S) THEREOF.</p>
+<p>VeraCrypt is multi-licensed under&nbsp;<a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> and the TrueCrypt License version 3.0, a verbatim copy of both licenses can be found below.<br>
+<br>
+This license does not grant you rights to use any contributors' name, logo, or trademarks, including IDRIX,
+<br>
+VeraCrypt and all derivative names. For example, the following names are not allowed: VeraCrypt, VeraCrypt&#43;, VeraCrypt Professional, iVeraCrypt, etc. Nor any other names confusingly similar to the name VeraCrypt (e.g., Vera-Crypt, Vera Crypt, VerKrypt, etc.).</p>
+<div id="left_column">
+<p id="license_text">Apache License<br>
+Version 2.0, January 2004<br>
+http://www.apache.org/licenses/<br>
+<br>
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION<br>
+<br>
+1. Definitions.<br>
+<br>
+&quot;License&quot; shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.<br>
+<br>
+&quot;Licensor&quot; shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.<br>
+<br>
+&quot;Legal Entity&quot; shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, &quot;control&quot; means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.<br>
+<br>
+&quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity exercising permissions granted by this License.<br>
+<br>
+&quot;Source&quot; form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.<br>
+<br>
+&quot;Object&quot; form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.<br>
+<br>
+&quot;Work&quot; shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).<br>
+<br>
+&quot;Derivative Works&quot; shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.
+ For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.<br>
+<br>
+&quot;Contribution&quot; shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright
+ owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, &quot;submitted&quot; means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including
+ but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that
+ is conspicuously marked or otherwise designated in writing by the copyright owner as &quot;Not a Contribution.&quot;<br>
+<br>
+&quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.<br>
+<br>
+2. Grant of Copyright License.<br>
+<br>
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform,
+ sublicense, and distribute the Work and such Derivative Works in Source or Object form.<br>
+<br>
+3. Grant of Patent License.<br>
+<br>
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell,
+ sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which
+ such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent
+ infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.<br>
+<br>
+4. Redistribution.<br>
+<br>
+You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:<br>
+<br>
+1. You must give any other recipients of the Work or Derivative Works a copy of this License; and<br>
+<br>
+2. You must cause any modified files to carry prominent notices stating that You changed the files; and<br>
+<br>
+3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works;
+ and<br>
+<br>
+4. If the Work includes a &quot;NOTICE&quot; text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to
+ any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated
+ by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You
+ distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.<br>
+<br>
+You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.<br>
+<br>
+5. Submission of Contributions.<br>
+<br>
+Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above,
+ nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.<br>
+<br>
+6. Trademarks.<br>
+<br>
+This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.<br>
+<br>
+7. Disclaimer of Warranty.<br>
+<br>
+Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation,
+ any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise
+ of permissions under this License.<br>
+<br>
+8. Limitation of Liability.<br>
+<br>
+In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages,
+ including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer
+ failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.<br>
+<br>
+9. Accepting Warranty or Additional Liability.<br>
+<br>
+While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations,
+ You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor
+ by reason of your accepting any such warranty or additional liability.</p>
+</div>
+<hr>
+<p>TrueCrypt License Version 3.0<br>
+<br>
+Software distributed under this license is distributed on an &quot;AS<br>
+IS&quot; BASIS WITHOUT WARRANTIES OF ANY KIND. THE AUTHORS AND<br>
+DISTRIBUTORS OF THE SOFTWARE DISCLAIM ANY LIABILITY. ANYONE WHO<br>
+USES, COPIES, MODIFIES, OR (RE)DISTRIBUTES ANY PART OF THE<br>
+SOFTWARE IS, BY SUCH ACTION(S), ACCEPTING AND AGREEING TO BE<br>
+BOUND BY ALL TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT<br>
+ACCEPT THEM, DO NOT USE, COPY, MODIFY, NOR (RE)DISTRIBUTE THE<br>
+SOFTWARE, NOR ANY PART(S) THEREOF.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">I. Definitions</strong><br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">1</strong>. &quot;This Product&quot; means the work (including, but not limited to, source code, graphics, texts, and accompanying files) made available under and governed by this version of this license (&quot;License&quot;), as may be indicated
+ by, but is not limited to, copyright notice(s) attached to or included in the work.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">2</strong>. &quot;You&quot; means (and &quot;Your&quot; refers to) an individual or a legal entity (e.g., a non-profit organization, commercial organization, government agency, etc.) exercising permissions granted by this License.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">3</strong>. &quot;Modification&quot; means (and &quot;modify&quot; refers to) any alteration of This Product, including, but not limited to, addition to or deletion from the substance or structure of This Product, translation into another language,
+ repackaging, alteration or removal of any file included with This Product, and addition of any new files to This Product.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">4</strong>. &quot;Your Product&quot; means This Product modified by You, or any work You derive from (or base on) any part of This Product. In addition, &quot;Your Product&quot; means any work in which You include any (modified or unmodified) portion
+ of This Product. However, if the work in which you include it is an aggregate software distribution (such as an operating system distribution or a cover CD-ROM of a magazine) containing multiple separate products, then the term &quot;Your Product&quot; includes only
+ those products (in the aggregate software distribution) that use, include, or depend on a modified or unmodified version of This Product (and the term &quot;Your Product&quot; does not include the whole aggregate software distribution). For the purposes of this License,
+ a product suite consisting of two or more products is considered a single product (operating system distributions and cover media of magazines are not considered product suites).<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">5</strong>. &quot;Distribution&quot; means (and &quot;distribute&quot; refers to), regardless of means or methods, conveyance, transfer, providing, or making available of This/Your Product or portions thereof to third parties (including, but not
+ limited to, making This/Your Product, or portions thereof, available for download to third parties, whether or not any third party has downloaded the product, or any portion thereof, made available for download).<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">II. Use, Copying, and Distribution of This Product</strong><br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">1</strong>. Provided that You comply with all applicable terms and conditions of this License, You may make copies of This Product (unmodified) and distribute copies of This Product (unmodified) that are not included in another
+ product forming Your Product (except as permitted under Chapter III). Note: For terms and conditions for copying and distribution of modified versions of This Product, see Chapter III.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">2</strong>. Provided that You comply with all applicable terms and conditions of this License, You may use This Product freely (see also Chapter III) on any number of computers/systems for non-commercial and/or commercial purposes.<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">III. Modification, Derivation, and Inclusion in Other Products</strong><br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">1</strong>. If all conditions specified in the following paragraphs in this Chapter (III) are met (for exceptions, see Section III.2) and if You comply with all other applicable terms and conditions of this License, You may modify
+ This Product (thus forming Your Product), derive new works from This Product or portions thereof (thus forming Your Product), include This Product or portions thereof in another product (thus forming Your Product, unless defined otherwise in Chapter I), and
+ You may use (for non-commercial and/or commercial purposes), copy, and/or distribute Your Product.</p>
+<ol 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">
+The name of Your Product (or of Your modified version of This Product) must not contain the name TrueCrypt (for example, the following names are not allowed: TrueCrypt, TrueCrypt&#43;, TrueCrypt Professional, iTrueCrypt, etc.) nor any other names confusingly similar
+ to the name TrueCrypt (e.g., True-Crypt, True Crypt, TruKrypt, etc.)<br style="text-align:left">
+<br style="text-align:left">
+All occurrences of the name TrueCrypt that could reasonably be considered to identify Your Product must be removed from Your Product and from any associated materials. Logo(s) included in (or attached to) Your Product (and in/to associated materials) must not
+ incorporate and must not be confusingly similar to any of the TrueCrypt logos (including, but not limited to, the non-textual logo consisting primarily of a key in stylized form) or portion(s) thereof. All graphics contained in This Product (logos, icons,
+ etc.) must be removed from Your Product (or from Your modified version of This Product) and from any associated materials.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The following phrases must be removed from Your Product and from any associated materials, except the text of this License: &quot;A TrueCrypt Foundation Release&quot;, &quot;Released by TrueCrypt Foundation&quot;, &quot;This is a TrueCrypt Foundation release.&quot;
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Phrase &quot;<em style="text-align:left">Based on TrueCrypt, freely available at www.truecrypt.org</em>&quot; must be displayed by Your Product (if technically feasible) and contained in its documentation. Alternatively, if This Product or its portion You included in
+ Your Product constitutes only a minor portion of Your Product, phrase &quot;<em style="text-align:left">Portions of this product are based in part on TrueCrypt, freely available at www.truecrypt.org</em>&quot; may be displayed instead. In each of the cases mentioned
+ above in this paragraph, &quot;<em style="text-align:left">www.truecrypt.org</em>&quot; must be a hyperlink (if technically feasible) pointing to www.truecrypt.org and You may freely choose the location within the user interface (if there is any) of Your Product (e.g.,
+ an &quot;About&quot; window, etc.) and the way in which Your Product will display the respective phrase.<br style="text-align:left">
+<br style="text-align:left">
+Your Product (and any associated materials, e.g., the documentation, the content of the official web site of Your Product, etc.) must not present any Internet address containing the domain name truecrypt.org (or any domain name that forwards to the domain name
+ truecrypt.org) in a manner that might suggest that it is where information about Your Product may be obtained or where bugs found in Your Product may be reported or where support for Your Product may be available or otherwise attempt to indicate that the domain
+ name truecrypt.org is associated with Your Product. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+The complete source code of Your Product must be freely and publicly available (for exceptions, see Section III.2) at least until You cease to distribute Your Product. This condition can be met in one or both of the following ways: (i) You include the complete
+ source code of Your Product with every copy of Your Product that You make and distribute and You make all such copies of Your Product available to the general public free of charge, and/or (ii) You include information (valid and correct at least until You
+ cease to distribute Your Product) about where the complete source code of Your Product can be obtained free of charge (e.g., an Internet address) or for a reasonable reproduction fee with every copy of Your Product that You make and distribute and, if there
+ is a web site officially associated with Your Product, You include the aforementioned information about the source code on a freely and publicly accessible web page to which such web site links via an easily viewable hyperlink (at least until You cease to
+ distribute Your Product).<br style="text-align:left">
+<br style="text-align:left">
+The source code of Your Product must not be deliberately obfuscated and it must not be in an intermediate form (e.g., the output of a preprocessor). Source code means the preferred form in which a programmer would usually modify the program.<br style="text-align:left">
+<br style="text-align:left">
+Portions of the source code of Your Product not contained in This Product (e.g., portions added by You in creating Your Product, whether created by You or by third parties) must be available under license(s) that (however, see also Subsection III.1.e) allow(s)
+ anyone to modify and derive new works from the portions of the source code that are not contained in This Product and to use, copy, and redistribute such modifications and/or derivative works. The license(s) must be perpetual, non-exclusive, royalty-free,
+ no-charge, and worldwide, and must not invalidate, weaken, restrict, interpret, amend, modify, interfere with or otherwise affect any part, term, provision, or clause of this License. The text(s) of the license(s) must be included with every copy of Your Product
+ that You make and distribute. </li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+You must not change the license terms of This Product in any way (adding any new terms is considered changing the license terms even if the original terms are retained), which means, e.g., that no part of This Product may be put under another license. You must
+ keep intact all the legal notices contained in the source code files. You must include the following items with every copy of Your Product that You make and distribute: a clear and conspicuous notice stating that Your Product or portion(s) thereof is/are governed
+ by this version of the TrueCrypt License, a verbatim copy of this version of the TrueCrypt License (as contained herein), a clear and conspicuous notice containing information about where the included copy of the License can be found, and an appropriate copyright
+ notice. </li></ol>
+<p><br style="text-align:left">
+<strong style="text-align:left">2</strong>. You are not obligated to comply with Subsection III.1.d if Your Product is not distributed (i.e., Your Product is available only to You).<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">IV. Disclaimer of Liability, Disclaimer of Warranty, Indemnification</strong><br style="text-align:left">
+<br style="text-align:left">
+You expressly acknowledge and agree to the following:<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY APPLICABLE INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY WHO MAY COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, AS MAY BE PERMITTED HEREIN, BE LIABLE
+ TO YOU OR TO ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED
+ BY YOU OR THIRD PARTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE,
+ ARISING OUT OF THE USE, COPYING, MODIFICATION, OR (RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS PRODUCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES)
+ ARE/WERE PREDICTABLE OR KNOWN TO ANY (CO)AUTHOR, INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY.</strong><br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">2. THIS PRODUCT IS PROVIDED &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THIS PRODUCT IS WITH YOU. SHOULD THIS PRODUCT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.</strong><br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">3</strong>. THIS PRODUCT MAY INCORPORATE IMPLEMENTATIONS OF CRYPTOGRAPHIC ALGORITHMS THAT ARE REGULATED (E.G., SUBJECT TO EXPORT/IMPORT CONTROL REGULATIONS) OR ILLEGAL IN SOME COUNTRIES. IT IS SOLELY YOUR RESPONSIBILITY TO VERIFY
+ THAT IT IS LEGAL TO IMPORT AND/OR (RE)EXPORT AND/OR USE THIS PRODUCT (OR PORTIONS THEREOF) IN COUNTRIES WHERE YOU INTEND TO USE IT AND/OR TO WHICH YOU INTEND TO IMPORT IT AND/OR FROM WHICH YOU INTEND TO EXPORT IT, AND IT IS SOLELY YOUR RESPONSIBILITY TO COMPLY
+ WITH ANY APPLICABLE REGULATIONS, RESTRICTIONS, AND LAWS.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">4</strong>. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS PRODUCT, AND APPLICABLE INTELLECTUAL-PROPERTY OWNERS, HARMLESS FROM AND AGAINST ANY AND ALL LIABILITY, DAMAGES, LOSSES, SETTLEMENTS, PENALTIES, FINES, COSTS,
+ EXPENSES (INCLUDING REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, ACTIONS, PROCEEDINGS, AND SUITS, DIRECTLY RELATED TO OR ARISING OUT OF YOUR USE, INABILITY TO USE, COPYING, (RE)DISTRIBUTION, IMPORT AND/OR (RE)EXPORT OF THIS PRODUCT (OR PORTIONS
+ THEREOF) AND/OR YOUR BREACH OF ANY TERM OF THIS LICENSE.<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">V. Trademarks</strong><br style="text-align:left">
+<br style="text-align:left">
+This License does not grant permission to use trademarks associated with (or applying to) This Product, except for fair use as defined by applicable law and except for use expressly permitted or required by this License. Any attempt otherwise to use trademarks
+ associated with (or applying to) This Product automatically and immediately terminates Your rights under This License and may constitute trademark infringement (which may be prosecuted).<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">VI. General Terms and Conditions, Miscellaneous Provisions</strong><br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">1</strong>. ANYONE WHO USES AND/OR COPIES AND/OR MODIFIES AND/OR CREATES DERIVATIVE WORKS OF AND/OR (RE)DISTRIBUTES THIS PRODUCT, OR ANY PORTION(S) THEREOF, IS, BY SUCH ACTION(S), AGREEING TO BE BOUND BY AND ACCEPTING ALL TERMS
+ AND CONDITIONS OF THIS LICENSE (AND THE RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS LICENSE). IF YOU DO NOT ACCEPT (AND AGREE TO BE BOUND BY) ALL TERMS AND CONDITIONS OF THIS LICENSE, DO NOT USE, COPY, MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE
+ THIS PRODUCT, NOR ANY PORTION(S) THEREOF.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">2</strong>. YOU MAY NOT USE, MODIFY, COPY, CREATE DERIVATIVE WORKS OF, (RE)DISTRIBUTE, OR SUBLICENSE THIS PRODUCT, OR PORTION(S) THEREOF, EXCEPT AS EXPRESSLY PROVIDED IN THIS LICENSE (EVEN IF APPLICABLE LAW GIVES YOU MORE RIGHTS).
+ ANY ATTEMPT (EVEN IF PERMITTED BY APPLICABLE LAW) OTHERWISE TO USE, MODIFY, COPY, CREATE DERIVATIVE WORKS OF, (RE)DISTRIBUTE, OR SUBLICENSE THIS PRODUCT, OR PORTION(S) THEREOF, AUTOMATICALLY AND IMMEDIATELY TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN
+ CONSTITUTE COPYRIGHT INFRINGEMENT (WHICH MAY BE PROSECUTED). ANY CONDITIONS AND RESTRICTIONS CONTAINED IN THIS LICENSE ARE ALSO LIMITATIONS ON THE SCOPE OF THIS LICENSE AND ALSO DEFINE THE SCOPE OF YOUR RIGHTS UNDER THIS LICENSE. YOUR FAILURE TO COMPLY WITH
+ THE TERMS AND CONDITIONS OF THIS LICENSE OR FAILURE TO PERFORM ANY APPLICABLE OBLIGATION IMPOSED BY THIS LICENSE AUTOMATICALLY AND IMMEDIATELY TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN CAUSE OR BE CONSIDERED COPYRIGHT INFRINGEMENT (WHICH MAY BE PROSECUTED).
+ NOTHING IN THIS LICENSE SHALL IMPLY OR BE CONSTRUED AS A PROMISE, OBLIGATION, OR COVENANT NOT TO SUE FOR COPYRIGHT OR TRADEMARK INFRINGEMENT IF YOU DO NOT COMPLY WITH THE TERMS AND CONDITIONS OF THIS LICENSE.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">3</strong>. This License does not constitute or imply a waiver of any intellectual property rights except as may be otherwise expressly provided in this License. This License does not transfer, assign, or convey any intellectual
+ property rights (e.g., it does not transfer ownership of copyrights or trademarks).<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">4</strong>. Subject to the terms and conditions of this License, You may allow a third party to use Your copy of This Product (or a copy that You make and distribute, or Your Product) provided that the third party explicitly
+ accepts and agrees to be bound by all terms and conditions of this License and the third party is not prohibited from using This Product (or portions thereof) by this License (see, e.g., Section VI.7) or by applicable law. However, You are not obligated to
+ ensure that the third party accepts (and agrees to be bound by all terms of) this License if You distribute only the self-extracting package (containing This Product) that does not allow the user to install (nor extract) the files contained in the package
+ until he or she accepts and agrees to be bound by all terms and conditions of this License.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">5</strong>. Without specific prior written permission from the authors of This Product (or from their common representative), You must not use the name of This Product, the names of the authors of This Product, or the names of
+ the legal entities (or informal groups) of which the authors were/are members/employees, to endorse or promote Your Product or any work in which You include a modified or unmodified version of This Product, or to endorse or promote You or Your affiliates,
+ or in a way that might suggest that Your Product (or any work in which You include a modified or unmodified version of This Product), You, or Your affiliates is/are endorsed by one or more authors of This Product, or in a way that might suggest that one or
+ more authors of This Product is/are affiliated with You (or Your affiliates) or directly participated in the creation of Your Product or of any work in which You include a modified or unmodified version of This Product.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">6</strong>. <strong style="text-align:left">IF YOU ARE NOT SURE WHETHER YOU UNDERSTAND ALL PARTS OF THIS LICENSE OR IF YOU ARE NOT SURE WHETHER YOU CAN COMPLY WITH ALL TERMS AND CONDITIONS OF THIS LICENSE, YOU MUST NOT USE, COPY,
+ MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) OF IT. YOU SHOULD CONSULT WITH A LAWYER.</strong><br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">7</strong>. IF (IN RELEVANT CONTEXT) ANY PROVISION OF CHAPTER IV OF THIS LICENSE IS UNENFORCEABLE, INVALID, OR PROHIBITED UNDER APPLICABLE LAW IN YOUR JURISDICTION, YOU HAVE NO RIGHTS UNDER THIS LICENSE AND YOU MUST NOT USE,
+ COPY, MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) THEREOF.<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">8</strong>. Except as otherwise provided in this License, if any provision of this License, or a portion thereof, is found to be invalid or unenforceable under applicable law, it shall not affect the validity or enforceability
+ of the remainder of this License, and such invalid or unenforceable provision shall be construed to reflect the original intent of the provision and shall be enforced to the maximum extent permitted by applicable law so as to effect the original intent of
+ the provision as closely as possible.<br style="text-align:left">
+<br style="text-align:left">
+____________________________________________________________<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+<strong style="text-align:left">Third-Party Licenses</strong><br style="text-align:left">
+<br style="text-align:left">
+This Product contains components that were created by third parties and that are governed by third-party licenses, which are contained hereinafter (separated by lines consisting of underscores). Each of the third-party licenses applies only to (portions of)
+ the source code file(s) in which the third-party license is contained or in which it is explicitly referenced, and to compiled or otherwise processed forms of such source code.
+<strong style="text-align:left">None of the third-party licenses applies to This Product as a whole, even when it uses terms such as &quot;product&quot;, &quot;program&quot;, or any other equivalent terms/phrases. This Product as a whole is governed by the TrueCrypt License (see
+ above).</strong> Some of the third-party components have been modified by the authors of This Product. Unless otherwise stated, such modifications and additions are governed by the TrueCrypt License (see above). Note: Unless otherwise stated, graphics and
+ files that are not part of the source code are governed by the TrueCrypt License.<br style="text-align:left">
+<br style="text-align:left">
+____________________________________________________________<br style="text-align:left">
+<br style="text-align:left">
+<br style="text-align:left">
+License agreement for Encryption for the Masses.<br style="text-align:left">
+<br style="text-align:left">
+Copyright (C) 1998-2000 Paul Le Roux. All Rights Reserved.<br style="text-align:left">
+<br style="text-align:left">
+This product can be copied and distributed free of charge, including source code.<br style="text-align:left">
+<br style="text-align:left">
+You may modify this product and source code, and distribute such modifications, and you may derive new works based on this product, provided that:<br style="text-align:left">
+<br style="text-align:left">
+1. Any product which is simply derived from this product cannot be called E4M, or Encryption for the Masses.<br style="text-align:left">
+<br style="text-align:left">
+2. If you use any of the source code in your product, and your product is distributed with source code, you must include this notice with those portions of this source code that you use.<br style="text-align:left">
+<br style="text-align:left">
+Or,<br style="text-align:left">
+<br style="text-align:left">
+If your product is distributed in binary form only, you must display on any packaging, and marketing materials which reference your product, a notice which states:<br style="text-align:left">
+<br style="text-align:left">
+&quot;This product uses components written by Paul Le Roux &lt;pleroux@swprofessionals.com&gt;&quot;<br style="text-align:left">
+<br style="text-align:left">
+3. If you use any of the source code originally by Eric Young, you must in addition follow his terms and conditions.<br style="text-align:left">
+<br style="text-align:left">
+4. Nothing requires that you accept this License, as you have not signed it. However, nothing else grants you permission to modify or distribute the product or its derivative works.<br style="text-align:left">
+<br style="text-align:left">
+These actions are prohibited by law if you do not accept this License.<br style="text-align:left">
+<br style="text-align:left">
+5. If any of these license terms is found to be to broad in scope, and declared invalid by any court or legal process, you agree that all other terms shall not be so affected, and shall remain valid and enforceable.<br style="text-align:left">
+<br style="text-align:left">
+6. THIS PROGRAM IS DISTRIBUTED FREE OF CHARGE, THEREFORE THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. UNLESS OTHERWISE STATED THE PROGRAM IS PROVIDED &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+ REPAIR OR CORRECTION.<br style="text-align:left">
+<br style="text-align:left">
+7. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
+ OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM, INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS,
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAD PREVIOUSLY BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.<br style="text-align:left">
+____________________________________________________________<br style="text-align:left">
+<br style="text-align:left">
+Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved.<br style="text-align:left">
+<br style="text-align:left">
+LICENSE TERMS<br style="text-align:left">
+<br style="text-align:left">
+The free distribution and use of this software is allowed (with or without changes) provided that:</p>
+<ol 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">
+source code distributions include the above copyright notice, this list of conditions and the following disclaimer;
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+binary distributions include the above copyright notice, this list of conditions and the following disclaimer in their documentation;
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+the name of the copyright holder is not used to endorse products built using this software without specific written permission.
+</li></ol>
+<p>DISCLAIMER<br style="text-align:left">
+<br style="text-align:left">
+This software is provided 'as is' with no explicit or implied warranties in respect of its properties, including, but not limited to, correctness and/or fitness for purpose.<br style="text-align:left">
+ ____________________________________________________________<br>
+ <br>
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler.<br>
+ <br>
+ This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software.<br>
+ <br>
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:<br>
+<ol>
+ <li>The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.</li>
+ <li> Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.</li>
+ <li> This notice may not be removed or altered from any source distribution.</li>
+</ol>
+ Jean-loup Gailly Mark Adler<br>
+ jloup@gzip.org madler@alumni.caltech.edu<br>
+____________________________________________________________<br>
+<br>
+ Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner<br>
+ <br>
+ The authors can be contacted at <libzip@nih.at><br>
+ <br>
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<br>
+ <br>
+<ol>
+ <li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
+ <li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
+ <li>The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission.</li>
+</ol>
+<br>
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br>
+____________________________________________________________<br>
+<br>
+Copyright (c) 2013, Alexey Degtyarev. All rights reserved.<br>
+<br>
+________________________________________________________<br>
+<br>
+ Copyright (c) 2016. Disk Cryptography Services for EFI (DCS), Alex Kolotnikov<br>
+ <br>
+ This program and the accompanying materials are licensed and made available under the terms and conditions of the GNU Lesser General Public License, version 3.0 (LGPL-3.0).<br>
+ <br>
+ The full text of the license may be found at https://opensource.org/licenses/LGPL-3.0<br>
+____________________________________________________________<br>
+<br>
+ Copyright (c) 1999-2013,2014,2015,2016 Jack Lloyd. <br>
+ <br>
+ All rights reserved.<br>
+ <br>
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<br>
+ <br>
+<ol>
+ <li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
+ <li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
+</ol>
+<br>
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br>
+____________________________________________________________<br>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/VeraCrypt Rescue Disk.html b/doc/html/VeraCrypt Rescue Disk.html
new file mode 100644
index 0000000..b4ab54d
--- /dev/null
+++ b/doc/html/VeraCrypt Rescue Disk.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="System%20Encryption.html">System Encryption</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Rescue%20Disk.html">VeraCrypt Rescue Disk</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>VeraCrypt Rescue Disk</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+During the process of preparing the encryption of a system partition/drive, VeraCrypt requires that you create a so-called VeraCrypt Rescue Disk (CD/DVD), which serves the following purposes:</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">
+If the VeraCrypt Boot Loader screen does not appear after you start your computer (or if Windows does not boot), the
+<strong style="text-align:left">VeraCrypt Boot Loader may be damaged</strong>. The VeraCrypt Rescue Disk allows you restore it and thus to regain access to your encrypted system and data (however, note that you will still have to enter the correct password
+ then). In the Rescue Disk screen, select <em style="text-align:left">Repair Options</em> &gt;
+<em style="text-align:left">Restore VeraCrypt Boot Loader</em>. Then press 'Y' to confirm the action, remove the Rescue Disk from your CD/DVD drive and restart your computer.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If the <strong style="text-align:left">VeraCrypt Boot Loader is frequently damaged
+</strong>(for example, by inappropriately designed activation software) or if <strong style="text-align:left">
+you do not want the VeraCrypt boot loader </strong><strong style="text-align:left">to reside on the hard drive
+</strong>(for example, if you want to use an alternative boot loader/manager for other operating systems), you can boot directly from the VeraCrypt Rescue Disk (as it contains the VeraCrypt boot loader too) without restoring the boot loader to the hard drive.
+ Just insert your Rescue Disk into your CD/DVD drive and then enter your password in the Rescue Disk screen.
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If you repeatedly enter the correct password but VeraCrypt says that the password is incorrect, it is possible that the
+<strong style="text-align:left">master key or other critical data are damaged</strong>. The VeraCrypt Rescue Disk allows you to restore them and thus to regain access to your encrypted system and data (however, note that you will still have to enter the correct
+ password then). In the Rescue Disk screen, select <em style="text-align:left">Repair Options</em> &gt;
+<em style="text-align:left">Restore key data</em>. Then enter your password, press 'Y' to confirm the action, remove the Rescue Disk from your CD/DVD drive, and restart your computer.<br style="text-align:left">
+<br style="text-align:left">
+Note: This feature cannot be used to restore the header of a hidden volume within which a
+<a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden operating system</a> resides (see the section <a href="Hidden%20Operating%20System.html">
+Hidden Operating System</a>). To restore such a volume header, click <em style="text-align:left">
+Select Device</em>, select the partition behind the decoy system partition, click
+<em style="text-align:left">OK</em>, select <em style="text-align:left">Tools</em> &gt;
+<em style="text-align:left">Restore Volume Header</em> and then follow the instructions.<br style="text-align:left">
+<br style="text-align:left">
+WARNING: By restoring key data using a VeraCrypt Rescue Disk, you also restore the password that was valid when the VeraCrypt Rescue Disk was created. Therefore, whenever you change the password, you should destroy your VeraCrypt Rescue Disk and create a new
+ one (select <em style="text-align:left">System</em> -&gt; <em style="text-align:left">
+Create Rescue Disk</em>). Otherwise, if an attacker knows your old password (for example, captured by a keystroke logger) and if he then finds your old VeraCrypt Rescue Disk, he could use it to restore the key data (the master key encrypted with the old password)
+ and thus decrypt your system partition/drive </li><li id="WindowsDamaged" style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+If <strong style="text-align:left">Windows is damaged and cannot start</strong>, the VeraCrypt Rescue Disk allows you to permanently decrypt the partition/drive before Windows starts. In the Rescue Disk screen, select
+<em style="text-align:left">Repair Options</em> &gt; <em style="text-align:left">
+Permanently decrypt system partition/drive</em>. Enter the correct password and wait until decryption is complete. Then you can e.g. boot your MS Windows setup CD/DVD to repair your Windows installation. Note that this feature cannot be used to decrypt a hidden
+ volume within which a <a href="Hidden%20Operating%20System.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+hidden operating system</a> resides (see the section <a href="Hidden%20Operating%20System.html">
+Hidden Operating System</a>).<br style="text-align:left">
+<br style="text-align:left">
+Note: Alternatively, if Windows is damaged (cannot start) and you need to repair it (or access files on it), you can avoid decrypting the system partition/drive by following these steps:&nbsp;If you have multiple operating systems installed on your computer,
+ boot the one that does not require pre-boot authentication. If you do not have multiple operating systems installed on your computer, you can boot a WinPE or BartPE CD/DVD or you can connect your system drive as a secondary or external drive to another computer
+ and then boot the operating system installed on the computer. After you boot a system, run VeraCrypt, click Select Device, select the affected system partition, click OK , select System &gt; Mount Without Pre-Boot Authentication, enter your pre-boot-authentication
+ password and click OK. The partition will be mounted as a regular VeraCrypt volume (data will be on-the-fly decrypted/encrypted in RAM on access, as usual).
+</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+Your VeraCrypt Rescue Disk contains a <strong style="text-align:left">backup of the original content of the first drive track</strong> (made before the VeraCrypt Boot Loader was written to it) and allows you to restore it if necessary. The first track typically
+ contains a system loader or boot manager. In the Rescue Disk screen, select Repair Options &gt; Restore original system loader.
+</li></ul>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+&nbsp;</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<em style="text-align:left">Note that even if you lose your VeraCrypt Rescue Disk and an attacker finds it, he or she will
+<strong style="text-align:left">not</strong> be able to decrypt the system partition or drive without the correct password.</em></div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To boot a VeraCrypt Rescue Disk, insert it into your CD/DVD drive and restart your computer. If the VeraCrypt Rescue Disk screen does not appear (or if you do not see the 'Repair Options' item in the 'Keyboard Controls' section of the screen), it is possible
+ that your BIOS is configured to attempt to boot from hard drives before CD/DVD drives. If that is the case, restart your computer, press F2 or Delete (as soon as you see a BIOS start-up screen), and wait until a BIOS configuration screen appears. If no BIOS
+ configuration screen appears, restart (reset) the computer again and start pressing F2 or Delete repeatedly as soon as you restart (reset) the computer. When a BIOS configuration screen appears, configure your BIOS to boot from the CD/DVD drive first (for
+ information on how to do so, please refer to the documentation for your BIOS/motherboard or contact your computer vendor's technical support team for assistance). Then restart your computer. The VeraCrypt Rescue Disk screen should appear now. Note: In the
+ VeraCrypt Rescue Disk screen, you can select 'Repair Options' by pressing F8 on your keyboard.</div>
+<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>
diff --git a/doc/html/VeraCrypt System Files.html b/doc/html/VeraCrypt System Files.html
new file mode 100644
index 0000000..c220ae3
--- /dev/null
+++ b/doc/html/VeraCrypt System Files.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Miscellaneous.html">Miscellaneous</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20System%20Files.html">VeraCrypt System Files</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h1>VeraCrypt System Files &amp; Application Data</h1>
+<p>Note: %windir% is the main Windows installation path (e.g., C:\WINDOWS)</p>
+<h4>VeraCrypt Driver</h4>
+<p>%windir%\SYSTEM32\DRIVERS\veracrypt.sys</p>
+<p>Note: This file is not present when VeraCrypt is run in portable mode.</p>
+<h4>VeraCrypt Settings, Application Data, and Other System Files</h4>
+<p>WARNING: Note that VeraCrypt does <em>not</em> encrypt any of the files listed in this section (unless it encrypts the system partition/drive).<br>
+<br>
+The following files are saved in the folder %APPDATA%\VeraCrypt\. In portable mode, these files are saved to the folder from which you run the file Vera<em>Crypt.exe</em> (i.e., the folder in which Vera<em>Crypt.exe</em> resides):</p>
+<ul>
+<li>&quot;Configuration.xml&quot; (the main configuration file). </li></ul>
+<ul>
+<li>&quot;System Encryption.xml&quot; (temporary configuration file used during the initial process of in-place encryption/decryption of the system partition/drive).
+</li></ul>
+<ul>
+<li>&quot;Default Keyfiles.xml&quot;
+<ul>
+<li>Note: This file may be absent if the corresponding VeraCrypt feature is not used.
+</li></ul>
+</li></ul>
+<ul>
+<li>&quot;Favorite Volumes.xml&quot;
+<ul>
+<li>Note: This file may be absent if the corresponding VeraCrypt feature is not used.
+</li></ul>
+</li></ul>
+<ul>
+<li>&quot;History.xml&quot; (the list of last twenty files/devices attempted to be mounted as VeraCrypt volumes or attempted to be used as hosts for VeraCrypt volumes; this feature can be disabled &ndash; for more information, see the section
+<em>Never Save History</em>)
+<ul>
+<li>Note: This file may be absent if the corresponding VeraCrypt feature is not used.
+</li></ul>
+</li></ul>
+<ul>
+<li>&quot;In-Place Encryption&quot; (temporary configuration file used during the initial process of in-place encryption/decryption of a non-system volume).
+</li></ul>
+<ul>
+<li>&quot;In-Place Encryption Wipe Algo&quot; (temporary configuration file used during the initial process of in-place encryption/decryption of a non-system volume).
+</li></ul>
+<ul>
+<li>&quot;Post-Install Task - Tutorial&quot; (temporary configuration file used during the process of installation or upgrade of VeraCrypt).
+</li></ul>
+<ul>
+<li>&quot;Post-Install Task - Release Notes&quot; (temporary configuration file used during the process of installation or upgrade of VeraCrypt).
+</li></ul>
+<p>The following files are saved in the folder %ALLUSERSPROFILE%\VeraCrypt\:</p>
+<ul>
+<li>&quot;Original System Loader&quot; (a backup of the original content of the first drive track made before the VeraCrypt Boot Loader was written to it).
+<ul>
+<li>Note: This file is absent if the system partition/drive has not been encrypted.
+</li></ul>
+</li></ul>
+<p>The following files are saved in the folder %windir%\system32 (32-bit systems) or %windir%\SysWOW64 (64-bit systems):</p>
+<ul>
+<li>&quot;VeraCrypt System Favorite Volumes.xml&quot;
+<ul>
+<li>Note: This file may be absent if the corresponding VeraCrypt feature is not used.
+</li></ul>
+</li></ul>
+<ul>
+<li>VeraCrypt.exe
+<ul>
+<li>Note: A copy of this file is located in this folder only when mounting of system favorite volumes is enabled.
+</li></ul>
+</li></ul>
+<p>&nbsp;</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/VeraCrypt Volume Format Specification.html b/doc/html/VeraCrypt Volume Format Specification.html
new file mode 100644
index 0000000..aa10f03
--- /dev/null
+++ b/doc/html/VeraCrypt Volume Format Specification.html
@@ -0,0 +1,740 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Technical%20Details.html">Technical Details</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Volume%20Format%20Specification.html">VeraCrypt Volume Format Specification</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>VeraCrypt Volume Format Specification</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The format of file-hosted volumes is identical to the format of partition/device-hosted volumes (however, the &quot;volume header&quot;, or key data, for a system partition/drive is stored in the last 512 bytes of the first logical drive track). VeraCrypt volumes have
+ no &quot;signature&quot; or ID strings. Until decrypted, they appear to consist solely of random data.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Free space on each VeraCrypt volume is filled with random data when the volume is created.* The random data is generated as follows: Right before VeraCrypt volume formatting begins, a temporary encryption key and a temporary secondary key (XTS mode) are generated
+ by the random number generator (see the section <a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Random Number Generator</a>). The encryption algorithm that the user selected is initialized with the temporary keys. The encryption algorithm is then used to encrypt plaintext blocks consisting of random bytes generated by the random number generator. The
+ encryption algorithm operates in XTS mode (see the section <a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Volume</a>). The resulting ciphertext blocks are used to fill (overwrite) the free space on the volume. The temporary keys are stored in RAM and are erased after formatting finishes.</div>
+<p><br style="text-align:left">
+VeraCrypt Volume Format Specification:</p>
+<table style="border-collapse:separate; border-spacing:0px; width:608px; text-align:left; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; border-width:0px 0px 1px 1px; border-style:solid; border-color:#ffffff #ffffff #000000 #000000">
+<tbody style="text-align:left">
+<tr style="text-align:left">
+<th style="width:76px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:9px 0px; border-color:#000000 #000000 #000000 white">
+Offset (bytes)</th>
+<th style="width:50px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:9px 0px; border-color:#000000 #000000 #000000 white">
+Size (bytes)</th>
+<th style="width:98px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:9px 0px; border-color:#000000 #000000 #000000 white">
+Encryption<br>
+Status&dagger;</th>
+<th style="width:382px; font-weight:normal; text-align:center; vertical-align:middle; color:#000000; border-width:1px 1px 1px 0px; border-style:solid solid solid none; padding:9px 0px; border-color:#000000 #000000 #000000 white">
+Description</th>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">0&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">64&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Unencrypted&sect;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Salt</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">64&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">4&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;ASCII string &quot;VERA&quot;</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">68&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">2&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Volume header format version (2)</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">70&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">2&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Minimum program version required to open the volume</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">72&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">4&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;CRC-32 checksum of the (decrypted) bytes 256-511</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">76&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">16&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Reserved (must contain zeroes)</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">92&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">8&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Size of hidden volume (set to zero in non-hidden volumes)</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">100&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">8&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Size of volume</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">108&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">8&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Byte offset of the start of the master key scope</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">116&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">8&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Size of the encrypted area within the master key scope</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">124&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">4&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Flag bits (bit 0 set: system encryption; bit 1 set: non-system</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;in-place-encrypted/decrypted volume; bits 2&ndash;31 are reserved)</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">128&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">4&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Sector size (in bytes)</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">132&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">120&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Reserved (must contain zeroes)</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">252&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">4&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;CRC-32 checksum of the (decrypted) bytes 64-251</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">256&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right"><em>Var.</em>&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Concatenated primary and secondary master keys**</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">512&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">65024&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Reserved (for system encryption, this item is omitted&Dagger;&Dagger;)</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">65536&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">65536&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted /</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Area for hidden volume header (if there is no hidden volume</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Unencrypted&sect;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;within the volume, this area contains random data&dagger;&dagger;). For</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;system encryption, this item is omitted.&Dagger;&Dagger; See bytes 0&ndash;65535.</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">131072&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right"><em>Var.</em>&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Data area (master key scope). For system encryption, offset</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;may be different (depending on offset of system partition).</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right"><em>S</em>-131072&Dagger;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">65536&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted /</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Backup header (encrypted with a different header key derived</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Unencrypted&sect;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;using a different salt). For system encryption, this item is</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;omitted.&Dagger;&Dagger; See bytes 0&ndash;65535.</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right"><em>S</em>-65536&Dagger;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">65536&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Encrypted /</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Backup header for hidden volume (encrypted with a different</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;Unencrypted&sect;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;header key derived using a different salt). If there is no hidden</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;volume within the volume, this area contains random data.&dagger;&dagger;</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;For system encryption, this item is omitted.&Dagger;&Dagger; See bytes</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="right">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;</div>
+</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+<div align="left">&nbsp;0&ndash;65535.</div>
+</td>
+</tr>
+<tr style="text-align:left">
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:0px 5px; border-color:white #000000 #ffffff white">
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The fields located at byte #0 (salt) and #256 (master keys) contain random values generated by the random number generator (see the section
+<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Random Number Generator</a>) during the volume creation process.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If a VeraCrypt volume hosts a hidden volume (within its free space), the header of the hidden volume is located at byte #65536 of the host volume (the header of the host/outer volume is located at byte #0 of the host volume &ndash; see the section
+<a href="Hidden%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hidden Volume</a>). If there is no hidden volume within a VeraCrypt volume, bytes 65536&ndash;131071 of the volume (i.e., the area where the header of a hidden volume can reside) contain random data (see above for information on the method used to fill free
+ volume space with random data when the volume is created). The layout of the header of a hidden volume is the same as the one of a standard volume (bytes 0&ndash;65535).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The maximum possible VeraCrypt volume size is 2<sup style="text-align:left; font-size:85%">63</sup> bytes (8,589,934,592 GB). However, due to security reasons (with respect to the 128-bit block size used by the
+<a href="Encryption%20Algorithms.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+encryption algorithms</a>), the maximum allowed volume size is 1 PB (1,048,576 GB).</div>
+<h4 style="text-align:left; font-family:Arial,Helvetica,Verdana,sans-serif; font-weight:bold; margin-top:0px; font-size:12px; margin-bottom:1px">
+Embedded Backup Headers</h4>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Each VeraCrypt volume contains an embedded backup header, located at the end of the volume (see above). The header backup is
+<em style="text-align:left">not</em> a copy of the volume header because it is encrypted with a different header key derived using a different salt (see the section
+<a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Header Key Derivation, Salt, and Iteration Count</a>).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+When the volume password and/or PIM and/or keyfiles are changed, or when the header is restored from the embedded (or an external) header backup, both the volume header and the backup header (embedded in the volume) are re-encrypted with different header keys
+ (derived using newly generated salts &ndash; the salt for the volume header is different from the salt for the backup header). Each salt is generated by the VeraCrypt random number generator (see the section
+<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Random Number Generator</a>).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+For more information about header backups, see the subsection <a href="Program%20Menu.html#tools-restore-volume-header" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Tools &gt; Restore Volume Header</a> in the chapter <a href="Main%20Program%20Window.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Main Program Window</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="Standard%20Compliance.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
+<p><span style="text-align:left; font-size:10px; line-height:12px">* Provided that the options
+<em style="text-align:left">Quick Format</em> and <em style="text-align:left">Dynamic</em> are disabled and provided that the volume does not contain a filesystem that has been encrypted in place (note that VeraCrypt does not allow the user to create a hidden
+ volume within such a volume).</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">&dagger; The encrypted areas of the volume header are encrypted in XTS mode using the primary and secondary header keys. For more information, see the section
+<a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Encryption Scheme</a> and the section <a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Header Key Derivation, Salt, and Iteration Count</a>.</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">&Dagger; <em style="text-align:left">
+S</em> denotes the size of the volume host (in bytes).</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">&sect; Note that the salt does not need to be encrypted, as it does not have to be kept secret [7] (salt is a sequence of random values).</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">** Multiple concatenated master keys are stored here when the volume is encrypted using a cascade of ciphers (secondary master keys are used for XTS mode).</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">&dagger;&dagger; See above in this section for information on the method used to fill free volume space with random data when the volume is created.</span><br style="text-align:left">
+<span style="text-align:left; font-size:10px; line-height:12px">&Dagger;&Dagger; Here, the meaning of &quot;system encryption&quot; does not include a hidden volume containing a hidden operating system.</span></p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/VeraCrypt Volume.html b/doc/html/VeraCrypt Volume.html
new file mode 100644
index 0000000..a33ef25
--- /dev/null
+++ b/doc/html/VeraCrypt Volume.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="VeraCrypt%20Volume.html">VeraCrypt Volume</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>VeraCrypt Volume</h1>
+<p>There are two types of VeraCrypt volumes:</p>
+<ul>
+<li>File-hosted (container) </li><li>Partition/device-hosted (non-system) </li></ul>
+<p>Note: In addition to creating the above types of virtual volumes, VeraCrypt can encrypt a physical partition/drive where Windows is installed (for more information, see the chapter
+<a href="System%20Encryption.html"><em>System Encryption</em></a>).<br>
+<br>
+A VeraCrypt file-hosted volume is a normal file, which can reside on any type of storage device. It contains (hosts) a completely independent encrypted virtual disk device.<br>
+<br>
+A VeraCrypt partition is a hard disk partition encrypted using VeraCrypt. You can also encrypt entire hard disks, USB hard disks, USB memory sticks, and other types of storage devices.</p>
+<p><a href="Creating%20New%20Volumes.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></p>
+</div>
+</body></html>
diff --git a/doc/html/VeraCrypt128x128.png b/doc/html/VeraCrypt128x128.png
new file mode 100644
index 0000000..072fa58
--- /dev/null
+++ b/doc/html/VeraCrypt128x128.png
Binary files differ
diff --git a/doc/html/Volume Clones.html b/doc/html/Volume Clones.html
new file mode 100644
index 0000000..a3eb34e
--- /dev/null
+++ b/doc/html/Volume Clones.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Volume%20Clones.html">Volume Clones</a>
+</p></div>
+
+<div class="wikidoc">
+<div>
+<h2>Volume Clones</h2>
+<p>Never create a new VeraCrypt volume by cloning an existing VeraCrypt volume. Always use the VeraCrypt Volume Creation Wizard to create a new VeraCrypt volume. If you clone a volume and then start using both this volume and its clone in a way that both eventually
+ contain different data, then you might aid cryptanalysis (both volumes will share a single key set). This is especially critical when the volume contains a hidden volume. Also note that plausible deniability (see section
+<a href="Plausible%20Deniability.html"><em>Plausible Deniability</em></a>) is impossible in such cases. See also the chapter
+<a href="How%20to%20Back%20Up%20Securely.html">
+<em>How to Back Up Securely</em></a>.</p>
+</div>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Wear-Leveling.html b/doc/html/Wear-Leveling.html
new file mode 100644
index 0000000..10db9f2
--- /dev/null
+++ b/doc/html/Wear-Leveling.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Security%20Requirements%20and%20Precautions.html">Security Requirements and Precautions</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Wear-Leveling.html">Wear-Leveling</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Wear-Leveling</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+Some storage devices (e.g., some solid-state drives, including USB flash drives) and some file systems utilize so-called wear-leveling mechanisms to extend the lifetime of the storage device or medium. These mechanisms ensure that even if an application repeatedly
+ writes data to the same logical sector, the data is distributed evenly across the medium (logical sectors are remapped to different physical sectors). Therefore, multiple &quot;versions&quot; of a single sector may be available to an attacker. This may have various
+ security implications. For instance, when you change a volume password/keyfile(s), the volume header is, under normal conditions, overwritten with a re-encrypted version of the header. However, when the volume resides on a device that utilizes a wear-leveling
+ mechanism, VeraCrypt cannot ensure that the older header is really overwritten. If an adversary found the old volume header (which was to be overwritten) on the device, he could use it to mount the volume using an old compromised password (and/or using compromised
+ keyfiles that were necessary to mount the volume before the volume header was re-encrypted). Due to security reasons, we recommend that
+<a href="VeraCrypt%20Volume.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+VeraCrypt volumes</a> are not created/stored on devices (or in file systems) that utilize a wear-leveling mechanism (and that VeraCrypt is not used to encrypt any portions of such devices or filesystems).</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If you decide not to follow this recommendation and you intend to use in-place encryption on a drive that utilizes wear-leveling mechanisms, make sure the partition/drive does not contain any sensitive data before you fully encrypt it (VeraCrypt cannot reliably
+ perform secure in-place encryption of existing data on such a drive; however, after the partition/drive has been fully encrypted, any new data that will be saved to it will be reliably encrypted on the fly). That includes the following precautions: Before
+ you run VeraCrypt to set up pre-boot authentication, disable the paging files and restart the operating system (you can enable the
+<a href="Paging%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+paging files</a> after the system partition/drive has been fully encrypted). <a href="Hibernation%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hibernation</a> must be prevented during the period between the moment when you start VeraCrypt to set up pre-boot authentication and the moment when the system partition/drive has been fully encrypted. However, note that even if you follow those steps, it
+ is <em style="text-align:left">not</em> guaranteed that you will prevent data leaks and that sensitive data on the device will be securely encrypted. For more information, see the sections
+<a href="Data%20Leaks.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Data Leaks</a>, <a href="Paging%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Paging File</a>, <a href="Hibernation%20File.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Hibernation File</a>, and <a href="Memory%20Dump%20Files.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+Memory Dump Files</a>.</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+If you need <a href="Plausible%20Deniability.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
+plausible deniability</a>, you must not use VeraCrypt to encrypt any part of (or create encrypted containers on) a device (or file system) that utilizes a wear-leveling mechanism.</div>
+<p>To find out whether a device utilizes a wear-leveling mechanism, please refer to documentation supplied with the device or contact the vendor/manufacturer.</p>
+</div><div class="ClearBoth"></div></body></html> \ No newline at end of file
diff --git a/doc/html/Whirlpool.html b/doc/html/Whirlpool.html
new file mode 100644
index 0000000..796c667
--- /dev/null
+++ b/doc/html/Whirlpool.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
+<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
+<meta name="keywords" content="encryption, security"/>
+<link href="styles.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<div>
+<a href="https://www.veracrypt.fr/en/Home.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
+</div>
+
+<div id="menu">
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="/code/">Source Code</a></li>
+ <li><a href="Downloads.html">Downloads</a></li>
+ <li><a class="active" href="Documentation.html">Documentation</a></li>
+ <li><a href="Donation.html">Donate</a></li>
+ <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
+ </ul>
+</div>
+
+<div>
+<p>
+<a href="Documentation.html">Documentation</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Hash%20Algorithms.html">Hash Algorithms</a>
+<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
+<a href="Whirlpool.html">Whirlpool</a>
+</p></div>
+
+<div class="wikidoc">
+<h1>Whirlpool</h1>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+The Whirlpool hash algorithm was designed by Vincent Rijmen (co-designer of the AES encryption algorithm) and Paulo S. L. M. Barreto. The size of the output of this algorithm is 512 bits. The first version of Whirlpool, now called Whirlpool-0, was published
+ in November 2000. The second version, now called Whirlpool-T, was selected for the NESSIE (<em style="text-align:left">New European Schemes for Signatures, Integrity and Encryption</em>) portfolio of cryptographic primitives (a project organized by the European
+ Union, similar to the AES competition). VeraCrypt uses the third (final) version of Whirlpool, which was adopted by the International Organization for Standardization (ISO) and the IEC in the ISO/IEC 10118-3:2004 international standard [21].</div>
+ <div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+<a href="Streebog.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Next Section &gt;&gt;</a></div>
+</div>
+</body></html> \ No newline at end of file
diff --git a/doc/html/arrow_right.gif b/doc/html/arrow_right.gif
new file mode 100644
index 0000000..665bf8e
--- /dev/null
+++ b/doc/html/arrow_right.gif
Binary files differ
diff --git a/doc/html/bank_30x30.png b/doc/html/bank_30x30.png
new file mode 100644
index 0000000..a678bb6
--- /dev/null
+++ b/doc/html/bank_30x30.png
Binary files differ
diff --git a/doc/html/flattr-badge-large.png b/doc/html/flattr-badge-large.png
new file mode 100644
index 0000000..cbf1bbb
--- /dev/null
+++ b/doc/html/flattr-badge-large.png
Binary files differ
diff --git a/doc/html/gf2_mul.gif b/doc/html/gf2_mul.gif
new file mode 100644
index 0000000..b6e15a6
--- /dev/null
+++ b/doc/html/gf2_mul.gif
Binary files differ
diff --git a/doc/html/styles.css b/doc/html/styles.css
new file mode 100644
index 0000000..67d2784
--- /dev/null
+++ b/doc/html/styles.css
@@ -0,0 +1,31 @@
+#menu {
+ display: none;
+}
+
+#menu ul {
+ list-style-type: none;
+ margin: 0px auto;
+ padding: 0;
+ overflow: hidden;
+ background-color: #08aad7;
+}
+
+#menu li {
+ float: left;
+}
+
+#menu li a {
+ display: block;
+ color: white;
+ text-align: center;
+ padding: 16px;
+ text-decoration: none;
+}
+
+#menu li a.active {
+ background-color: #84c7b0;
+}
+
+#menu li a:hover {
+ background-color: #111111;
+} \ No newline at end of file
diff --git a/doc/html/twitter_veracrypt.PNG b/doc/html/twitter_veracrypt.PNG
new file mode 100644
index 0000000..6327929
--- /dev/null
+++ b/doc/html/twitter_veracrypt.PNG
Binary files differ
diff --git a/src/Boot/EFI/DcsBml.efi b/src/Boot/EFI/DcsBml.efi
index 8775ce4..d03dc4a 100644
--- a/src/Boot/EFI/DcsBml.efi
+++ b/src/Boot/EFI/DcsBml.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsBml32.efi b/src/Boot/EFI/DcsBml32.efi
index 8b3df11..81b604c 100644
--- a/src/Boot/EFI/DcsBml32.efi
+++ b/src/Boot/EFI/DcsBml32.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsBoot.efi b/src/Boot/EFI/DcsBoot.efi
index d6703d2..412a187 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 93806f2..ce81993 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 36b2b20..0f52f19 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 e551771..f816488 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
new file mode 100644
index 0000000..900b3b1
--- /dev/null
+++ b/src/Boot/EFI/DcsInfo.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsInfo32.efi b/src/Boot/EFI/DcsInfo32.efi
new file mode 100644
index 0000000..b0b02fe
--- /dev/null
+++ b/src/Boot/EFI/DcsInfo32.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsInt.efi b/src/Boot/EFI/DcsInt.efi
index 19ba53a..5a16f53 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 05caedb..7a3447a 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 822fa62..be6860c 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 08ec484..b0e6817 100644
--- a/src/Boot/EFI/DcsRe32.efi
+++ b/src/Boot/EFI/DcsRe32.efi
Binary files differ
diff --git a/src/Boot/EFI/Readme.txt b/src/Boot/EFI/Readme.txt
index f396b32..9ba9402 100644
--- a/src/Boot/EFI/Readme.txt
+++ b/src/Boot/EFI/Readme.txt
@@ -17,19 +17,18 @@ Here the steps to build VeraCrypt-DCS (Visual Studio 2010 SP1 should be installe
* After the build is finished, EFI bootloader files will be present at edk2\Build\DcsPkg\RELEASE_VS2010x86\X64
Secure Boot:
-In order to allow VeraCrypt EFI bootloader to run when EFI Secure Boot is enabled, VeraCrypt EFI bootloader files are signed
-using a custom key whose public part can be loader into Secure Boot to allow the verification of VeraCrypt EFI files.
+In order to allow VeraCrypt EFI bootloader to run when EFI Secure Boot is enabled, VeraCrypt EFI bootloader files are signed by custom key(DCS_sign) whose public part can be loaded into Secure Boot to allow verification of VeraCrypt EFI files.
-below are instruction to update Secure Boot configuration:
+to update Secure Boot configuration steps:
1. Enter BIOS configuration
2. Switch Secure boot to setup mode (or custom mode). It deletes PK (platform certificate) and allows to load DCS platform key.
3. Boot Windows
4. execute from admin command prompt
- powershell -File sb_set_siglists.ps1
+ powershell -ExecutionPolicy Bypass -File sb_set_siglists.ps1
It sets in PK (platform key) - DCS_platform
It sets in KEK (key exchange key) - DCS_key_exchange
It sets in db - DCS_sign MicWinProPCA2011_2011-10-19 MicCorUEFCA2011_2011-06-27
All DCS modules are protected by DCS_sign.
All Windows modules are protected by MicWinProPCA2011_2011-10-19
-All SHIM(linux) modules are protected by MicCorUEFCA2011_2011-06-27 \ No newline at end of file
+All SHIM(linux) modules are protected by MicCorUEFCA2011_2011-06-27 \ No newline at end of file
diff --git a/src/Boot/Windows/Bios.h b/src/Boot/Windows/Bios.h
index e6f9ec8..4e1cec5 100644
--- a/src/Boot/Windows/Bios.h
+++ b/src/Boot/Windows/Bios.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/Boot.vcproj b/src/Boot/Windows/Boot.vcproj
index d53b320..c73b099 100644
--- a/src/Boot/Windows/Boot.vcproj
+++ b/src/Boot/Windows/Boot.vcproj
@@ -1,250 +1,250 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="Boot"
- ProjectGUID="{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}"
- RootNamespace="Boot"
- Keyword="MakeFileProj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;md Release_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;md Release_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;md Release_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH&#x0D;&#x0A;&#x0D;&#x0A;md Release_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA&#x0D;&#x0A;&#x0D;&#x0A;md Release_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1 SINGLE_PRF=SHA2"
- ReBuildCommandLine="del /q /s Release &gt;NUL:&#x0D;&#x0A;md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_AES &gt;NUL:&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_AES_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Serpent &gt;NUL:&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Serpent_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Twofish &gt;NUL:&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Twofish_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Camellia &gt;NUL:&#x0D;&#x0A;md Release_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Camellia_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue &gt;NUL:&#x0D;&#x0A;md Rescue 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_AES &gt;NUL:&#x0D;&#x0A;md Rescue_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_AES_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Serpent &gt;NUL:&#x0D;&#x0A;md Rescue_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Serpent_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Twofish &gt;NUL:&#x0D;&#x0A;md Rescue_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Twofish_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Camellia &gt;NUL:&#x0D;&#x0A;md Rescue_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Camellia_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1 SINGLE_PRF=SHA2"
- CleanCommandLine="del /q /s Release Release_AES Release_Serpent Release_Twofish Release_Camellia Rescue Rescue_AES Rescue_Serpent Rescue_Twofish Rescue_Camellia &gt;NUL:&#x0D;&#x0A;del /q /s Release_SHA2 Release_AES_SHA2 Release_Serpent_SHA2 Release_Twofish_SHA2 Release_Camellia_SHA2 Rescue_SHA2 Rescue_AES_SHA2 Rescue_Serpent_SHA2 Rescue_Twofish_SHA2 Rescue_Camellia_SHA2 &gt;NUL:&#x0D;&#x0A;"
- Output="Release\BootLoader.com"
- PreprocessorDefinitions="WIN32;NDEBUG"
- IncludeSearchPath="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(MSVC16_ROOT)\Include&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- <Configuration
- Name="Release Loader|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH"
- ReBuildCommandLine="del /q /s Release &gt;NUL:&#x0D;&#x0A;md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_AES &gt;NUL:&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Serpent &gt;NUL:&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Twofish &gt;NUL:&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH"
- CleanCommandLine="del /q /s Release Release_AES Release_Serpent Release_Twofish &gt;NUL:"
- Output="Release\BootLoader.com"
- PreprocessorDefinitions="WIN32;NDEBUG"
- IncludeSearchPath="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(MSVC16_ROOT)\Include&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\BootConfig.cpp"
- >
- </File>
- <File
- RelativePath=".\BootConsoleIo.cpp"
- >
- </File>
- <File
- RelativePath=".\BootCrt.asm"
- >
- </File>
- <File
- RelativePath=".\BootDebug.cpp"
- >
- </File>
- <File
- RelativePath=".\BootDiskIo.cpp"
- >
- </File>
- <File
- RelativePath=".\BootEncryptedIo.cpp"
- >
- </File>
- <File
- RelativePath=".\BootMain.cpp"
- >
- </File>
- <File
- RelativePath=".\BootMemory.cpp"
- >
- </File>
- <File
- RelativePath=".\BootSector.asm"
- >
- </File>
- <File
- RelativePath=".\Decompressor.c"
- >
- </File>
- <File
- RelativePath=".\IntFilter.cpp"
- >
- </File>
- <File
- RelativePath=".\Platform.cpp"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\..\Common\Crc.c"
- >
- </File>
- <File
- RelativePath="..\..\Common\Crypto.c"
- >
- </File>
- <File
- RelativePath="..\..\Common\Endian.c"
- >
- </File>
- <File
- RelativePath="..\..\Common\Pkcs5.c"
- >
- </File>
- <File
- RelativePath="..\..\Common\Volumes.c"
- >
- </File>
- <File
- RelativePath="..\..\Common\Xts.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Crypto"
- >
- <File
- RelativePath="..\..\Crypto\Aes_hw_cpu.asm"
- >
- </File>
- <File
- RelativePath="..\..\Crypto\AesSmall.c"
- >
- </File>
- <File
- RelativePath="..\..\Crypto\AesSmall_x86.asm"
- >
- </File>
- <File
- RelativePath="..\..\Crypto\CamelliaSmall.c"
- >
- </File>
- <File
- RelativePath="..\..\Crypto\Rmd160.c"
- >
- </File>
- <File
- RelativePath="..\..\Crypto\Serpent.c"
- >
- </File>
- <File
- RelativePath="..\..\Crypto\Sha2Small.c"
- >
- </File>
- <File
- RelativePath="..\..\Crypto\Twofish.c"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\Bios.h"
- >
- </File>
- <File
- RelativePath=".\BootCommon.h"
- >
- </File>
- <File
- RelativePath=".\BootConfig.h"
- >
- </File>
- <File
- RelativePath=".\BootConsoleIo.h"
- >
- </File>
- <File
- RelativePath=".\BootDebug.h"
- >
- </File>
- <File
- RelativePath=".\BootDefs.h"
- >
- </File>
- <File
- RelativePath=".\BootDiskIo.h"
- >
- </File>
- <File
- RelativePath=".\BootEncryptedIo.h"
- >
- </File>
- <File
- RelativePath=".\BootMain.h"
- >
- </File>
- <File
- RelativePath=".\BootMemory.h"
- >
- </File>
- <File
- RelativePath=".\BootStrings.h"
- >
- </File>
- <File
- RelativePath=".\IntFilter.h"
- >
- </File>
- <File
- RelativePath=".\Platform.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Build Files"
- >
- <File
- RelativePath=".\Makefile"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="Boot"
+ ProjectGUID="{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}"
+ RootNamespace="Boot"
+ Keyword="MakeFileProj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;md Release_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;md Release_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;md Release_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH&#x0D;&#x0A;&#x0D;&#x0A;md Release_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Release_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA&#x0D;&#x0A;&#x0D;&#x0A;md Release_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;md Rescue_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1 SINGLE_PRF=SHA2"
+ ReBuildCommandLine="del /q /s Release &gt;NUL:&#x0D;&#x0A;md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_AES &gt;NUL:&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_AES_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Serpent &gt;NUL:&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Serpent_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Twofish &gt;NUL:&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Twofish_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Camellia &gt;NUL:&#x0D;&#x0A;md Release_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Camellia_SHA2 &gt;NUL:&#x0D;&#x0A;md Release_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue &gt;NUL:&#x0D;&#x0A;md Rescue 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_AES &gt;NUL:&#x0D;&#x0A;md Rescue_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_AES_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_AES_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Serpent &gt;NUL:&#x0D;&#x0A;md Rescue_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Serpent_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_Serpent_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Twofish &gt;NUL:&#x0D;&#x0A;md Rescue_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Twofish_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_Twofish_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1 SINGLE_PRF=SHA2&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Camellia &gt;NUL:&#x0D;&#x0A;md Rescue_Camellia 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Rescue_Camellia_SHA2 &gt;NUL:&#x0D;&#x0A;md Rescue_Camellia_SHA2 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=CAMELLIA RESCUE_DISK=1 SINGLE_PRF=SHA2"
+ CleanCommandLine="del /q /s Release Release_AES Release_Serpent Release_Twofish Release_Camellia Rescue Rescue_AES Rescue_Serpent Rescue_Twofish Rescue_Camellia &gt;NUL:&#x0D;&#x0A;del /q /s Release_SHA2 Release_AES_SHA2 Release_Serpent_SHA2 Release_Twofish_SHA2 Release_Camellia_SHA2 Rescue_SHA2 Rescue_AES_SHA2 Rescue_Serpent_SHA2 Rescue_Twofish_SHA2 Rescue_Camellia_SHA2 &gt;NUL:&#x0D;&#x0A;"
+ Output="Release\BootLoader.com"
+ PreprocessorDefinitions="WIN32;NDEBUG"
+ IncludeSearchPath="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(MSVC16_ROOT)\Include&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Release Loader|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH"
+ ReBuildCommandLine="del /q /s Release &gt;NUL:&#x0D;&#x0A;md Release 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_AES &gt;NUL:&#x0D;&#x0A;md Release_AES 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=AES&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Serpent &gt;NUL:&#x0D;&#x0A;md Release_Serpent 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=SERPENT&#x0D;&#x0A;&#x0D;&#x0A;del /q /s Release_Twofish &gt;NUL:&#x0D;&#x0A;md Release_Twofish 2&gt;NUL:&#x0D;&#x0A;nmake.exe /nologo RELEASE=1 SINGLE_CIPHER=TWOFISH"
+ CleanCommandLine="del /q /s Release Release_AES Release_Serpent Release_Twofish &gt;NUL:"
+ Output="Release\BootLoader.com"
+ PreprocessorDefinitions="WIN32;NDEBUG"
+ IncludeSearchPath="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(MSVC16_ROOT)\Include&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\BootConfig.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BootConsoleIo.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BootCrt.asm"
+ >
+ </File>
+ <File
+ RelativePath=".\BootDebug.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BootDiskIo.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BootEncryptedIo.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BootMain.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BootMemory.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BootSector.asm"
+ >
+ </File>
+ <File
+ RelativePath=".\Decompressor.c"
+ >
+ </File>
+ <File
+ RelativePath=".\IntFilter.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Platform.cpp"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\..\Common\Crc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Common\Crypto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Common\Endian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Common\Pkcs5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Common\Volumes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Common\Xts.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Crypto"
+ >
+ <File
+ RelativePath="..\..\Crypto\Aes_hw_cpu.asm"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Crypto\AesSmall.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Crypto\AesSmall_x86.asm"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Crypto\CamelliaSmall.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Crypto\Rmd160.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Crypto\Serpent.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Crypto\Sha2Small.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\Crypto\Twofish.c"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\Bios.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootCommon.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootConfig.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootConsoleIo.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootDebug.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootDefs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootDiskIo.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootEncryptedIo.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootMain.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootMemory.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BootStrings.h"
+ >
+ </File>
+ <File
+ RelativePath=".\IntFilter.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Platform.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Build Files"
+ >
+ <File
+ RelativePath=".\Makefile"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/Boot/Windows/BootCommon.h b/src/Boot/Windows/BootCommon.h
index 5d099a2..13c1f40 100644
--- a/src/Boot/Windows/BootCommon.h
+++ b/src/Boot/Windows/BootCommon.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -17,7 +17,7 @@
#include "BootDefs.h"
// The user will be advised to upgrade the rescue disk if upgrading from the following or any previous version
-#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x0118
+#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x0120
#define TC_BOOT_LOADER_AREA_SIZE (TC_BOOT_LOADER_AREA_SECTOR_COUNT * TC_SECTOR_SIZE_BIOS)
@@ -82,6 +82,10 @@ typedef struct
#define DCS_DISK_ENTRY_LIST_HEADER_SIGN SIGNATURE_64 ('D','C','S','D','E','L','S','T')
+#ifndef CSTATIC_ASSERT
+#define CSTATIC_ASSERT(b, name) typedef int StaticAssertFailed##name[b ? 1 : -1];
+#endif
+
#define DE_IDX_CRYPTOHEADER 0
#define DE_IDX_LIST 1
#define DE_IDX_DISKID 2
@@ -93,7 +97,7 @@ typedef struct
#define DE_IDX_PWDCACHE 8
#define DE_IDX_RND 9
#define DE_IDX_TOTAL 10
-static_assert(DE_IDX_TOTAL <= 15, "DE_IDX_TOTAL too big");
+CSTATIC_ASSERT(DE_IDX_TOTAL <= 15, DE_IDX_TOTAL_too_big);
enum DcsDiskEntryTypes {
DE_Unused = 0,
@@ -127,7 +131,7 @@ typedef struct _DCS_DISK_ENTRY_SECTORS {
uint64 Start; // Start on disk (byte)
uint64 Length; // length on disk (byte)
} DCS_DISK_ENTRY_SECTORS;
-static_assert(sizeof(DCS_DISK_ENTRY_SECTORS) == 32, "Wrong size DCS_DISK_ENTRY_SECTORS");
+CSTATIC_ASSERT(sizeof(DCS_DISK_ENTRY_SECTORS) == 32, Wrong_size_DCS_DISK_ENTRY_SECTORS);
typedef struct _DCS_DISK_ENTRY_PARAMS {
uint32 Type;
@@ -135,7 +139,7 @@ typedef struct _DCS_DISK_ENTRY_PARAMS {
uint64 Reserved[2];
uint64 Length; // size of data
} DCS_DISK_ENTRY_PARAMS;
-static_assert(sizeof(DCS_DISK_ENTRY_PARAMS) == 32, "Wrong size DCS_DISK_ENTRY_PARAMS");
+CSTATIC_ASSERT(sizeof(DCS_DISK_ENTRY_PARAMS) == 32, Wrong_size_DCS_DISK_ENTRY_PARAMS);
typedef struct _DCS_DISK_ENTRY_DISKID {
uint32 Type;
@@ -143,7 +147,7 @@ typedef struct _DCS_DISK_ENTRY_DISKID {
uint64 ReservedDiskId;
DCS_GUID GptID;
} DCS_DISK_ENTRY_DISKID;
-static_assert(sizeof(DCS_DISK_ENTRY_DISKID) == 32, "Wrong size DCS_DISK_ENTRY_DISKID");
+CSTATIC_ASSERT(sizeof(DCS_DISK_ENTRY_DISKID) == 32, Wrong_size_DCS_DISK_ENTRY_DISKID);
#pragma warning(disable:4201)
typedef struct _DCS_DISK_ENTRY {
@@ -160,19 +164,19 @@ typedef struct _DCS_DISK_ENTRY {
};
} DCS_DISK_ENTRY;
#pragma warning(default:4201)
-static_assert(sizeof(DCS_DISK_ENTRY) == 32, "Wrong size DCS_DISK_ENTRY");
+CSTATIC_ASSERT(sizeof(DCS_DISK_ENTRY) == 32, Wrong_size_DCS_DISK_ENTRY);
// Static compile time checks field offsets
#ifndef FIELD_OFFSET
#define FIELD_OFFSET(t, f) ((UINTN)(&((t*)0)->f))
#endif
-static_assert(FIELD_OFFSET(DCS_DISK_ENTRY, Type) == FIELD_OFFSET(DCS_DISK_ENTRY_SECTORS, Type), "Wrong Type offset");
-static_assert(FIELD_OFFSET(DCS_DISK_ENTRY, Type) == FIELD_OFFSET(DCS_DISK_ENTRY_DISKID, Type), "Wrong Type offset");
-static_assert(FIELD_OFFSET(DCS_DISK_ENTRY, Type) == FIELD_OFFSET(DCS_DISK_ENTRY_PARAMS, Type), "Wrong Type offset");
-static_assert(FIELD_OFFSET(DCS_DISK_ENTRY, Length) == FIELD_OFFSET(DCS_DISK_ENTRY_SECTORS, Length), "Wrong Length offset");
-static_assert(FIELD_OFFSET(DCS_DISK_ENTRY, Length) == FIELD_OFFSET(DCS_DISK_ENTRY_PARAMS, Length), "Wrong Length offset");
-static_assert(FIELD_OFFSET(DCS_DISK_ENTRY, Offset) == FIELD_OFFSET(DCS_DISK_ENTRY_SECTORS, Offset), "Wrong Offset offset");
-static_assert(FIELD_OFFSET(DCS_DISK_ENTRY, Offset) == FIELD_OFFSET(DCS_DISK_ENTRY_PARAMS, Offset), "Wrong Offset offset");
+CSTATIC_ASSERT(FIELD_OFFSET(DCS_DISK_ENTRY, Type) == FIELD_OFFSET(DCS_DISK_ENTRY_SECTORS, Type), Wrong_Type_offset);
+CSTATIC_ASSERT(FIELD_OFFSET(DCS_DISK_ENTRY, Type) == FIELD_OFFSET(DCS_DISK_ENTRY_DISKID, Type), Wrong_Type_offset);
+CSTATIC_ASSERT(FIELD_OFFSET(DCS_DISK_ENTRY, Type) == FIELD_OFFSET(DCS_DISK_ENTRY_PARAMS, Type), Wrong_Type_offset);
+CSTATIC_ASSERT(FIELD_OFFSET(DCS_DISK_ENTRY, Length) == FIELD_OFFSET(DCS_DISK_ENTRY_SECTORS, Length), Wrong_Length_offset);
+CSTATIC_ASSERT(FIELD_OFFSET(DCS_DISK_ENTRY, Length) == FIELD_OFFSET(DCS_DISK_ENTRY_PARAMS, Length), Wrong_Length_offset);
+CSTATIC_ASSERT(FIELD_OFFSET(DCS_DISK_ENTRY, Offset) == FIELD_OFFSET(DCS_DISK_ENTRY_SECTORS, Offset), Wrong_Offset_offset);
+CSTATIC_ASSERT(FIELD_OFFSET(DCS_DISK_ENTRY, Offset) == FIELD_OFFSET(DCS_DISK_ENTRY_PARAMS, Offset), Wrong_Offset_offset);
// DE type specific data
// DE List
@@ -189,13 +193,13 @@ typedef struct _DCS_DISK_ENTRY_LIST {
//
DCS_DISK_ENTRY DE[15];
} DCS_DISK_ENTRY_LIST;
-static_assert(sizeof(DCS_DISK_ENTRY_LIST) == 512, "Wrong size DCS_DISK_ENTRY_LIST");
+CSTATIC_ASSERT(sizeof(DCS_DISK_ENTRY_LIST) == 512, Wrong_size_DCS_DISK_ENTRY_LIST);
typedef struct _DCS_DEP_EXEC {
DCS_GUID ExecPartGuid;
uint16 ExecCmd[248];
} DCS_DEP_EXEC;
-static_assert(sizeof(DCS_DEP_EXEC) == 512, "Wrong size DCS_DEP_EXEC");
+CSTATIC_ASSERT(sizeof(DCS_DEP_EXEC) == 512, Wrong_size_DCS_DEP_EXEC);
#define DCS_DEP_PWD_CACHE_SIGN SIGNATURE_64 ('P','W','D','C','A','C','H','E')
typedef struct _DCS_DEP_PWD_CACHE {
@@ -206,7 +210,7 @@ typedef struct _DCS_DEP_PWD_CACHE {
int32 Pim[4];
byte pad[512 - 8 - 4 - 4 - (sizeof(Password) + 4) * 4];
} DCS_DEP_PWD_CACHE;
-static_assert(sizeof(DCS_DEP_PWD_CACHE) == 512, "Wrong size DCS_DEP_PWD_CACHE");
+CSTATIC_ASSERT(sizeof(DCS_DEP_PWD_CACHE) == 512, Wrong_size_DCS_DEP_PWD_CACHE);
#pragma pack()
#endif // #if !defined(TC_WINDOWS_BOOT)
diff --git a/src/Boot/Windows/BootConfig.cpp b/src/Boot/Windows/BootConfig.cpp
index 3e41d61..6b28794 100644
--- a/src/Boot/Windows/BootConfig.cpp
+++ b/src/Boot/Windows/BootConfig.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootConfig.h b/src/Boot/Windows/BootConfig.h
index 428d713..b66dc23 100644
--- a/src/Boot/Windows/BootConfig.h
+++ b/src/Boot/Windows/BootConfig.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootConsoleIo.cpp b/src/Boot/Windows/BootConsoleIo.cpp
index 60305ea..6a5a159 100644
--- a/src/Boot/Windows/BootConsoleIo.cpp
+++ b/src/Boot/Windows/BootConsoleIo.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootConsoleIo.h b/src/Boot/Windows/BootConsoleIo.h
index 52a054f..349782e 100644
--- a/src/Boot/Windows/BootConsoleIo.h
+++ b/src/Boot/Windows/BootConsoleIo.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootCrt.asm b/src/Boot/Windows/BootCrt.asm
index 92ac156..046c93a 100644
--- a/src/Boot/Windows/BootCrt.asm
+++ b/src/Boot/Windows/BootCrt.asm
@@ -4,7 +4,7 @@
; by the TrueCrypt License 3.0.
;
; Modifications and additions to the original source code (contained in this file)
-; and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+; and all other portions of this file are Copyright (c) 2013-2017 IDRIX
; and are 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.
diff --git a/src/Boot/Windows/BootDebug.cpp b/src/Boot/Windows/BootDebug.cpp
index dd0863a..bea063c 100644
--- a/src/Boot/Windows/BootDebug.cpp
+++ b/src/Boot/Windows/BootDebug.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootDebug.h b/src/Boot/Windows/BootDebug.h
index e7ae413..f94ab90 100644
--- a/src/Boot/Windows/BootDebug.h
+++ b/src/Boot/Windows/BootDebug.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootDefs.h b/src/Boot/Windows/BootDefs.h
index 3db227f..cd4b226 100644
--- a/src/Boot/Windows/BootDefs.h
+++ b/src/Boot/Windows/BootDefs.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootDiskIo.cpp b/src/Boot/Windows/BootDiskIo.cpp
index 15d6f71..a36b2b7 100644
--- a/src/Boot/Windows/BootDiskIo.cpp
+++ b/src/Boot/Windows/BootDiskIo.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootDiskIo.h b/src/Boot/Windows/BootDiskIo.h
index ad9d143..d4e8cf0 100644
--- a/src/Boot/Windows/BootDiskIo.h
+++ b/src/Boot/Windows/BootDiskIo.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootEncryptedIo.cpp b/src/Boot/Windows/BootEncryptedIo.cpp
index 63fd0f4..25fe1dc 100644
--- a/src/Boot/Windows/BootEncryptedIo.cpp
+++ b/src/Boot/Windows/BootEncryptedIo.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootEncryptedIo.h b/src/Boot/Windows/BootEncryptedIo.h
index d27ec9e..d1c9e5f 100644
--- a/src/Boot/Windows/BootEncryptedIo.h
+++ b/src/Boot/Windows/BootEncryptedIo.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootMain.cpp b/src/Boot/Windows/BootMain.cpp
index acae03a..8bfbe4b 100644
--- a/src/Boot/Windows/BootMain.cpp
+++ b/src/Boot/Windows/BootMain.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootMain.h b/src/Boot/Windows/BootMain.h
index 0f89179..52d5c8c 100644
--- a/src/Boot/Windows/BootMain.h
+++ b/src/Boot/Windows/BootMain.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootMemory.cpp b/src/Boot/Windows/BootMemory.cpp
index 5729142..9eed757 100644
--- a/src/Boot/Windows/BootMemory.cpp
+++ b/src/Boot/Windows/BootMemory.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootMemory.h b/src/Boot/Windows/BootMemory.h
index d08e88a..183c446 100644
--- a/src/Boot/Windows/BootMemory.h
+++ b/src/Boot/Windows/BootMemory.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/BootSector.asm b/src/Boot/Windows/BootSector.asm
index 833ff61..3367414 100644
--- a/src/Boot/Windows/BootSector.asm
+++ b/src/Boot/Windows/BootSector.asm
@@ -4,7 +4,7 @@
; by the TrueCrypt License 3.0.
;
; Modifications and additions to the original source code (contained in this file)
-; and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+; and all other portions of this file are Copyright (c) 2013-2017 IDRIX
; and are 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.
diff --git a/src/Boot/Windows/BootStrings.h b/src/Boot/Windows/BootStrings.h
index 6c5d784..b7cfe70 100644
--- a/src/Boot/Windows/BootStrings.h
+++ b/src/Boot/Windows/BootStrings.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/IntFilter.cpp b/src/Boot/Windows/IntFilter.cpp
index 4a39fd1..9e5c853 100644
--- a/src/Boot/Windows/IntFilter.cpp
+++ b/src/Boot/Windows/IntFilter.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/IntFilter.h b/src/Boot/Windows/IntFilter.h
index 3f3a486..65b0c7c 100644
--- a/src/Boot/Windows/IntFilter.h
+++ b/src/Boot/Windows/IntFilter.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/Makefile b/src/Boot/Windows/Makefile
index 1e6e21a..a750626 100644
--- a/src/Boot/Windows/Makefile
+++ b/src/Boot/Windows/Makefile
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
diff --git a/src/Boot/Windows/Platform.cpp b/src/Boot/Windows/Platform.cpp
index 0a45bba..486f436 100644
--- a/src/Boot/Windows/Platform.cpp
+++ b/src/Boot/Windows/Platform.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Boot/Windows/Platform.h b/src/Boot/Windows/Platform.h
index a8e83be..41ace2a 100644
--- a/src/Boot/Windows/Platform.h
+++ b/src/Boot/Windows/Platform.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Build/Include/Makefile.inc b/src/Build/Include/Makefile.inc
index 35d1f29..b39021d 100644
--- a/src/Build/Include/Makefile.inc
+++ b/src/Build/Include/Makefile.inc
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
@@ -23,12 +23,16 @@ clean:
%.o: %.cpp
@echo Compiling $(<F)
$(CXX) $(CXXFLAGS) -c $< -o $@
+
+%.o: %.S
+ @echo Compiling $(<F)
+ $(CC) $(CFLAGS) -c $< -o $@
ifeq "$(PLATFORM)" "MacOSX"
%.o: %.asm
@echo Assembling $(<F)
- $(AS) $(ASFLAGS) -f macho32 -o $@.32 $<
- $(AS) $(ASFLAGS) -f macho64 -o $@.64 $<
+ $(AS) $(ASFLAGS32) -f macho32 -o $@.32 $<
+ $(AS) $(ASFLAGS64) -f macho64 -o $@.64 $<
lipo -create $@.32 $@.64 -output $@
else
%.o: %.asm
diff --git a/src/Build/Resources/MacOSX/Info.plist.xml b/src/Build/Resources/MacOSX/Info.plist.xml
index 3fa2ee0..d63ac67 100644
--- a/src/Build/Resources/MacOSX/Info.plist.xml
+++ b/src/Build/Resources/MacOSX/Info.plist.xml
@@ -7,6 +7,53 @@
<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>
@@ -27,7 +74,7 @@
<string>TRUE</string>
<key>CFBundleVersion</key>
- <string>1.19.4</string>
+ <string>1.21.5</string>
<key>CFBundleShortVersionString</key>
<string>_VERSION_</string>
diff --git a/src/Build/Tools/MacOSX/nasm b/src/Build/Tools/MacOSX/nasm
deleted file mode 100755
index 7d2c38a..0000000
--- a/src/Build/Tools/MacOSX/nasm
+++ /dev/null
Binary files differ
diff --git a/src/Build/build_veracrypt_freebsd.sh b/src/Build/build_veracrypt_freebsd.sh
new file mode 100755
index 0000000..30c3c69
--- /dev/null
+++ b/src/Build/build_veracrypt_freebsd.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Copyright (c) 2013-2016 IDRIX
+# Governed by the Apache License 2.0 the full text of which is contained
+# in the file License.txt included in VeraCrypt binary and source
+# code distribution packages.
+#
+
+# Absolute path to this script
+SCRIPT=$(readlink -f "$0")
+# Absolute path this script is in
+SCRIPTPATH=$(dirname "$SCRIPT")
+# source directory which contains the Makefile
+SOURCEPATH=$(readlink -f "$SCRIPTPATH/..")
+# directory where the VeraCrypt has been checked out
+PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..")
+
+# Make sure only root can run our script
+if [ "$(id -u)" != "0" ]; then
+ echo "VeraCrypt must be built by root" 1>&2
+ exit 1
+fi
+
+# the sources of wxWidgets 3.0.3 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.0.3
+echo "Using wxWidgets sources in $WX_ROOT"
+
+cd $SOURCEPATH
+
+echo "Building GUI version of VeraCrypt"
+
+# this will be the temporary wxWidgets directory
+export WX_BUILD_DIR=$PARENTDIR/wxBuildGui
+
+gmake WXSTATIC=1 wxbuild && gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package
+
+# Uncomment below and comment line above to reuse existing wxWidgets build
+#gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package
+
+echo "Building console version of VeraCrypt"
+
+# this will be the temporary wxWidgets directory
+export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
+
+gmake WXSTATIC=1 NOGUI=1 wxbuild && gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package
+
+# Uncomment below and comment line above to reuse existing wxWidgets build
+#gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package
diff --git a/src/Build/build_veracrypt_linux.sh b/src/Build/build_veracrypt_linux.sh
index 0b90e69..deed925 100755
--- a/src/Build/build_veracrypt_linux.sh
+++ b/src/Build/build_veracrypt_linux.sh
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013-2016 IDRIX
+# 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.
@@ -20,8 +20,8 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi
-# the sources of wxWidgets 3.0.2 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.0.2
+# the sources of wxWidgets 3.0.3 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.0.3
echo "Using wxWidgets sources in $WX_ROOT"
cd $SOURCEPATH
@@ -31,17 +31,17 @@ echo "Building GUI version of VeraCrypt"
# this will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildGui
-make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1
+make WXSTATIC=1 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 clean && make WXSTATIC=1 && make WXSTATIC=1 package
echo "Building console version of VeraCrypt"
# this will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
-make WXSTATIC=1 NOGUI=1 wxbuild && make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1
+make WXSTATIC=1 NOGUI=1 wxbuild && make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package
# Uncomment below and comment line above to reuse existing wxWidgets build
-# make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1
+# make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package
diff --git a/src/Build/build_veracrypt_macosx.sh b/src/Build/build_veracrypt_macosx.sh
index f814642..7f3d60d 100755
--- a/src/Build/build_veracrypt_macosx.sh
+++ b/src/Build/build_veracrypt_macosx.sh
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013-2016 IDRIX
+# 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.
@@ -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.2 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.0.2
+# the sources of wxWidgets 3.0.3 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.0.3
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.6 by default
-export VC_OSX_TARGET=10.6
+# 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 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 clean && make WXSTATIC=1 && make WXSTATIC=1 package \ No newline at end of file
diff --git a/src/Common/Apidrvr.h b/src/Common/Apidrvr.h
index 07a8448..283e58d 100644
--- a/src/Common/Apidrvr.h
+++ b/src/Common/Apidrvr.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -119,6 +119,9 @@
#define TC_IOCTL_REREAD_DRIVER_CONFIG TC_IOCTL (37)
#define TC_IOCTL_GET_SYSTEM_DRIVE_DUMP_CONFIG TC_IOCTL (38)
#define VC_IOCTL_GET_BOOT_LOADER_FINGERPRINT TC_IOCTL (39)
+// result IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
+// IN OUT - DISK_GEOMETRY_EX_STRUCT
+#define VC_IOCTL_GET_DRIVE_GEOMETRY_EX TC_IOCTL (40)
// Legacy IOCTLs used before version 5.0
#define TC_IOCTL_LEGACY_GET_DRIVER_VERSION 466968
@@ -169,6 +172,9 @@ typedef struct
BOOL bIsNTFS; // output only
BOOL bDriverSetLabel;
BOOL bCachePim;
+ ULONG MaximumTransferLength;
+ ULONG MaximumPhysicalPages;
+ ULONG AlignmentMask;
} MOUNT_STRUCT;
typedef struct
@@ -240,6 +246,14 @@ DISK_GEOMETRY_STRUCT;
typedef struct
{
+ WCHAR deviceName[TC_MAX_PATH];
+ DISK_GEOMETRY diskGeometry;
+ LARGE_INTEGER DiskSize;
+}
+DISK_GEOMETRY_EX_STRUCT;
+
+typedef struct
+{
WCHAR DeviceName[TC_MAX_PATH];
LARGE_INTEGER RealDriveSize;
BOOL TimeOut;
@@ -252,9 +266,9 @@ typedef struct
BOOL TCBootLoaderDetected;
BOOL DetectFilesystem;
BOOL FilesystemDetected;
- BOOL bMatchVolumeID;
- unsigned char volumeID[VOLUME_ID_SIZE];
- BOOL VolumeIDMatched;
+ BOOL bComputeVolumeIDs;
+ unsigned char volumeIDs[TC_VOLUME_TYPE_COUNT][VOLUME_ID_SIZE];
+ BOOL VolumeIDComputed[TC_VOLUME_TYPE_COUNT];
} OPEN_TEST_STRUCT;
diff --git a/src/Common/BaseCom.cpp b/src/Common/BaseCom.cpp
index 26e2650..e8c75a6 100644
--- a/src/Common/BaseCom.cpp
+++ b/src/Common/BaseCom.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -400,34 +400,6 @@ DWORD BaseCom::GetEfiBootDeviceNumber (BSTR* pSdn)
return ERROR_SUCCESS;
}
-DWORD BaseCom::ReadEfiConfig (BSTR* pContent, DWORD *pcbRead)
-{
- if (!pContent || !(*pContent))
- return ERROR_INVALID_PARAMETER;
-
- try
- {
- DWORD maxSize = ((DWORD *) ((BYTE *) *pContent))[-1];
- BootEncryption bootEnc (NULL);
- bootEnc.ReadEfiConfig ((byte*) *pContent, maxSize, pcbRead);
- }
- catch (SystemException &)
- {
- return GetLastError();
- }
- catch (Exception &e)
- {
- e.Show (NULL);
- return ERROR_EXCEPTION_IN_SERVICE;
- }
- catch (...)
- {
- return ERROR_EXCEPTION_IN_SERVICE;
- }
-
- return ERROR_SUCCESS;
-}
-
DWORD BaseCom::WriteEfiBootSectorUserConfig (DWORD userConfig, BSTR customUserMessage, int pim, int hashAlg)
{
if (!customUserMessage)
diff --git a/src/Common/BaseCom.h b/src/Common/BaseCom.h
index b103ad5..e91f75a 100644
--- a/src/Common/BaseCom.h
+++ b/src/Common/BaseCom.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -116,7 +116,6 @@ public:
static DWORD BackupEfiSystemLoader ();
static DWORD RestoreEfiSystemLoader ();
static DWORD GetEfiBootDeviceNumber (BSTR* pSdn);
- static DWORD ReadEfiConfig (BSTR* pContent, DWORD *pcbRead);
static DWORD WriteEfiBootSectorUserConfig (DWORD userConfig, BSTR customUserMessage, int pim, int hashAlg);
};
diff --git a/src/Common/BootEncryption.cpp b/src/Common/BootEncryption.cpp
index cd7ea79..40e9e77 100644
--- a/src/Common/BootEncryption.cpp
+++ b/src/Common/BootEncryption.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -372,29 +372,6 @@ namespace VeraCrypt
}
}
- static void ReadEfiConfig (byte* confContent, DWORD maxSize, DWORD* pcbRead)
- {
- Elevate();
-
- CComBSTR outputBstr;
- if (confContent && outputBstr.AppendBytes ((const char *) confContent, maxSize) != S_OK)
- {
- SetLastError (ERROR_INVALID_PARAMETER);
- throw SystemException(SRC_POS);
- }
-
- DWORD result = ElevatedComInstance->ReadEfiConfig (&outputBstr, pcbRead);
-
- if (confContent)
- memcpy (confContent, *(void **) &outputBstr, maxSize);
-
- if (result != ERROR_SUCCESS)
- {
- SetLastError (result);
- throw SystemException(SRC_POS);
- }
- }
-
static void WriteEfiBootSectorUserConfig (byte userConfig, const string &customUserMessage, int pim, int hashAlg)
{
Elevate();
@@ -492,18 +469,17 @@ namespace VeraCrypt
static void BackupEfiSystemLoader () { throw ParameterIncorrect (SRC_POS); }
static void RestoreEfiSystemLoader () { throw ParameterIncorrect (SRC_POS); }
static void GetEfiBootDeviceNumber (PSTORAGE_DEVICE_NUMBER pSdn) { throw ParameterIncorrect (SRC_POS); }
- static void ReadEfiConfig (byte* confContent, DWORD maxSize, DWORD* pcbRead) { throw ParameterIncorrect (SRC_POS); }
static void WriteEfiBootSectorUserConfig (byte userConfig, const string &customUserMessage, int pim, int hashAlg) { throw ParameterIncorrect (SRC_POS); }
};
#endif // SETUP
- File::File (wstring path, bool readOnly, bool create) : Elevated (false), FileOpen (false), ReadOnly (readOnly), LastError(0)
+ File::File (wstring path, bool readOnly, bool create, bool useNormalAttributes) : Elevated (false), FileOpen (false), ReadOnly (readOnly), LastError(0)
{
Handle = CreateFile (path.c_str(),
readOnly ? GENERIC_READ : GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, create ? CREATE_ALWAYS : OPEN_EXISTING,
- FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_WRITE_THROUGH, NULL);
+ useNormalAttributes? FILE_ATTRIBUTE_NORMAL : (FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_WRITE_THROUGH), NULL);
if (Handle != INVALID_HANDLE_VALUE)
{
@@ -1053,16 +1029,18 @@ namespace VeraCrypt
}
- DISK_GEOMETRY BootEncryption::GetDriveGeometry (int driveNumber)
+#ifndef SETUP
+
+ DISK_GEOMETRY_EX BootEncryption::GetDriveGeometry (int driveNumber)
{
wstringstream devName;
devName << L"\\Device\\Harddisk" << driveNumber << L"\\Partition0";
- DISK_GEOMETRY geometry;
+ DISK_GEOMETRY_EX geometry;
throw_sys_if (!::GetDriveGeometry (devName.str().c_str(), &geometry));
return geometry;
}
-
+#endif // !SETUP
wstring BootEncryption::GetWindowsDirectory ()
{
@@ -1088,6 +1066,7 @@ namespace VeraCrypt
memcpy (fingerprint, request.Fingerprint, sizeof (request.Fingerprint));
}
+#ifndef SETUP
// Note that this does not require admin rights (it just requires the driver to be running)
bool BootEncryption::IsBootLoaderOnDrive (wchar_t *devicePath)
{
@@ -1112,6 +1091,7 @@ namespace VeraCrypt
}
}
+#endif
BootEncryptionStatus BootEncryption::GetStatus ()
{
@@ -1526,33 +1506,6 @@ namespace VeraCrypt
}
}
- void BootEncryption::ReadEfiConfig (byte* confContent, DWORD maxSize, DWORD* pcbRead)
- {
- if (!pcbRead)
- throw ParameterIncorrect (SRC_POS);
-
- if (!IsAdmin() && IsUacSupported())
- {
- Elevator::ReadEfiConfig (confContent, maxSize, pcbRead);
- }
- else
- {
- unsigned __int64 ui64Size = 0;
-
- finally_do ({ EfiBootInst.DismountBootPartition(); });
- EfiBootInst.MountBootPartition(0);
-
- EfiBootInst.GetFileSize(L"\\EFI\\VeraCrypt\\DcsProp", ui64Size);
-
- *pcbRead = (DWORD) ui64Size;
-
- if (*pcbRead > maxSize)
- throw ParameterIncorrect (SRC_POS);
-
- EfiBootInst.ReadFile (L"\\EFI\\VeraCrypt\\DcsProp", confContent, *pcbRead);
- }
- }
-
// return false when the user cancel an elevation request
bool BootEncryption::ReadBootSectorConfig (byte *config, size_t bufLength, byte *userConfig, string *customUserMessage, uint16 *bootLoaderVersion)
{
@@ -1561,22 +1514,17 @@ namespace VeraCrypt
{
if (GetSystemDriveConfiguration().SystemPartition.IsGPT)
{
- byte confContent[4096];
- DWORD dwSize;
-
// for now, we don't support any boot config flags, like hidden OS one
if (config)
memset (config, 0, bufLength);
- // call ReadEfiConfig only when needed since it requires elevation
+ // call ReadESPFile only when needed since it requires elevation
if (userConfig || customUserMessage || bootLoaderVersion)
{
- ReadEfiConfig (confContent, sizeof (confContent) - 1, &dwSize);
-
- confContent[dwSize] = 0;
+ std::string confContent = ReadESPFile (L"\\EFI\\VeraCrypt\\DcsProp", true);
EfiBootConf conf;
- conf.Load ((char*) confContent);
+ conf.Load ((char*) confContent.c_str());
if (userConfig)
{
@@ -1906,7 +1854,9 @@ namespace VeraCrypt
pim (0),
requestPim (1),
authorizeVisible (0),
- authorizeRetry (10)
+ authorizeRetry (10),
+ bmlLockFlags (0),
+ bmlDriverEnabled (0)
{
}
@@ -2022,19 +1972,25 @@ namespace VeraCrypt
requestPim = ReadConfigInteger (configContent, "PimRqt", 1);
authorizeVisible = ReadConfigInteger (configContent, "AuthorizeVisible", 0);
authorizeRetry = ReadConfigInteger (configContent, "AuthorizeRetry", 0);
+ bmlLockFlags = ReadConfigInteger (configContent, "DcsBmlLockFlags", 0);
+ bmlDriverEnabled = ReadConfigInteger (configContent, "DcsBmlDriver", 0);
burn (buffer, sizeof (buffer));
}
BOOL EfiBootConf::Save (const wchar_t* fileName, HWND hwnd)
{
- FILE *configFile = _wfopen (fileName, L"w,ccs=UTF-8");
- if (configFile == NULL)
- return FALSE;
BOOL bRet = FALSE;
DWORD size = 0;
char* configContent = LoadFile (fileName, &size);
+
+ FILE *configFile = _wfopen (fileName, L"w,ccs=UTF-8");
+ if (configFile == NULL) {
+ burn (configContent, size);
+ free (configContent);
+ return FALSE;
+ }
XmlWriteHeader (configFile);
@@ -2051,6 +2007,8 @@ namespace VeraCrypt
WriteConfigInteger (configFile, configContent, "PimRqt", requestPim);
WriteConfigInteger (configFile, configContent, "AuthorizeVisible", authorizeVisible);
WriteConfigInteger (configFile, configContent, "AuthorizeRetry", authorizeRetry);
+ WriteConfigInteger (configFile, configContent, "DcsBmlLockFlags", bmlLockFlags);
+ WriteConfigInteger (configFile, configContent, "DcsBmlDriver", bmlDriverEnabled);
// Write unmodified values
char* xml = configContent;
@@ -2084,15 +2042,125 @@ namespace VeraCrypt
static const wchar_t* EfiVarGuid = L"{8BE4DF61-93CA-11D2-AA0D-00E098032B8C}";
+ void
+ GetVolumeESP(wstring& path)
+ {
+ static wstring g_EspPath;
+ static bool g_EspPathInitialized = false;
+
+ if (!g_EspPathInitialized)
+ {
+ ULONG len;
+ NTSTATUS res;
+ WCHAR tempBuf[1024];
+ memset(tempBuf, 0, sizeof(tempBuf));
+
+ // Load NtQuerySystemInformation function point
+ if (!NtQuerySystemInformationPtr)
+ {
+ NtQuerySystemInformationPtr = (NtQuerySystemInformationFn) GetProcAddress (GetModuleHandle (L"ntdll.dll"), "NtQuerySystemInformation");
+ if (!NtQuerySystemInformationPtr)
+ throw SystemException (SRC_POS);
+ }
+
+ res = NtQuerySystemInformationPtr((SYSTEM_INFORMATION_CLASS)SYSPARTITIONINFORMATION, tempBuf, sizeof(tempBuf), &len);
+ if (res != S_OK)
+ {
+ SetLastError (res);
+ throw SystemException (SRC_POS);
+ }
+
+ PUNICODE_STRING pStr = (PUNICODE_STRING) tempBuf;
+ g_EspPath = L"\\\\?";
+ g_EspPath += &pStr->Buffer[7];
+ g_EspPathInitialized = true;
+ }
+
+ path = g_EspPath;
+ }
+
+ std::string ReadESPFile (LPCWSTR szFilePath, bool bSkipUTF8BOM)
+ {
+ if (!szFilePath || !szFilePath[0])
+ throw ParameterIncorrect (SRC_POS);
+
+ ByteArray fileContent;
+ DWORD dwSize = 0, dwOffset = 0;
+ std::wstring pathESP;
+
+ GetVolumeESP(pathESP);
+ if (szFilePath[0] != L'\\')
+ pathESP += L"\\";
+ File f(pathESP + szFilePath, true);
+ f.GetFileSize(dwSize);
+ fileContent.resize(dwSize + 1);
+ fileContent[dwSize] = 0;
+ f.Read(fileContent.data(), dwSize);
+ f.Close();
+
+ if (bSkipUTF8BOM)
+ {
+ // remove UTF-8 BOM if any
+ if (0 == memcmp (fileContent.data(), "\xEF\xBB\xBF", 3))
+ {
+ dwOffset = 3;
+ }
+ }
+
+ return (const char*) &fileContent[dwOffset];
+ }
+
+ void WriteESPFile (LPCWSTR szFilePath, LPBYTE pbData, DWORD dwDataLen, bool bAddUTF8BOM)
+ {
+ if (!szFilePath || !szFilePath[0] || !pbData || !dwDataLen)
+ throw ParameterIncorrect (SRC_POS);
+
+ ByteArray fileContent;
+ DWORD dwSize = dwDataLen, dwOffset = 0;
+ std::wstring pathESP;
+
+ if (bAddUTF8BOM)
+ {
+ dwSize += 3;
+ dwOffset = 3;
+ }
+
+ GetVolumeESP(pathESP);
+ if (szFilePath[0] != L'\\')
+ pathESP += L"\\";
+
+ fileContent.resize(dwSize);
+ if (bAddUTF8BOM)
+ memcpy (fileContent.data(), "\xEF\xBB\xBF", 3);
+ memcpy (&fileContent[dwOffset], pbData, dwDataLen);
+
+ try
+ {
+ File f(pathESP + szFilePath, false, true);
+ f.Write(fileContent.data(), dwSize);
+ f.Close();
+ }
+ catch (SystemException &e)
+ {
+ if (e.ErrorCode != ERROR_INVALID_PARAMETER)
+ throw;
+ // try again with normal attributes
+ File f(pathESP + szFilePath, false, true, true);
+ f.Write(fileContent.data(), dwSize);
+ f.Close();
+ }
+ }
+
EfiBoot::EfiBoot() {
ZeroMemory(EfiBootPartPath, sizeof(EfiBootPartPath));
- ZeroMemory (systemPartitionPath, sizeof (systemPartitionPath));
+ ZeroMemory (BootVolumePath, sizeof (BootVolumePath));
ZeroMemory (&sdn, sizeof (sdn));
ZeroMemory (&partInfo, sizeof (partInfo));
m_bMounted = false;
+ bBootVolumePathSelected = false;
}
- void EfiBoot::MountBootPartition(WCHAR letter) {
+ void EfiBoot::SelectBootVolumeESP() {
NTSTATUS res;
ULONG len;
memset(tempBuf, 0, sizeof(tempBuf));
@@ -2113,7 +2181,21 @@ namespace VeraCrypt
}
PUNICODE_STRING pStr = (PUNICODE_STRING) tempBuf;
- memcpy (systemPartitionPath, pStr->Buffer, min (pStr->Length, (sizeof (systemPartitionPath) - 2)));
+ memcpy (BootVolumePath, pStr->Buffer, min (pStr->Length, (sizeof (BootVolumePath) - 2)));
+ bBootVolumePathSelected = true;
+ }
+
+ void EfiBoot::SelectBootVolume(WCHAR* bootVolumePath) {
+ wstring str;
+ str = bootVolumePath;
+ memcpy (BootVolumePath, &str[0], min (str.length() * 2, (sizeof (BootVolumePath) - 2)));
+ bBootVolumePathSelected = true;
+ }
+
+ void EfiBoot::MountBootPartition(WCHAR letter) {
+ if (!bBootVolumePathSelected) {
+ SelectBootVolumeESP();
+ }
if (!letter) {
if (!GetFreeDriveLetter(&EfiBootPartPath[0])) {
@@ -2124,7 +2206,7 @@ namespace VeraCrypt
}
EfiBootPartPath[1] = ':';
EfiBootPartPath[2] = 0;
- throw_sys_if(!DefineDosDevice(DDD_RAW_TARGET_PATH, EfiBootPartPath, systemPartitionPath));
+ throw_sys_if(!DefineDosDevice(DDD_RAW_TARGET_PATH, EfiBootPartPath, BootVolumePath));
Device dev(EfiBootPartPath, TRUE);
@@ -2354,9 +2436,22 @@ namespace VeraCrypt
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();
+ try
+ {
+ File f(path, false, true);
+ f.Write(data, size);
+ f.Close();
+ }
+ catch (SystemException &e)
+ {
+ if (e.ErrorCode != ERROR_INVALID_PARAMETER)
+ throw;
+
+ // try again with normal attributes
+ File f(path, false, true, true);
+ f.Write(data, size);
+ f.Close();
+ }
}
void EfiBoot::GetFileSize(const wchar_t* name, unsigned __int64& size) {
@@ -2543,25 +2638,53 @@ namespace VeraCrypt
}
}
DWORD sizeDcsBoot;
+#ifdef _WIN64
+ byte *dcsBootImg = MapResource(L"BIN", IDR_EFI_DCSBOOT, &sizeDcsBoot);
+#else
byte *dcsBootImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBOOT : IDR_EFI_DCSBOOT32, &sizeDcsBoot);
+#endif
if (!dcsBootImg)
throw ErrorException(L"Out of resource DcsBoot", SRC_POS);
DWORD sizeDcsInt;
+#ifdef _WIN64
+ byte *dcsIntImg = MapResource(L"BIN", IDR_EFI_DCSINT, &sizeDcsInt);
+#else
byte *dcsIntImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSINT: IDR_EFI_DCSINT32, &sizeDcsInt);
+#endif
if (!dcsIntImg)
throw ErrorException(L"Out of resource DcsInt", SRC_POS);
DWORD sizeDcsCfg;
+#ifdef _WIN64
+ byte *dcsCfgImg = MapResource(L"BIN", IDR_EFI_DCSCFG, &sizeDcsCfg);
+#else
byte *dcsCfgImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSCFG: IDR_EFI_DCSCFG32, &sizeDcsCfg);
+#endif
if (!dcsCfgImg)
throw ErrorException(L"Out of resource DcsCfg", SRC_POS);
DWORD sizeLegacySpeaker;
+#ifdef _WIN64
+ byte *LegacySpeakerImg = MapResource(L"BIN", IDR_EFI_LEGACYSPEAKER, &sizeLegacySpeaker);
+#else
byte *LegacySpeakerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_LEGACYSPEAKER: IDR_EFI_LEGACYSPEAKER32, &sizeLegacySpeaker);
+#endif
if (!LegacySpeakerImg)
throw ErrorException(L"Out of resource LegacySpeaker", SRC_POS);
DWORD sizeBootMenuLocker;
+#ifdef _WIN64
+ byte *BootMenuLockerImg = MapResource(L"BIN", IDR_EFI_DCSBML, &sizeBootMenuLocker);
+#else
byte *BootMenuLockerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBML: IDR_EFI_DCSBML32, &sizeBootMenuLocker);
+#endif
if (!BootMenuLockerImg)
throw ErrorException(L"Out of resource DcsBml", SRC_POS);
+ DWORD sizeDcsInfo;
+#ifdef _WIN64
+ byte *DcsInfoImg = MapResource(L"BIN", IDR_EFI_DCSINFO, &sizeDcsInfo);
+#else
+ byte *DcsInfoImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSINFO: IDR_EFI_DCSINFO32, &sizeDcsInfo);
+#endif
+ if (!DcsInfoImg)
+ throw ErrorException(L"Out of resource DcsInfo", SRC_POS);
finally_do ({ EfiBootInst.DismountBootPartition(); });
EfiBootInst.MountBootPartition(0);
@@ -2578,6 +2701,8 @@ namespace VeraCrypt
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsCfg.dcs", dcsCfgImg, sizeDcsCfg);
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\LegacySpeaker.dcs", LegacySpeakerImg, sizeLegacySpeaker);
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsBml.dcs", BootMenuLockerImg, sizeBootMenuLocker);
+ EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsInfo.dcs", DcsInfoImg, sizeDcsInfo);
+ EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\PlatformInfo");
EfiBootInst.SetStartExec(L"VeraCrypt BootLoader (DcsBoot)", L"\\EFI\\VeraCrypt\\DcsBoot.efi");
// move configuration file from old location (if it exists) to new location
@@ -2739,29 +2864,61 @@ namespace VeraCrypt
{
// create EFI disk structure
DWORD sizeDcsBoot;
- byte *dcsBootImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBOOT: IDR_EFI_DCSBOOT32, &sizeDcsBoot);
+#ifdef _WIN64
+ byte *dcsBootImg = MapResource(L"BIN", IDR_EFI_DCSBOOT, &sizeDcsBoot);
+#else
+ byte *dcsBootImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBOOT : IDR_EFI_DCSBOOT32, &sizeDcsBoot);
+#endif
if (!dcsBootImg)
throw ParameterIncorrect (SRC_POS);
DWORD sizeDcsInt;
+#ifdef _WIN64
+ byte *dcsIntImg = MapResource(L"BIN", IDR_EFI_DCSINT, &sizeDcsInt);
+#else
byte *dcsIntImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSINT: IDR_EFI_DCSINT32, &sizeDcsInt);
+#endif
if (!dcsIntImg)
throw ParameterIncorrect (SRC_POS);
DWORD sizeDcsCfg;
+#ifdef _WIN64
+ byte *dcsCfgImg = MapResource(L"BIN", IDR_EFI_DCSCFG, &sizeDcsCfg);
+#else
byte *dcsCfgImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSCFG: IDR_EFI_DCSCFG32, &sizeDcsCfg);
+#endif
if (!dcsCfgImg)
throw ParameterIncorrect (SRC_POS);
DWORD sizeLegacySpeaker;
+#ifdef _WIN64
+ byte *LegacySpeakerImg = MapResource(L"BIN", IDR_EFI_LEGACYSPEAKER, &sizeLegacySpeaker);
+#else
byte *LegacySpeakerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_LEGACYSPEAKER: IDR_EFI_LEGACYSPEAKER32, &sizeLegacySpeaker);
+#endif
if (!LegacySpeakerImg)
throw ParameterIncorrect (SRC_POS);
DWORD sizeBootMenuLocker;
+#ifdef _WIN64
+ byte *BootMenuLockerImg = MapResource(L"BIN", IDR_EFI_DCSBML, &sizeBootMenuLocker);
+#else
byte *BootMenuLockerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBML: IDR_EFI_DCSBML32, &sizeBootMenuLocker);
+#endif
if (!BootMenuLockerImg)
throw ParameterIncorrect (SRC_POS);
DWORD sizeDcsRescue;
+#ifdef _WIN64
+ byte *DcsRescueImg = MapResource(L"BIN", IDR_EFI_DCSRE, &sizeDcsRescue);
+#else
byte *DcsRescueImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSRE: IDR_EFI_DCSRE32, &sizeDcsRescue);
+#endif
if (!DcsRescueImg)
throw ParameterIncorrect (SRC_POS);
+ DWORD sizeDcsInfo;
+#ifdef _WIN64
+ byte *DcsInfoImg = MapResource(L"BIN", IDR_EFI_DCSINFO, &sizeDcsInfo);
+#else
+ byte *DcsInfoImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSINFO: IDR_EFI_DCSINFO32, &sizeDcsInfo);
+#endif
+ if (!DcsInfoImg)
+ throw ParameterIncorrect (SRC_POS);
char szTmpPath[MAX_PATH + 1], szTmpFilePath[MAX_PATH + 1];
if (!GetTempPathA (MAX_PATH, szTmpPath))
@@ -2790,6 +2947,8 @@ namespace VeraCrypt
throw ParameterIncorrect (SRC_POS);
if (!ZipAdd (z, "EFI/VeraCrypt/LegacySpeaker.dcs", LegacySpeakerImg, sizeLegacySpeaker))
throw ParameterIncorrect (SRC_POS);
+ if (!ZipAdd (z, "EFI/VeraCrypt/DcsInfo.dcs", DcsInfoImg, sizeDcsInfo))
+ throw ParameterIncorrect (SRC_POS);
Buffer volHeader(TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
@@ -3511,6 +3670,7 @@ namespace VeraCrypt
EfiBootInst.MountBootPartition(0);
EfiBootInst.DeleteStartExec();
+ EfiBootInst.DeleteStartExec(0xDC5B, L"Driver"); // remove DcsBml boot driver it was installed
if (Is64BitOs())
EfiBootInst.RenameFile(L"\\EFI\\Boot\\original_bootx64.vc_backup", L"\\EFI\\Boot\\bootx64.efi", TRUE);
else
@@ -3528,6 +3688,8 @@ namespace VeraCrypt
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\LegacySpeaker.dcs");
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsBml.dcs");
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsBoot");
+ EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsInfo.dcs");
+ EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\PlatformInfo");
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsProp");
EfiBootInst.DelDir (L"\\EFI\\VeraCrypt");
}
@@ -3999,9 +4161,9 @@ namespace VeraCrypt
if (config.InitialUnallocatedSpace < TC_BOOT_LOADER_AREA_SIZE)
throw ErrorException ("NO_SPACE_FOR_BOOT_LOADER", SRC_POS);
- DISK_GEOMETRY geometry = GetDriveGeometry (config.DriveNumber);
+ DISK_GEOMETRY_EX geometry = GetDriveGeometry (config.DriveNumber);
- if (geometry.BytesPerSector != TC_SECTOR_SIZE_BIOS)
+ if (geometry.Geometry.BytesPerSector != TC_SECTOR_SIZE_BIOS)
throw ErrorException ("SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS", SRC_POS);
bool activePartitionFound = false;
@@ -4024,7 +4186,7 @@ namespace VeraCrypt
}
}
- if (!config.SystemLoaderPresent || !activePartitionFound)
+ if ((!config.SystemLoaderPresent && !config.SystemPartition.IsGPT) || !activePartitionFound)
{
static bool confirmed = false;
@@ -4425,17 +4587,17 @@ namespace VeraCrypt
// Some chipset drivers may prevent access to the last sector of the drive
if (!systemPartitionOnly)
{
- DISK_GEOMETRY geometry = GetDriveGeometry (config.DriveNumber);
- if ((geometry.BytesPerSector > 0) && (geometry.BytesPerSector < TC_MAX_VOLUME_SECTOR_SIZE))
+ DISK_GEOMETRY_EX geometry = GetDriveGeometry (config.DriveNumber);
+ if ((geometry.Geometry.BytesPerSector > 0) && (geometry.Geometry.BytesPerSector < TC_MAX_VOLUME_SECTOR_SIZE))
{
- Buffer sector (geometry.BytesPerSector);
+ Buffer sector (geometry.Geometry.BytesPerSector);
Device device (config.DevicePath);
device.CheckOpened (SRC_POS);
try
{
- device.SeekAt (config.DrivePartition.Info.PartitionLength.QuadPart - geometry.BytesPerSector);
+ device.SeekAt (config.DrivePartition.Info.PartitionLength.QuadPart - geometry.Geometry.BytesPerSector);
device.Read (sector.Ptr(), (DWORD) sector.Size());
}
catch (SystemException &e)
diff --git a/src/Common/BootEncryption.h b/src/Common/BootEncryption.h
index f7f2ec1..0f8e993 100644
--- a/src/Common/BootEncryption.h
+++ b/src/Common/BootEncryption.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -37,7 +37,7 @@ namespace VeraCrypt
{
public:
File () : Elevated (false), FileOpen (false), ReadOnly (false), FilePointerPosition(0), Handle(INVALID_HANDLE_VALUE), IsDevice(false), LastError(0) { }
- File (wstring path,bool readOnly = false, bool create = false);
+ File (wstring path,bool readOnly = false, bool create = false, bool useNormalAttributes = false);
virtual ~File () { Close(); }
void CheckOpened (const char* srcPos) { if (!FileOpen) { SetLastError (LastError); throw SystemException (srcPos);} }
@@ -173,6 +173,8 @@ namespace VeraCrypt
int requestPim;
int authorizeVisible;
int authorizeRetry;
+ int bmlLockFlags;
+ int bmlDriverEnabled;
EfiBootConf();
@@ -186,6 +188,10 @@ namespace VeraCrypt
BOOL Save (const wchar_t* fileName, HWND hwnd);
};
+ void GetVolumeESP(wstring& path);
+ std::string ReadESPFile (LPCWSTR szFilePath, bool bSkipUTF8BOM);
+ void WriteESPFile (LPCWSTR szFilePath, LPBYTE pbData, DWORD dwDataLen, bool bAddUTF8BOM);
+
class EfiBoot {
public:
EfiBoot();
@@ -208,7 +214,8 @@ namespace VeraCrypt
BOOL UpdateConfig (const wchar_t* name, int pim, int hashAlgo, HWND hwndDlg);
BOOL WriteConfig (const wchar_t* name, bool preserveUserConfig, int pim, int hashAlgo, const char* passPromptMsg, HWND hwndDlg);
BOOL DelDir(const wchar_t* name);
-
+ void SelectBootVolumeESP();
+ void SelectBootVolume(WCHAR* bootVolumePath);
PSTORAGE_DEVICE_NUMBER GetStorageDeviceNumber () { return &sdn;}
protected:
@@ -217,7 +224,8 @@ namespace VeraCrypt
STORAGE_DEVICE_NUMBER sdn;
PARTITION_INFORMATION_EX partInfo;
WCHAR tempBuf[1024];
- WCHAR systemPartitionPath[MAX_PATH];
+ bool bBootVolumePathSelected;
+ WCHAR BootVolumePath[MAX_PATH];
};
class BootEncryption
@@ -270,7 +278,6 @@ namespace VeraCrypt
void ProbeRealSystemDriveSize ();
bool ReadBootSectorConfig (byte *config, size_t bufLength, byte *userConfig = nullptr, string *customUserMessage = nullptr, uint16 *bootLoaderVersion = nullptr);
uint32 ReadDriverConfigurationFlags ();
- void ReadEfiConfig (byte* confContent, DWORD maxSize, DWORD* pcbRead);
void RegisterBootDriver (bool hiddenSystem);
void RegisterFilterDriver (bool registerDriver, FilterType filterType);
void RegisterSystemFavoritesService (BOOL registerService);
@@ -310,7 +317,7 @@ namespace VeraCrypt
void CreateVolumeHeader (uint64 volumeSize, uint64 encryptedAreaStart, Password *password, int ea, int mode, int pkcs5, int pim);
wstring GetSystemLoaderBackupPath ();
uint32 GetChecksum (byte *data, size_t size);
- DISK_GEOMETRY GetDriveGeometry (int driveNumber);
+ DISK_GEOMETRY_EX GetDriveGeometry (int driveNumber);
PartitionList GetDrivePartitions (int driveNumber);
wstring GetRemarksOnHiddenOS ();
wstring GetWindowsDirectory ();
diff --git a/src/Common/Cache.c b/src/Common/Cache.c
index e5b3659..2412ba5 100644
--- a/src/Common/Cache.c
+++ b/src/Common/Cache.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Cache.h b/src/Common/Cache.h
index 1cadf79..e73cea7 100644
--- a/src/Common/Cache.h
+++ b/src/Common/Cache.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Cmdline.c b/src/Common/Cmdline.c
index e5fe596..bc30457 100644
--- a/src/Common/Cmdline.c
+++ b/src/Common/Cmdline.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Cmdline.h b/src/Common/Cmdline.h
index 09e5992..5e0f350 100644
--- a/src/Common/Cmdline.h
+++ b/src/Common/Cmdline.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Combo.c b/src/Common/Combo.c
index 50e9761..880f0b7 100644
--- a/src/Common/Combo.c
+++ b/src/Common/Combo.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -142,7 +142,7 @@ void LoadCombo (HWND hComboBox, BOOL bEnabled, BOOL bOnlyCheckModified, BOOL *pb
char *xml = history;
char volume[MAX_PATH];
int i, nComboIdx[SIZEOF_MRU_LIST] = {0};
- int count = SendMessage (hComboBox, CB_GETCOUNT, 0, 0);
+ int count = (int) SendMessage (hComboBox, CB_GETCOUNT, 0, 0);
if (xml == NULL)
{
diff --git a/src/Common/Combo.h b/src/Common/Combo.h
index 4f85c6b..604395b 100644
--- a/src/Common/Combo.h
+++ b/src/Common/Combo.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Common.h b/src/Common/Common.h
index cd88882..421d823 100644
--- a/src/Common/Common.h
+++ b/src/Common/Common.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Common.rc b/src/Common/Common.rc
index 7f0a497..c5c9614 100644
--- a/src/Common/Common.rc
+++ b/src/Common/Common.rc
@@ -1,628 +1,648 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUT_DLG DIALOGEX 31, 51, 292, 199
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "About VeraCrypt"
-CLASS "VeraCryptSplashDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- EDITTEXT IDC_ABOUT_CREDITS,7,111,277,45,ES_MULTILINE | WS_VSCROLL | NOT WS_TABSTOP
- DEFPUSHBUTTON "OK",IDOK,230,178,52,14
- LTEXT "",IDC_HOMEPAGE,18,87,117,9,SS_NOTIFY
- LTEXT "",IDT_ABOUT_RELEASE,18,71,235,8
- CONTROL IDB_TEXTUAL_LOGO_BKG,IDC_ABOUT_BKG,"Static",SS_BITMAP,0,0,12,11,WS_EX_STATICEDGE
- LTEXT "",IDT_ABOUT_VERSION,18,61,161,8
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,167,291,1,WS_EX_STATICEDGE
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,169,291,1,WS_EX_STATICEDGE
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,107,291,1,WS_EX_STATICEDGE
- CONTROL "",IDC_ABOUT_LOGO_AREA,"Static",SS_GRAYRECT | NOT WS_VISIBLE,0,0,293,50,WS_EX_TRANSPARENT | WS_EX_STATICEDGE
- CONTROL IDB_TEXTUAL_LOGO_96DPI,IDC_TEXTUAL_LOGO_IMG,"Static",SS_BITMAP,12,26,157,16
-END
-
-IDD_COMMANDHELP_DLG DIALOGEX 0, 0, 249, 289
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Command Line Help"
-CLASS "VeraCryptCustomDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,93,267,59,14
- LTEXT "",IDC_COMMANDHELP_TEXT,20,7,208,256
-END
-
-IDD_RAWDEVICES_DLG DIALOGEX 0, 0, 305, 209
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Select a Partition or Device"
-FONT 8, "MS Shell Dlg", 400, 0, 0x0
-BEGIN
- CONTROL "",IDC_DEVICELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_EDITLABELS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,291,178
- DEFPUSHBUTTON "OK",IDOK,192,190,50,14
- PUSHBUTTON "Cancel",IDCANCEL,248,190,50,14
-END
-
-IDD_MOUNT_OPTIONS DIALOGEX 0, 0, 277, 231
-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 removable &medium",IDC_MOUNT_REMOVABLE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,25,195,10
- CONTROL "Use backup header embedded in &volume if available",IDC_USE_EMBEDDED_HEADER_BAK,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,39,257,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,67,150,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,97,252,10
- EDITTEXT IDC_PASSWORD_PROT_HIDVOL,112,115,151,14,ES_PASSWORD | ES_AUTOHSCROLL
- COMBOBOX IDC_PKCS5_PRF_ID,112,136,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
- EDITTEXT IDC_PIM,112,156,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,161,97,10
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,158,159,112,8,NOT WS_VISIBLE
- CONTROL "&Display password",IDC_SHOW_PASSWORD_MO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,174,90,10
- CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE_HIDVOL_PROT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,187,90,10
- PUSHBUTTON "&Keyfiles...",IDC_KEYFILES_HIDVOL_PROT,204,183,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,202,247,10,SS_NOTIFY
- RTEXT "P&assword to hidden volume:\n(if empty, cache is used)",IDT_HIDDEN_PROT_PASSWD,15,114,91,17,0,WS_EX_RIGHT
- GROUPBOX "Hidden Volume Protection",IDT_HIDDEN_VOL_PROTECTION,6,83,265,136
- RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,15,137,91,17
- RTEXT "Volume PIM:",IDT_PIM,15,159,91,17,NOT WS_VISIBLE
- LTEXT "Volume Label in Windows:",IDT_VOLUME_LABEL,12,70,95,8
-END
-
-IDD_KEYFILES DIALOGEX 0, 0, 363, 251
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Keyfiles"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "",IDC_KEYLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,8,275,118
- PUSHBUTTON "Add &Files...",IDC_KEYADD,7,132,61,14
- PUSHBUTTON "Add &Path...",IDC_ADD_KEYFILE_PATH,79,132,61,14
- PUSHBUTTON "Add &Token Files...",IDC_TOKEN_FILES_ADD,151,132,65,14
- PUSHBUTTON "&Remove",IDC_KEYREMOVE,227,132,61,14
- PUSHBUTTON "Remove &All",IDC_KEYREMOVEALL,299,132,61,14
- CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,232,100,11
- PUSHBUTTON "&Generate Random Keyfile...",IDC_GENERATE_KEYFILE,237,230,123,14
- DEFPUSHBUTTON "OK",IDOK,290,8,70,14
- PUSHBUTTON "Cancel",IDCANCEL,290,25,70,14
- LTEXT "",IDT_KEYFILES_NOTE,10,161,346,41,0,WS_EX_TRANSPARENT
- LTEXT "WARNING: If you lose a keyfile or if any bit of its first 1024 kilobytes changes, it will be impossible to mount volumes that use the keyfile!",IDT_KEYFILE_WARNING,290,44,69,85,0,WS_EX_TRANSPARENT
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,154,361,1,WS_EX_STATICEDGE
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,209,361,1,WS_EX_STATICEDGE
- LTEXT "More information on keyfiles",IDC_LINK_KEYFILES_INFO,111,233,124,10,SS_NOTIFY
- CONTROL "Try first to mount with an empty password",IDC_KEYFILES_TRY_EMPTY_PASSWORD,
- "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,7,217,310,10
-END
-
-IDD_LANGUAGE DIALOGEX 0, 0, 209, 183
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Language"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- LISTBOX IDC_LANGLIST,6,7,197,67,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_LANGPACK_CREDITS,6,108,197,28,ES_MULTILINE | ES_READONLY | WS_VSCROLL | NOT WS_TABSTOP
- CTEXT "Download language pack",IDC_GET_LANG_PACKS,2,146,205,10,SS_NOTIFY
- DEFPUSHBUTTON "OK",IDOK,97,165,50,14
- PUSHBUTTON "Cancel",IDCANCEL,153,165,50,14
- LTEXT "Translated by:",IDT_LANGPACK_AUTHORS,6,99,101,9,SS_NOTIFY,WS_EX_TRANSPARENT
- RTEXT "",IDC_LANGPACK_VERSION,79,86,118,11
- GROUPBOX "Active language pack",IDT_ACTIVE_LANG_PACK,0,77,209,65
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,158,208,1,WS_EX_STATICEDGE
-END
-
-IDD_BENCHMARK_DLG DIALOGEX 0, 0, 330, 247
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Algorithms Benchmark"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- COMBOBOX IDC_BENCHMARK_LIST,55,11,87,53,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_BENCHMARK_BUFFER_SIZE,209,11,87,129,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_PIM,209,11,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
- CONTROL "Pre-Boot",IDC_BENCHMARK_PREBOOT,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,258,14,71,10
- COMBOBOX IDC_BENCHMARK_SORT_METHOD,55,40,139,74,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- DEFPUSHBUTTON "Benchmark",IDC_PERFORM_BENCHMARK,265,60,58,14
- PUSHBUTTON "Close",IDCLOSE,265,79,58,14
- CONTROL "",IDC_RESULTS,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,60,249,160
- LTEXT "Hardware-accelerated AES:",IDC_HW_AES_LABEL_LINK,148,233,108,9,SS_NOTIFY,WS_EX_RIGHT
- CONTROL "",IDC_HW_AES,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,262,232,57,11,WS_EX_STATICEDGE
- LTEXT "Parallelization:",IDC_PARALLELIZATION_LABEL_LINK,4,233,67,9,SS_NOTIFY,WS_EX_RIGHT
- CONTROL "",IDC_PARALLELIZATION,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,77,232,57,11,WS_EX_STATICEDGE
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,32,328,1,WS_EX_STATICEDGE
- LTEXT "Buffer Size:",IDT_BUFFER_SIZE,154,14,53,8,0,WS_EX_RIGHT
- LTEXT "Sort Method:",IDT_SORT_METHOD,0,42,53,8,0,WS_EX_RIGHT
- LTEXT "Speed is affected by CPU load and storage device characteristics.\n\nThese tests take place in RAM.",IDT_BOX_BENCHMARK_INFO,266,107,57,100
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,228,328,1,WS_EX_STATICEDGE
- LTEXT "Benchmark: ",IDT_BENCHMARK,0,14,53,8,0,WS_EX_RIGHT
- RTEXT "Volume PIM:",IDT_PIM,154,14,53,8,NOT WS_VISIBLE
-END
-
-IDD_CIPHER_TEST_DLG DIALOGEX 0, 0, 326, 249
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Test Vectors"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- COMBOBOX IDC_CIPHER,109,10,104,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_KEY,8,36,309,14,ES_AUTOHSCROLL
- COMBOBOX IDC_KEY_SIZE,67,55,42,68,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_SECONDARY_KEY,8,93,309,14,ES_AUTOHSCROLL
- EDITTEXT IDC_TEST_DATA_UNIT_NUMBER,8,118,84,14,ES_AUTOHSCROLL
- CONTROL "XTS mode",IDC_XTS_MODE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,221,12,95,10
- EDITTEXT IDC_PLAINTEXT,8,151,159,14,ES_AUTOHSCROLL
- COMBOBOX IDC_PLAINTEXT_SIZE,258,151,36,30,CBS_DROPDOWNLIST | WS_DISABLED | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_CIPHERTEXT,8,185,159,14,ES_AUTOHSCROLL
- DEFPUSHBUTTON "&Encrypt",IDC_ENCRYPT,8,229,52,14
- PUSHBUTTON "&Decrypt",IDC_DECRYPT,65,229,52,14
- PUSHBUTTON "&Auto-Test All",IDC_AUTO,129,229,67,14,BS_MULTILINE
- PUSHBUTTON "&Reset",IDC_RESET,208,229,52,14
- PUSHBUTTON "Close",IDCLOSE,266,229,52,14
- GROUPBOX "Key (hexadecimal)",IDT_TEST_KEY,1,26,323,49
- GROUPBOX "Plaintext (hexadecimal)",IDT_TEST_PLAINTEXT,1,140,323,33
- GROUPBOX "Ciphertext (hexadecimal)",IDT_TEST_CIPHERTEXT,1,174,323,33
- RTEXT "",IDC_TESTS_MESSAGE,50,213,178,10
- CONTROL "",IDC_REDTICK,"VCREDTICK",0x0,234,214,10,8
- RTEXT "Key size:",IDT_KEY,8,57,56,8
- RTEXT "Plaintext size:",IDT_PLAINTEXT,174,153,79,8
- LTEXT "bits",IDT_KEY_UNIT,114,57,45,8
- RTEXT "Cipher:",IDT_CIPHER,38,13,68,8
- LTEXT "bits",IDT_PLAINTEXT_SIZE_UNIT,298,153,22,8
- GROUPBOX "XTS mode",IDT_XTS_MODE,1,75,323,65
- LTEXT "Secondary key (hexadecimal)",IDT_SECONDARY_KEY,8,84,187,8
- LTEXT "Data unit number (64-bit hexadecimal, data unit size is 512 bytes)",IDT_TEST_DATA_UNIT_NUMBER,8,109,308,8
- RTEXT "Block number:",IDT_TEST_BLOCK_NUMBER,134,122,119,8
- COMBOBOX IDC_TEST_BLOCK_NUMBER,258,119,36,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_TEXT_INFO_DIALOG_BOX_DLG DIALOGEX 0, 0, 372, 220
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,305,200,58,14
- PUSHBUTTON "&Print",IDC_PRINT,156,200,58,14
- CONTROL "",IDC_INFO_BOX_TEXT,"RichEdit20W",ES_MULTILINE | ES_READONLY | ES_NUMBER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,5,6,361,188
-END
-
-IDD_KEYFILE_GENERATOR DIALOGEX 0, 0, 357, 362
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Keyfile Generator"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "Close",IDCLOSE,291,10,59,14
- COMBOBOX IDC_PRF_ID,97,49,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
- CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,209,51,141,10
- EDITTEXT IDC_NUMBER_KEYFILES,124,278,51,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
- EDITTEXT IDC_KEYFILES_SIZE,124,298,51,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Random size ( 64 <-> 1048576 )",IDC_KEYFILES_RANDOM_SIZE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,181,300,174,10
- EDITTEXT IDC_KEYFILES_BASE_NAME,124,318,141,14,ES_AUTOHSCROLL
- PUSHBUTTON "Generate and Save Keyfile...",IDC_GENERATE_AND_SAVE_KEYFILE,124,336,141,14
- 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 keyfile.",IDT_KEYFILE_GENERATOR_NOTE,11,5,271,33
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,40,356,1,WS_EX_STATICEDGE
- RTEXT "Mixing PRF:",IDT_PRF,7,51,85,10,SS_CENTERIMAGE
- GROUPBOX "Current Pool Content",IDT_POOL_CONTENTS,6,70,344,170
- CTEXT "",IDC_POOL_CONTENTS,16,83,323,148,0,WS_EX_TRANSPARENT
- RTEXT "Number of keyfiles:",IDT_NUMBER_KEYFILES,9,281,110,8
- RTEXT "Keyfiles base name:",IDT_KEYFILES_BASE_NAME,9,321,110,8
- RTEXT "Keyfiles size (in Bytes):",IDT_KEYFILES_SIZE,9,300,110,8
- CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,18,255,321,12
- GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,6,244,344,29
-END
-
-IDD_MULTI_CHOICE_DLG DIALOGEX 0, 0, 167, 322
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- PUSHBUTTON "",IDC_CHOICE10,7,292,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE9,7,268,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE8,7,244,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE7,7,220,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE6,7,196,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE5,7,172,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE4,7,148,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE3,7,124,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE2,7,100,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- PUSHBUTTON "",IDC_CHOICE1,7,76,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
- LTEXT "",IDC_MULTI_CHOICE_MSG,7,7,153,56,0,WS_EX_TRANSPARENT
- CONTROL "",IDC_MC_DLG_HR2,"Static",SS_ETCHEDHORZ,0,69,168,1,WS_EX_STATICEDGE
- CONTROL "",IDC_MC_DLG_HR1,"Static",SS_ETCHEDHORZ,0,1,168,1,WS_EX_STATICEDGE
-END
-
-IDD_AUXILIARY_DLG DIALOGEX 0, 0, 426, 296
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_NOFAILCREATE | WS_POPUP
-EXSTYLE WS_EX_TRANSPARENT
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- LTEXT "",IDC_ASPECT_RATIO_CALIBRATION_BOX,3,2,282,282,WS_DISABLED
-END
-
-IDD_TOKEN_PASSWORD DIALOGEX 0, 0, 281, 47
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Security token password/PIN required"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- EDITTEXT IDC_TOKEN_PASSWORD,8,20,199,14,ES_PASSWORD | ES_AUTOHSCROLL
- DEFPUSHBUTTON "OK",IDOK,215,7,59,14
- PUSHBUTTON "Cancel",IDCANCEL,215,25,59,14
- LTEXT "",IDT_TOKEN_PASSWORD_INFO,9,8,196,8
-END
-
-IDD_TOKEN_KEYFILES DIALOGEX 0, 0, 337, 185
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Security Token Keyfiles"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "",IDC_TOKEN_FILE_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_EDITLABELS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,256,152
- PUSHBUTTON "&Export...",IDC_EXPORT,7,164,55,14
- PUSHBUTTON "&Delete",IDC_DELETE,66,164,55,14
- PUSHBUTTON "&Import Keyfile to Token...",IDC_IMPORT_KEYFILE,126,164,137,14
- DEFPUSHBUTTON "OK",IDOK,271,7,59,14
- PUSHBUTTON "Cancel",IDCANCEL,271,25,59,14
-END
-
-IDD_NEW_TOKEN_KEYFILE DIALOGEX 0, 0, 239, 82
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "New Security Token Keyfile Properties"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,128,61,50,14
- PUSHBUTTON "Cancel",IDCANCEL,183,61,50,14
- COMBOBOX IDC_SELECTED_TOKEN,77,13,140,43,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- LTEXT "Security token:",IDT_SECURITY_TOKEN,11,15,62,8,0,WS_EX_RIGHT
- LTEXT "Keyfile name:",IDT_TOKEN_KEYFILE_NAME,12,34,61,8,0,WS_EX_RIGHT
- EDITTEXT IDC_TOKEN_KEYFILE_NAME,77,32,140,13,ES_AUTOHSCROLL
- GROUPBOX "",IDC_STATIC,5,2,228,51
-END
-
-IDD_RANDOM_POOL_ENRICHMENT DIALOGEX 0, 0, 308, 301
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Random Pool Enrichment"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "&Continue",IDC_CONTINUE,119,278,71,14
- COMBOBOX IDC_PRF_ID,79,49,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
- LTEXT "IMPORTANT: Move your mouse as randomly as possible within this window. The longer you move it, the better. This significantly increases security. When done, click 'Continue'.",IDT_RANDOM_POOL_ENRICHMENT_NOTE,11,6,282,25
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,37,307,1,WS_EX_STATICEDGE
- RTEXT "Mixing PRF:",IDT_PRF,6,51,67,10,SS_CENTERIMAGE
- GROUPBOX "Current Pool Content",IDT_POOL_CONTENTS,6,70,296,170
- CONTROL "",IDC_POOL_CONTENTS,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,16,83,282,148,WS_EX_TRANSPARENT
- CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,191,51,111,10
- CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,16,255,275,12
- GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,7,244,294,29
-END
-
-IDD_STATIC_MODELESS_WAIT_DLG DIALOGEX 0, 0, 292, 42
-STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
-EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW
-CAPTION "VeraCrypt"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- LTEXT "Please wait. This process may take a long time...",IDT_STATIC_MODELESS_WAIT_DLG_INFO,9,8,274,9
-END
-
-IDD_STATIC_MODAL_WAIT_DLG DIALOGEX 0, 0, 292, 74
-STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
-CAPTION "VeraCrypt"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- CTEXT "Please wait...\nThis process may take a long time and VeraCrypt may seem unresponsive.",IDT_STATIC_MODAL_WAIT_DLG_INFO,9,11,274,33
- CONTROL "",IDC_WAIT_PROGRESS_BAR,"msctls_progress32",WS_BORDER,7,49,278,14
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_ABOUT_DLG, DIALOG
- BEGIN
- END
-
- IDD_COMMANDHELP_DLG, DIALOG
- BEGIN
- BOTTOMMARGIN, 281
- END
-
- IDD_RAWDEVICES_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 298
- TOPMARGIN, 7
- BOTTOMMARGIN, 205
- END
-
- IDD_MOUNT_OPTIONS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- TOPMARGIN, 7
- BOTTOMMARGIN, 225
- END
-
- IDD_KEYFILES, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 345
- TOPMARGIN, 7
- BOTTOMMARGIN, 244
- END
-
- IDD_LANGUAGE, DIALOG
- BEGIN
- LEFTMARGIN, 6
- RIGHTMARGIN, 202
- TOPMARGIN, 7
- BOTTOMMARGIN, 176
- END
-
- IDD_BENCHMARK_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 323
- TOPMARGIN, 7
- BOTTOMMARGIN, 240
- END
-
- IDD_CIPHER_TEST_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 319
- TOPMARGIN, 7
- BOTTOMMARGIN, 242
- END
-
- IDD_TEXT_INFO_DIALOG_BOX_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 365
- TOPMARGIN, 7
- BOTTOMMARGIN, 213
- END
-
- IDD_KEYFILE_GENERATOR, DIALOG
- BEGIN
- LEFTMARGIN, 7
- TOPMARGIN, 7
- BOTTOMMARGIN, 358
- END
-
- IDD_MULTI_CHOICE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 160
- TOPMARGIN, 7
- BOTTOMMARGIN, 316
- END
-
- IDD_AUXILIARY_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 419
- TOPMARGIN, 7
- BOTTOMMARGIN, 289
- END
-
- IDD_TOKEN_PASSWORD, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 274
- TOPMARGIN, 7
- BOTTOMMARGIN, 40
- END
-
- IDD_TOKEN_KEYFILES, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 330
- TOPMARGIN, 7
- BOTTOMMARGIN, 178
- END
-
- IDD_NEW_TOKEN_KEYFILE, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 232
- TOPMARGIN, 7
- BOTTOMMARGIN, 75
- END
-
- IDD_RANDOM_POOL_ENRICHMENT, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 301
- TOPMARGIN, 7
- BOTTOMMARGIN, 298
- END
-
- IDD_STATIC_MODELESS_WAIT_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 285
- TOPMARGIN, 7
- BOTTOMMARGIN, 35
- END
-
- IDD_STATIC_MODAL_WAIT_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 285
- TOPMARGIN, 7
- BOTTOMMARGIN, 67
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// BIN
-//
-
-IDR_BOOT_SECTOR BIN "..\\Boot\\Windows\\Release\\BootSector.bin"
-IDR_BOOT_SECTOR_AES BIN "..\\Boot\\Windows\\Release_AES\\BootSector.bin"
-IDR_BOOT_SECTOR_SERPENT BIN "..\\Boot\\Windows\\Release_Serpent\\BootSector.bin"
-IDR_BOOT_SECTOR_TWOFISH BIN "..\\Boot\\Windows\\Release_Twofish\\BootSector.bin"
-IDR_BOOT_SECTOR_CAMELLIA BIN "..\\Boot\\Windows\\Release_Camellia\\BootSector.bin"
-IDR_BOOT_LOADER_DECOMPRESSOR BIN "..\\Boot\\Windows\\Release\\Decompressor.com"
-IDR_BOOT_LOADER BIN "..\\Boot\\Windows\\Release\\BootLoader.com.gz"
-IDR_BOOT_LOADER_AES BIN "..\\Boot\\Windows\\Release_AES\\BootLoader.com.gz"
-IDR_BOOT_LOADER_SERPENT BIN "..\\Boot\\Windows\\Release_Serpent\\BootLoader.com.gz"
-IDR_BOOT_LOADER_TWOFISH BIN "..\\Boot\\Windows\\Release_Twofish\\BootLoader.com.gz"
-IDR_BOOT_LOADER_CAMELLIA BIN "..\\Boot\\Windows\\Release_Camellia\\BootLoader.com.gz"
-
-IDR_BOOT_SECTOR_SHA2 BIN "..\\Boot\\Windows\\Release_SHA2\\BootSector.bin"
-IDR_BOOT_SECTOR_AES_SHA2 BIN "..\\Boot\\Windows\\Release_AES_SHA2\\BootSector.bin"
-IDR_BOOT_SECTOR_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Release_Serpent_SHA2\\BootSector.bin"
-IDR_BOOT_SECTOR_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Release_Twofish_SHA2\\BootSector.bin"
-IDR_BOOT_SECTOR_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Release_Camellia_SHA2\\BootSector.bin"
-IDR_BOOT_LOADER_SHA2 BIN "..\\Boot\\Windows\\Release_SHA2\\BootLoader.com.gz"
-IDR_BOOT_LOADER_AES_SHA2 BIN "..\\Boot\\Windows\\Release_AES_SHA2\\BootLoader.com.gz"
-IDR_BOOT_LOADER_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Release_Serpent_SHA2\\BootLoader.com.gz"
-IDR_BOOT_LOADER_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Release_Twofish_SHA2\\BootLoader.com.gz"
-IDR_BOOT_LOADER_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Release_Camellia_SHA2\\BootLoader.com.gz"
-
-
-IDR_RESCUE_BOOT_SECTOR BIN "..\\Boot\\Windows\\Rescue\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_AES BIN "..\\Boot\\Windows\\Rescue_AES\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_SERPENT BIN "..\\Boot\\Windows\\Rescue_Serpent\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_TWOFISH BIN "..\\Boot\\Windows\\Rescue_Twofish\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_CAMELLIA BIN "..\\Boot\\Windows\\Rescue_Camellia\\BootSector.bin"
-IDR_RESCUE_LOADER BIN "..\\Boot\\Windows\\Rescue\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_AES BIN "..\\Boot\\Windows\\Rescue_AES\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_SERPENT BIN "..\\Boot\\Windows\\Rescue_Serpent\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_TWOFISH BIN "..\\Boot\\Windows\\Rescue_Twofish\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_CAMELLIA BIN "..\\Boot\\Windows\\Rescue_Camellia\\BootLoader.com.gz"
-
-IDR_RESCUE_BOOT_SECTOR_SHA2 BIN "..\\Boot\\Windows\\Rescue_SHA2\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_AES_SHA2 BIN "..\\Boot\\Windows\\Rescue_AES_SHA2\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Rescue_Serpent_SHA2\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Rescue_Twofish_SHA2\\BootSector.bin"
-IDR_RESCUE_BOOT_SECTOR_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Rescue_Camellia_SHA2\\BootSector.bin"
-IDR_RESCUE_LOADER_SHA2 BIN "..\\Boot\\Windows\\Rescue_SHA2\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_AES_SHA2 BIN "..\\Boot\\Windows\\Rescue_AES_SHA2\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Rescue_Serpent_SHA2\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Rescue_Twofish_SHA2\\BootLoader.com.gz"
-IDR_RESCUE_LOADER_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Rescue_Camellia_SHA2\\BootLoader.com.gz"
-IDR_EFI_DCSBOOT BIN "..\\Boot\\EFI\\DcsBoot.efi"
-IDR_EFI_DCSINT BIN "..\\Boot\\EFI\\DcsInt.efi"
-IDR_EFI_DCSCFG BIN "..\\Boot\\EFI\\DcsCfg.efi"
-IDR_EFI_LEGACYSPEAKER BIN "..\\Boot\\EFI\\LegacySpeaker.efi"
-IDR_EFI_DCSBML BIN "..\\Boot\\EFI\\DcsBml.efi"
-IDR_EFI_DCSRE BIN "..\\Boot\\EFI\\DcsRe.efi"
-IDR_EFI_DCSBOOT32 BIN "..\\Boot\\EFI\\DcsBoot32.efi"
-IDR_EFI_DCSINT32 BIN "..\\Boot\\EFI\\DcsInt32.efi"
-IDR_EFI_DCSCFG32 BIN "..\\Boot\\EFI\\DcsCfg32.efi"
-IDR_EFI_LEGACYSPEAKER32 BIN "..\\Boot\\EFI\\LegacySpeaker32.efi"
-IDR_EFI_DCSBML32 BIN "..\\Boot\\EFI\\DcsBml32.efi"
-IDR_EFI_DCSRE32 BIN "..\\Boot\\EFI\\DcsRe32.efi"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// XML
-//
-
-IDR_LANGUAGE XML "..\\Common\\Language.xml"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// HEADER
-//
-
-IDR_COMMON_RSRC_HEADER HEADER "..\\Common\\Resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXT
-//
-
-IDR_LICENSE TEXT "..\\Resources\\Texts\\License.rtf"
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_TRUECRYPT_ICON ICON "..\\Common\\VeraCrypt.ico"
-IDI_TRUECRYPT_VOL_ICON ICON "..\\Common\\VeraCrypt_volume.ico"
-IDI_TRUECRYPT_MOUNTED_ICON ICON "..\\Common\\VeraCrypt_mounted.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_TEXTUAL_LOGO_BKG BITMAP "..\\Common\\Textual_logo_background.bmp"
-IDB_TEXTUAL_LOGO_96DPI BITMAP "..\\Common\\Textual_logo_96dpi.bmp"
-IDB_TEXTUAL_LOGO_288DPI BITMAP "..\\Common\\Textual_logo_288dpi.bmp"
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT_DLG DIALOGEX 31, 51, 292, 199
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About VeraCrypt"
+CLASS "VeraCryptSplashDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ EDITTEXT IDC_ABOUT_CREDITS,7,111,277,45,ES_MULTILINE | WS_VSCROLL | NOT WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,230,178,52,14
+ LTEXT "",IDC_HOMEPAGE,18,87,117,9,SS_NOTIFY
+ LTEXT "",IDT_ABOUT_RELEASE,18,71,235,8
+ CONTROL IDB_TEXTUAL_LOGO_BKG,IDC_ABOUT_BKG,"Static",SS_BITMAP,0,0,12,11,WS_EX_STATICEDGE
+ LTEXT "",IDT_ABOUT_VERSION,18,61,161,8
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,167,291,1,WS_EX_STATICEDGE
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,169,291,1,WS_EX_STATICEDGE
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,107,291,1,WS_EX_STATICEDGE
+ CONTROL "",IDC_ABOUT_LOGO_AREA,"Static",SS_GRAYRECT | NOT WS_VISIBLE,0,0,293,50,WS_EX_TRANSPARENT | WS_EX_STATICEDGE
+ CONTROL IDB_TEXTUAL_LOGO_96DPI,IDC_TEXTUAL_LOGO_IMG,"Static",SS_BITMAP,12,26,157,16
+END
+
+IDD_COMMANDHELP_DLG DIALOGEX 0, 0, 249, 289
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Command Line Help"
+CLASS "VeraCryptCustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,93,267,59,14
+ LTEXT "",IDC_COMMANDHELP_TEXT,20,7,208,256
+END
+
+IDD_RAWDEVICES_DLG DIALOGEX 0, 0, 305, 209
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Select a Partition or Device"
+FONT 8, "MS Shell Dlg", 400, 0, 0x0
+BEGIN
+ CONTROL "",IDC_DEVICELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_EDITLABELS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,291,178
+ DEFPUSHBUTTON "OK",IDOK,192,190,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,248,190,50,14
+END
+
+IDD_MOUNT_OPTIONS DIALOGEX 0, 0, 277, 231
+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 removable &medium",IDC_MOUNT_REMOVABLE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,25,195,10
+ CONTROL "Use backup header embedded in &volume if available",IDC_USE_EMBEDDED_HEADER_BAK,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,39,257,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,67,150,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,97,252,10
+ EDITTEXT IDC_PASSWORD_PROT_HIDVOL,112,115,151,14,ES_PASSWORD | ES_AUTOHSCROLL
+ COMBOBOX IDC_PKCS5_PRF_ID,112,136,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ EDITTEXT IDC_PIM,112,156,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,161,97,10
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,158,159,112,8,NOT WS_VISIBLE
+ CONTROL "&Display password",IDC_SHOW_PASSWORD_MO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,174,90,10
+ CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE_HIDVOL_PROT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,187,90,10
+ PUSHBUTTON "&Keyfiles...",IDC_KEYFILES_HIDVOL_PROT,204,183,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,202,247,10,SS_NOTIFY
+ RTEXT "P&assword to hidden volume:\n(if empty, cache is used)",IDT_HIDDEN_PROT_PASSWD,15,114,91,17,0,WS_EX_RIGHT
+ GROUPBOX "Hidden Volume Protection",IDT_HIDDEN_VOL_PROTECTION,6,83,265,136
+ RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,15,137,91,17
+ RTEXT "Volume PIM:",IDT_PIM,15,159,91,17,NOT WS_VISIBLE
+ LTEXT "Volume Label in Windows:",IDT_VOLUME_LABEL,12,70,95,8
+END
+
+IDD_KEYFILES DIALOGEX 0, 0, 363, 251
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Keyfiles"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_KEYLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,8,275,118
+ PUSHBUTTON "Add &Files...",IDC_KEYADD,7,132,61,14
+ PUSHBUTTON "Add &Path...",IDC_ADD_KEYFILE_PATH,79,132,61,14
+ PUSHBUTTON "Add &Token Files...",IDC_TOKEN_FILES_ADD,151,132,65,14
+ PUSHBUTTON "&Remove",IDC_KEYREMOVE,227,132,61,14
+ PUSHBUTTON "Remove &All",IDC_KEYREMOVEALL,299,132,61,14
+ CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,232,100,11
+ PUSHBUTTON "&Generate Random Keyfile...",IDC_GENERATE_KEYFILE,237,230,123,14
+ DEFPUSHBUTTON "OK",IDOK,290,8,70,14
+ PUSHBUTTON "Cancel",IDCANCEL,290,25,70,14
+ LTEXT "",IDT_KEYFILES_NOTE,10,161,346,41,0,WS_EX_TRANSPARENT
+ LTEXT "WARNING: If you lose a keyfile or if any bit of its first 1024 kilobytes changes, it will be impossible to mount volumes that use the keyfile!",IDT_KEYFILE_WARNING,290,44,69,85,0,WS_EX_TRANSPARENT
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,154,361,1,WS_EX_STATICEDGE
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,209,361,1,WS_EX_STATICEDGE
+ LTEXT "More information on keyfiles",IDC_LINK_KEYFILES_INFO,111,233,124,10,SS_NOTIFY
+ CONTROL "Try first to mount with an empty password",IDC_KEYFILES_TRY_EMPTY_PASSWORD,
+ "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,7,217,310,10
+END
+
+IDD_LANGUAGE DIALOGEX 0, 0, 209, 183
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Language"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LISTBOX IDC_LANGLIST,6,7,197,67,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+ EDITTEXT IDC_LANGPACK_CREDITS,6,108,197,28,ES_MULTILINE | ES_READONLY | WS_VSCROLL | NOT WS_TABSTOP
+ CTEXT "Download language pack",IDC_GET_LANG_PACKS,2,146,205,10,SS_NOTIFY
+ DEFPUSHBUTTON "OK",IDOK,97,165,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,153,165,50,14
+ LTEXT "Translated by:",IDT_LANGPACK_AUTHORS,6,99,101,9,SS_NOTIFY,WS_EX_TRANSPARENT
+ RTEXT "",IDC_LANGPACK_VERSION,79,86,118,11
+ GROUPBOX "Active language pack",IDT_ACTIVE_LANG_PACK,0,77,209,65
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,158,208,1,WS_EX_STATICEDGE
+END
+
+IDD_BENCHMARK_DLG DIALOGEX 0, 0, 330, 247
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Algorithms Benchmark"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ COMBOBOX IDC_BENCHMARK_LIST,55,11,87,53,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_BENCHMARK_BUFFER_SIZE,209,11,87,129,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ EDITTEXT IDC_PIM,209,11,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
+ CONTROL "Pre-Boot",IDC_BENCHMARK_PREBOOT,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,258,14,71,10
+ COMBOBOX IDC_BENCHMARK_SORT_METHOD,55,40,139,74,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ DEFPUSHBUTTON "Benchmark",IDC_PERFORM_BENCHMARK,265,60,58,14
+ PUSHBUTTON "Close",IDCLOSE,265,79,58,14
+ CONTROL "",IDC_RESULTS,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,60,249,160
+ LTEXT "Hardware-accelerated AES:",IDC_HW_AES_LABEL_LINK,148,233,108,9,SS_NOTIFY,WS_EX_RIGHT
+ CONTROL "",IDC_HW_AES,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,262,232,57,11,WS_EX_STATICEDGE
+ LTEXT "Parallelization:",IDC_PARALLELIZATION_LABEL_LINK,4,233,67,9,SS_NOTIFY,WS_EX_RIGHT
+ CONTROL "",IDC_PARALLELIZATION,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,77,232,57,11,WS_EX_STATICEDGE
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,32,328,1,WS_EX_STATICEDGE
+ LTEXT "Buffer Size:",IDT_BUFFER_SIZE,154,14,53,8,0,WS_EX_RIGHT
+ LTEXT "Sort Method:",IDT_SORT_METHOD,0,42,53,8,0,WS_EX_RIGHT
+ LTEXT "Speed is affected by CPU load and storage device characteristics.\n\nThese tests take place in RAM.",IDT_BOX_BENCHMARK_INFO,266,107,57,100
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,228,328,1,WS_EX_STATICEDGE
+ LTEXT "Benchmark: ",IDT_BENCHMARK,0,14,53,8,0,WS_EX_RIGHT
+ RTEXT "Volume PIM:",IDT_PIM,154,14,53,8,NOT WS_VISIBLE
+END
+
+IDD_CIPHER_TEST_DLG DIALOGEX 0, 0, 326, 249
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Test Vectors"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ COMBOBOX IDC_CIPHER,109,10,104,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ EDITTEXT IDC_KEY,8,36,309,14,ES_AUTOHSCROLL
+ COMBOBOX IDC_KEY_SIZE,67,55,42,68,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ EDITTEXT IDC_SECONDARY_KEY,8,93,309,14,ES_AUTOHSCROLL
+ EDITTEXT IDC_TEST_DATA_UNIT_NUMBER,8,118,84,14,ES_AUTOHSCROLL
+ CONTROL "XTS mode",IDC_XTS_MODE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,221,12,95,10
+ EDITTEXT IDC_PLAINTEXT,8,151,159,14,ES_AUTOHSCROLL
+ COMBOBOX IDC_PLAINTEXT_SIZE,258,151,36,30,CBS_DROPDOWNLIST | WS_DISABLED | WS_VSCROLL | WS_TABSTOP
+ EDITTEXT IDC_CIPHERTEXT,8,185,159,14,ES_AUTOHSCROLL
+ DEFPUSHBUTTON "&Encrypt",IDC_ENCRYPT,8,229,52,14
+ PUSHBUTTON "&Decrypt",IDC_DECRYPT,65,229,52,14
+ PUSHBUTTON "&Auto-Test All",IDC_AUTO,129,229,67,14,BS_MULTILINE
+ PUSHBUTTON "&Reset",IDC_RESET,208,229,52,14
+ PUSHBUTTON "Close",IDCLOSE,266,229,52,14
+ GROUPBOX "Key (hexadecimal)",IDT_TEST_KEY,1,26,323,49
+ GROUPBOX "Plaintext (hexadecimal)",IDT_TEST_PLAINTEXT,1,140,323,33
+ GROUPBOX "Ciphertext (hexadecimal)",IDT_TEST_CIPHERTEXT,1,174,323,33
+ RTEXT "",IDC_TESTS_MESSAGE,50,213,178,10
+ CONTROL "",IDC_REDTICK,"VCREDTICK",0x0,234,214,10,8
+ RTEXT "Key size:",IDT_KEY,8,57,56,8
+ RTEXT "Plaintext size:",IDT_PLAINTEXT,174,153,79,8
+ LTEXT "bits",IDT_KEY_UNIT,114,57,45,8
+ RTEXT "Cipher:",IDT_CIPHER,38,13,68,8
+ LTEXT "bits",IDT_PLAINTEXT_SIZE_UNIT,298,153,22,8
+ GROUPBOX "XTS mode",IDT_XTS_MODE,1,75,323,65
+ LTEXT "Secondary key (hexadecimal)",IDT_SECONDARY_KEY,8,84,187,8
+ LTEXT "Data unit number (64-bit hexadecimal, data unit size is 512 bytes)",IDT_TEST_DATA_UNIT_NUMBER,8,109,308,8
+ RTEXT "Block number:",IDT_TEST_BLOCK_NUMBER,134,122,119,8
+ COMBOBOX IDC_TEST_BLOCK_NUMBER,258,119,36,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+END
+
+IDD_TEXT_INFO_DIALOG_BOX_DLG DIALOGEX 0, 0, 372, 220
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,305,200,58,14
+ PUSHBUTTON "&Print",IDC_PRINT,156,200,58,14
+ CONTROL "",IDC_INFO_BOX_TEXT,"RichEdit20W",ES_MULTILINE | ES_READONLY | ES_NUMBER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,5,6,361,188
+END
+
+IDD_KEYFILE_GENERATOR DIALOGEX 0, 0, 357, 362
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Keyfile Generator"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "Close",IDCLOSE,291,10,59,14
+ COMBOBOX IDC_PRF_ID,97,49,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,209,51,141,10
+ EDITTEXT IDC_NUMBER_KEYFILES,124,278,51,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
+ EDITTEXT IDC_KEYFILES_SIZE,124,298,51,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "Random size ( 64 <-> 1048576 )",IDC_KEYFILES_RANDOM_SIZE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,181,300,174,10
+ EDITTEXT IDC_KEYFILES_BASE_NAME,124,318,141,14,ES_AUTOHSCROLL
+ PUSHBUTTON "Generate and Save Keyfile...",IDC_GENERATE_AND_SAVE_KEYFILE,124,336,141,14
+ 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 keyfile.",IDT_KEYFILE_GENERATOR_NOTE,11,5,271,33
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,40,356,1,WS_EX_STATICEDGE
+ RTEXT "Mixing PRF:",IDT_PRF,7,51,85,10,SS_CENTERIMAGE
+ GROUPBOX "Current Pool Content",IDT_POOL_CONTENTS,6,70,344,170
+ CTEXT "",IDC_POOL_CONTENTS,16,83,323,148,0,WS_EX_TRANSPARENT
+ RTEXT "Number of keyfiles:",IDT_NUMBER_KEYFILES,9,281,110,8
+ RTEXT "Keyfiles base name:",IDT_KEYFILES_BASE_NAME,9,321,110,8
+ RTEXT "Keyfiles size (in Bytes):",IDT_KEYFILES_SIZE,9,300,110,8
+ CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,18,255,321,12
+ GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,6,244,344,29
+END
+
+IDD_MULTI_CHOICE_DLG DIALOGEX 0, 0, 167, 322
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ PUSHBUTTON "",IDC_CHOICE10,7,292,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE9,7,268,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE8,7,244,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE7,7,220,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE6,7,196,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE5,7,172,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE4,7,148,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE3,7,124,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE2,7,100,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ PUSHBUTTON "",IDC_CHOICE1,7,76,153,24,BS_CENTER | BS_MULTILINE,WS_EX_STATICEDGE
+ LTEXT "",IDC_MULTI_CHOICE_MSG,7,7,153,56,0,WS_EX_TRANSPARENT
+ CONTROL "",IDC_MC_DLG_HR2,"Static",SS_ETCHEDHORZ,0,69,168,1,WS_EX_STATICEDGE
+ CONTROL "",IDC_MC_DLG_HR1,"Static",SS_ETCHEDHORZ,0,1,168,1,WS_EX_STATICEDGE
+END
+
+IDD_AUXILIARY_DLG DIALOGEX 0, 0, 426, 296
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_NOFAILCREATE | WS_POPUP
+EXSTYLE WS_EX_TRANSPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT "",IDC_ASPECT_RATIO_CALIBRATION_BOX,3,2,282,282,WS_DISABLED
+END
+
+IDD_TOKEN_PASSWORD DIALOGEX 0, 0, 281, 47
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Security token password/PIN required"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ EDITTEXT IDC_TOKEN_PASSWORD,8,20,199,14,ES_PASSWORD | ES_AUTOHSCROLL
+ DEFPUSHBUTTON "OK",IDOK,215,7,59,14
+ PUSHBUTTON "Cancel",IDCANCEL,215,25,59,14
+ LTEXT "",IDT_TOKEN_PASSWORD_INFO,9,8,196,8
+END
+
+IDD_TOKEN_KEYFILES DIALOGEX 0, 0, 337, 185
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Security Token Keyfiles"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_TOKEN_FILE_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_EDITLABELS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,256,152
+ PUSHBUTTON "&Export...",IDC_EXPORT,7,164,55,14
+ PUSHBUTTON "&Delete",IDC_DELETE,66,164,55,14
+ PUSHBUTTON "&Import Keyfile to Token...",IDC_IMPORT_KEYFILE,126,164,137,14
+ DEFPUSHBUTTON "OK",IDOK,271,7,59,14
+ PUSHBUTTON "Cancel",IDCANCEL,271,25,59,14
+END
+
+IDD_NEW_TOKEN_KEYFILE DIALOGEX 0, 0, 239, 82
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "New Security Token Keyfile Properties"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,128,61,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,183,61,50,14
+ COMBOBOX IDC_SELECTED_TOKEN,77,13,140,43,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ LTEXT "Security token:",IDT_SECURITY_TOKEN,11,15,62,8,0,WS_EX_RIGHT
+ LTEXT "Keyfile name:",IDT_TOKEN_KEYFILE_NAME,12,34,61,8,0,WS_EX_RIGHT
+ EDITTEXT IDC_TOKEN_KEYFILE_NAME,77,32,140,13,ES_AUTOHSCROLL
+ GROUPBOX "",IDC_STATIC,5,2,228,51
+END
+
+IDD_RANDOM_POOL_ENRICHMENT DIALOGEX 0, 0, 308, 301
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Random Pool Enrichment"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "&Continue",IDC_CONTINUE,119,278,71,14
+ COMBOBOX IDC_PRF_ID,79,49,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ LTEXT "IMPORTANT: Move your mouse as randomly as possible within this window. The longer you move it, the better. This significantly increases security. When done, click 'Continue'.",IDT_RANDOM_POOL_ENRICHMENT_NOTE,11,6,282,25
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,37,307,1,WS_EX_STATICEDGE
+ RTEXT "Mixing PRF:",IDT_PRF,6,51,67,10,SS_CENTERIMAGE
+ GROUPBOX "Current Pool Content",IDT_POOL_CONTENTS,6,70,296,170
+ CONTROL "",IDC_POOL_CONTENTS,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,16,83,282,148,WS_EX_TRANSPARENT
+ CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,191,51,111,10
+ CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,16,255,275,12
+ GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,7,244,294,29
+END
+
+IDD_STATIC_MODELESS_WAIT_DLG DIALOGEX 0, 0, 292, 42
+STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW
+CAPTION "VeraCrypt"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ LTEXT "Please wait. This process may take a long time...",IDT_STATIC_MODELESS_WAIT_DLG_INFO,9,8,274,9
+END
+
+IDD_STATIC_MODAL_WAIT_DLG DIALOGEX 0, 0, 292, 74
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
+CAPTION "VeraCrypt"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ CTEXT "Please wait...\nThis process may take a long time and VeraCrypt may seem unresponsive.",IDT_STATIC_MODAL_WAIT_DLG_INFO,9,11,274,33
+ CONTROL "",IDC_WAIT_PROGRESS_BAR,"msctls_progress32",WS_BORDER,7,49,278,14
+END
+
+IDD_TEXT_EDIT_DLG DIALOGEX 0, 0, 372, 220
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,306,201,58,14
+ CONTROL "",IDC_INFO_BOX_TEXT,"RichEdit20W",ES_MULTILINE | ES_NUMBER | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,5,6,361,188
+ DEFPUSHBUTTON "Cancel",IDCANCEL,240,201,58,14
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_ABOUT_DLG, DIALOG
+ BEGIN
+ END
+
+ IDD_COMMANDHELP_DLG, DIALOG
+ BEGIN
+ BOTTOMMARGIN, 281
+ END
+
+ IDD_RAWDEVICES_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 298
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 205
+ END
+
+ IDD_MOUNT_OPTIONS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 225
+ END
+
+ IDD_KEYFILES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 345
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 244
+ END
+
+ IDD_LANGUAGE, DIALOG
+ BEGIN
+ LEFTMARGIN, 6
+ RIGHTMARGIN, 202
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 176
+ END
+
+ IDD_BENCHMARK_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 323
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 240
+ END
+
+ IDD_CIPHER_TEST_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 319
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 242
+ END
+
+ IDD_TEXT_INFO_DIALOG_BOX_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 365
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 213
+ END
+
+ IDD_KEYFILE_GENERATOR, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 358
+ END
+
+ IDD_MULTI_CHOICE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 160
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 316
+ END
+
+ IDD_AUXILIARY_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 419
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 289
+ END
+
+ IDD_TOKEN_PASSWORD, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 274
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 40
+ END
+
+ IDD_TOKEN_KEYFILES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 330
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 178
+ END
+
+ IDD_NEW_TOKEN_KEYFILE, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 232
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 75
+ END
+
+ IDD_RANDOM_POOL_ENRICHMENT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 301
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 298
+ END
+
+ IDD_STATIC_MODELESS_WAIT_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 285
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 35
+ END
+
+ IDD_STATIC_MODAL_WAIT_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 285
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 67
+ END
+
+ IDD_TEXT_EDIT_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 365
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 213
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// BIN
+//
+
+IDR_BOOT_SECTOR BIN "..\\Boot\\Windows\\Release\\BootSector.bin"
+IDR_BOOT_SECTOR_AES BIN "..\\Boot\\Windows\\Release_AES\\BootSector.bin"
+IDR_BOOT_SECTOR_SERPENT BIN "..\\Boot\\Windows\\Release_Serpent\\BootSector.bin"
+IDR_BOOT_SECTOR_TWOFISH BIN "..\\Boot\\Windows\\Release_Twofish\\BootSector.bin"
+IDR_BOOT_SECTOR_CAMELLIA BIN "..\\Boot\\Windows\\Release_Camellia\\BootSector.bin"
+IDR_BOOT_LOADER_DECOMPRESSOR BIN "..\\Boot\\Windows\\Release\\Decompressor.com"
+IDR_BOOT_LOADER BIN "..\\Boot\\Windows\\Release\\BootLoader.com.gz"
+IDR_BOOT_LOADER_AES BIN "..\\Boot\\Windows\\Release_AES\\BootLoader.com.gz"
+IDR_BOOT_LOADER_SERPENT BIN "..\\Boot\\Windows\\Release_Serpent\\BootLoader.com.gz"
+IDR_BOOT_LOADER_TWOFISH BIN "..\\Boot\\Windows\\Release_Twofish\\BootLoader.com.gz"
+IDR_BOOT_LOADER_CAMELLIA BIN "..\\Boot\\Windows\\Release_Camellia\\BootLoader.com.gz"
+
+IDR_BOOT_SECTOR_SHA2 BIN "..\\Boot\\Windows\\Release_SHA2\\BootSector.bin"
+IDR_BOOT_SECTOR_AES_SHA2 BIN "..\\Boot\\Windows\\Release_AES_SHA2\\BootSector.bin"
+IDR_BOOT_SECTOR_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Release_Serpent_SHA2\\BootSector.bin"
+IDR_BOOT_SECTOR_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Release_Twofish_SHA2\\BootSector.bin"
+IDR_BOOT_SECTOR_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Release_Camellia_SHA2\\BootSector.bin"
+IDR_BOOT_LOADER_SHA2 BIN "..\\Boot\\Windows\\Release_SHA2\\BootLoader.com.gz"
+IDR_BOOT_LOADER_AES_SHA2 BIN "..\\Boot\\Windows\\Release_AES_SHA2\\BootLoader.com.gz"
+IDR_BOOT_LOADER_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Release_Serpent_SHA2\\BootLoader.com.gz"
+IDR_BOOT_LOADER_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Release_Twofish_SHA2\\BootLoader.com.gz"
+IDR_BOOT_LOADER_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Release_Camellia_SHA2\\BootLoader.com.gz"
+
+
+IDR_RESCUE_BOOT_SECTOR BIN "..\\Boot\\Windows\\Rescue\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_AES BIN "..\\Boot\\Windows\\Rescue_AES\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_SERPENT BIN "..\\Boot\\Windows\\Rescue_Serpent\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_TWOFISH BIN "..\\Boot\\Windows\\Rescue_Twofish\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_CAMELLIA BIN "..\\Boot\\Windows\\Rescue_Camellia\\BootSector.bin"
+IDR_RESCUE_LOADER BIN "..\\Boot\\Windows\\Rescue\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_AES BIN "..\\Boot\\Windows\\Rescue_AES\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_SERPENT BIN "..\\Boot\\Windows\\Rescue_Serpent\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_TWOFISH BIN "..\\Boot\\Windows\\Rescue_Twofish\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_CAMELLIA BIN "..\\Boot\\Windows\\Rescue_Camellia\\BootLoader.com.gz"
+
+IDR_RESCUE_BOOT_SECTOR_SHA2 BIN "..\\Boot\\Windows\\Rescue_SHA2\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_AES_SHA2 BIN "..\\Boot\\Windows\\Rescue_AES_SHA2\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Rescue_Serpent_SHA2\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Rescue_Twofish_SHA2\\BootSector.bin"
+IDR_RESCUE_BOOT_SECTOR_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Rescue_Camellia_SHA2\\BootSector.bin"
+IDR_RESCUE_LOADER_SHA2 BIN "..\\Boot\\Windows\\Rescue_SHA2\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_AES_SHA2 BIN "..\\Boot\\Windows\\Rescue_AES_SHA2\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_SERPENT_SHA2 BIN "..\\Boot\\Windows\\Rescue_Serpent_SHA2\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_TWOFISH_SHA2 BIN "..\\Boot\\Windows\\Rescue_Twofish_SHA2\\BootLoader.com.gz"
+IDR_RESCUE_LOADER_CAMELLIA_SHA2 BIN "..\\Boot\\Windows\\Rescue_Camellia_SHA2\\BootLoader.com.gz"
+IDR_EFI_DCSBOOT BIN "..\\Boot\\EFI\\DcsBoot.efi"
+IDR_EFI_DCSINT BIN "..\\Boot\\EFI\\DcsInt.efi"
+IDR_EFI_DCSCFG BIN "..\\Boot\\EFI\\DcsCfg.efi"
+IDR_EFI_LEGACYSPEAKER BIN "..\\Boot\\EFI\\LegacySpeaker.efi"
+IDR_EFI_DCSBML BIN "..\\Boot\\EFI\\DcsBml.efi"
+IDR_EFI_DCSRE BIN "..\\Boot\\EFI\\DcsRe.efi"
+IDR_EFI_DCSINFO BIN "..\\Boot\\EFI\\DcsInfo.efi"
+#ifndef WIN64
+IDR_EFI_DCSBOOT32 BIN "..\\Boot\\EFI\\DcsBoot32.efi"
+IDR_EFI_DCSINT32 BIN "..\\Boot\\EFI\\DcsInt32.efi"
+IDR_EFI_DCSCFG32 BIN "..\\Boot\\EFI\\DcsCfg32.efi"
+IDR_EFI_LEGACYSPEAKER32 BIN "..\\Boot\\EFI\\LegacySpeaker32.efi"
+IDR_EFI_DCSBML32 BIN "..\\Boot\\EFI\\DcsBml32.efi"
+IDR_EFI_DCSRE32 BIN "..\\Boot\\EFI\\DcsRe32.efi"
+IDR_EFI_DCSINFO32 BIN "..\\Boot\\EFI\\DcsInfo32.efi"
+#endif
+/////////////////////////////////////////////////////////////////////////////
+//
+// XML
+//
+
+IDR_LANGUAGE XML "..\\Common\\Language.xml"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// HEADER
+//
+
+IDR_COMMON_RSRC_HEADER HEADER "..\\Common\\Resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXT
+//
+
+IDR_LICENSE TEXT "..\\Resources\\Texts\\License.rtf"
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_TRUECRYPT_ICON ICON "..\\Common\\VeraCrypt.ico"
+IDI_TRUECRYPT_VOL_ICON ICON "..\\Common\\VeraCrypt_volume.ico"
+IDI_TRUECRYPT_MOUNTED_ICON ICON "..\\Common\\VeraCrypt_mounted.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_TEXTUAL_LOGO_BKG BITMAP "..\\Common\\Textual_logo_background.bmp"
+IDB_TEXTUAL_LOGO_96DPI BITMAP "..\\Common\\Textual_logo_96dpi.bmp"
+IDB_TEXTUAL_LOGO_288DPI BITMAP "..\\Common\\Textual_logo_288dpi.bmp"
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/Common/Crc.c b/src/Common/Crc.c
index 5a73fc8..295bf8d 100644
--- a/src/Common/Crc.c
+++ b/src/Common/Crc.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Crc.h b/src/Common/Crc.h
index c5be177..53960a7 100644
--- a/src/Common/Crc.h
+++ b/src/Common/Crc.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Crypto.c b/src/Common/Crypto.c
index f0b3759..c0e7792 100644
--- a/src/Common/Crypto.c
+++ b/src/Common/Crypto.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -247,6 +247,14 @@ void EncipherBlocks (int cipher, void *dataPtr, void *ks, size_t blockCount)
#endif
}
#endif
+#if CRYPTOPP_BOOL_X64
+ else if (cipher == TWOFISH) {
+ twofish_encrypt_blocks(ks, data, data, (uint32) blockCount);
+ }
+ else if (cipher == CAMELLIA) {
+ camellia_encrypt_blocks(ks, data, data, (uint32) blockCount);
+ }
+#endif
else if (cipher == GOST89) {
gost_encrypt(data, data, ks, (int)blockCount);
}
@@ -342,6 +350,14 @@ void DecipherBlocks (int cipher, void *dataPtr, void *ks, size_t blockCount)
#endif
}
#endif
+#if CRYPTOPP_BOOL_X64
+ else if (cipher == TWOFISH) {
+ twofish_decrypt_blocks(ks, data, data, (uint32) blockCount);
+ }
+ else if (cipher == CAMELLIA) {
+ camellia_decrypt_blocks(ks, data, data, (uint32) blockCount);
+ }
+#endif
else if (cipher == GOST89) {
gost_decrypt(data, data, ks, (int)blockCount);
}
@@ -418,6 +434,10 @@ BOOL CipherSupportsIntraDataUnitParallelization (int cipher)
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE && !defined (_UEFI)
|| (cipher == SERPENT && HasSSE2())
#endif
+#if CRYPTOPP_BOOL_X64
+ || (cipher == TWOFISH)
+ || (cipher == CAMELLIA)
+#endif
;
}
@@ -749,16 +769,17 @@ Hash *HashGet (int id)
return 0;
}
-
+#ifdef _WIN32
int HashGetIdByName (wchar_t *name)
{
int i;
for (i = 0; Hashes[i].Id != 0; i++)
- if (wcscmp (Hashes[i].Name, name) == 0)
+ if (_wcsicmp (Hashes[i].Name, name) == 0)
return Hashes[i].Id;
return 0;
}
+#endif
const wchar_t *HashGetName (int hashId)
{
@@ -1135,20 +1156,20 @@ static BOOL HwEncryptionDisabled = FALSE;
BOOL IsAesHwCpuSupported ()
{
+#ifdef TC_WINDOWS_BOOT_AES
static BOOL state = FALSE;
static BOOL stateValid = FALSE;
if (!stateValid)
{
-#ifdef TC_WINDOWS_BOOT_AES
state = is_aes_hw_cpu_supported() ? TRUE : FALSE;
-#else
- state = g_hasAESNI ? TRUE : FALSE;
-#endif
stateValid = TRUE;
}
return state && !HwEncryptionDisabled;
+#else
+ return (HasAESNI() && !HwEncryptionDisabled)? TRUE : FALSE;
+#endif
}
void EnableHwEncryption (BOOL enable)
diff --git a/src/Common/Crypto.h b/src/Common/Crypto.h
index 8e8bace..6f9d65e 100644
--- a/src/Common/Crypto.h
+++ b/src/Common/Crypto.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -363,7 +363,9 @@ BOOL EAIsModeSupported (int ea, int testedMode);
#ifndef TC_WINDOWS_BOOT
const wchar_t *HashGetName (int hash_algo_id);
-
+#ifdef _WIN32
+int HashGetIdByName (wchar_t *name);
+#endif
Hash *HashGet (int id);
void HashGetName2 (wchar_t *buf, int hashId);
BOOL HashIsDeprecated (int hashId);
diff --git a/src/Common/Dictionary.c b/src/Common/Dictionary.c
index c6135e3..47dcb0a 100644
--- a/src/Common/Dictionary.c
+++ b/src/Common/Dictionary.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Dictionary.h b/src/Common/Dictionary.h
index 97c7938..f0be218 100644
--- a/src/Common/Dictionary.h
+++ b/src/Common/Dictionary.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c
index 04fec47..702ba4e 100644
--- a/src/Common/Dlgcode.c
+++ b/src/Common/Dlgcode.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -26,6 +26,11 @@
#include <time.h>
#include <tchar.h>
#include <Richedit.h>
+#ifdef TCMOUNT
+#include <Shlwapi.h>
+#include <process.h>
+#include <Tlhelp32.h>
+#endif
#include "Resource.h"
@@ -54,6 +59,7 @@
#include "Xts.h"
#include "Boot/Windows/BootCommon.h"
#include "Progress.h"
+#include "zip.h"
#ifdef TCMOUNT
#include "Mount/Mount.h"
@@ -68,8 +74,22 @@
#include "Setup/Setup.h"
#endif
+#include <Setupapi.h>
#include <strsafe.h>
+#pragma comment( lib, "setupapi.lib" )
+
+/* GPT Partition Type GUIDs */
+#define LOCAL_DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) const GUID name = {l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8}
+LOCAL_DEFINE_GUID(PARTITION_ENTRY_UNUSED_GUID, 0x00000000L, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); // Entry unused
+LOCAL_DEFINE_GUID(PARTITION_SYSTEM_GUID, 0xC12A7328L, 0xF81F, 0x11D2, 0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B); // EFI system partition
+LOCAL_DEFINE_GUID(PARTITION_MSFT_RESERVED_GUID, 0xE3C9E316L, 0x0B5C, 0x4DB8, 0x81, 0x7D, 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE); // Microsoft reserved space
+LOCAL_DEFINE_GUID(PARTITION_BASIC_DATA_GUID, 0xEBD0A0A2L, 0xB9E5, 0x4433, 0x87, 0xC0, 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7); // Basic data partition
+LOCAL_DEFINE_GUID(PARTITION_LDM_METADATA_GUID, 0x5808C8AAL, 0x7E8F, 0x42E0, 0x85, 0xD2, 0xE1, 0xE9, 0x04, 0x34, 0xCF, 0xB3); // Logical Disk Manager metadata partition
+LOCAL_DEFINE_GUID(PARTITION_LDM_DATA_GUID, 0xAF9B60A0L, 0x1431, 0x4F62, 0xBC, 0x68, 0x33, 0x11, 0x71, 0x4A, 0x69, 0xAD); // Logical Disk Manager data partition
+LOCAL_DEFINE_GUID(PARTITION_MSFT_RECOVERY_GUID, 0xDE94BBA4L, 0x06D1, 0x4D40, 0xA1, 0x6A, 0xBF, 0xD5, 0x01, 0x79, 0xD6, 0xAC); // Microsoft recovery partition
+LOCAL_DEFINE_GUID(PARTITION_CLUSTER_GUID, 0xdb97dba9L, 0x0840, 0x4bae, 0x97, 0xf0, 0xff, 0xb9, 0xa3, 0x27, 0xc7, 0xe1); // Cluster metadata partition
+
using namespace VeraCrypt;
LONG DriverVersion;
@@ -108,6 +128,9 @@ BOOL bShowDisconnectedNetworkDrives = FALSE;
BOOL bHideWaitingDialog = FALSE;
BOOL bCmdHideWaitingDialog = FALSE;
BOOL bCmdHideWaitingDialogValid = FALSE;
+BOOL bUseSecureDesktop = FALSE;
+BOOL bCmdUseSecureDesktop = FALSE;
+BOOL bCmdUseSecureDesktopValid = FALSE;
BOOL bStartOnLogon = FALSE;
BOOL bMountDevicesOnLogon = FALSE;
BOOL bMountFavoritesOnLogon = FALSE;
@@ -165,6 +188,13 @@ volatile HANDLE hAppSetupMutex = NULL;
/* Critical section used to protect access to global variables used in WNetGetConnection calls */
CRITICAL_SECTION csWNetCalls;
+/* Critical section used to protect access to global list of physical drives */
+CRITICAL_SECTION csMountableDevices;
+CRITICAL_SECTION csVolumeIdCandidates;
+
+static std::vector<HostDevice> mountableDevices;
+static std::vector<HostDevice> rawHostDeviceList;
+
HINSTANCE hInst = NULL;
HCURSOR hCursor = NULL;
@@ -359,6 +389,19 @@ typedef struct
} MULTI_CHOICE_DLGPROC_PARAMS;
+void InitGlobalLocks ()
+{
+ InitializeCriticalSection (&csWNetCalls);
+ InitializeCriticalSection (&csMountableDevices);
+ InitializeCriticalSection (&csVolumeIdCandidates);
+}
+
+void FinalizeGlobalLocks ()
+{
+ DeleteCriticalSection (&csWNetCalls);
+ DeleteCriticalSection (&csMountableDevices);
+ DeleteCriticalSection (&csVolumeIdCandidates);
+}
void cleanup ()
{
@@ -438,7 +481,7 @@ void cleanup ()
EncryptionThreadPoolStop();
#endif
- DeleteCriticalSection (&csWNetCalls);
+ FinalizeGlobalLocks ();
}
@@ -515,6 +558,20 @@ size_t TrimWhiteSpace(wchar_t *str)
return out_size;
}
+BOOL IsNullTerminateString (const wchar_t* str, size_t cbSize)
+{
+ if (str && cbSize)
+ {
+ for (size_t i = 0; i < cbSize; i++)
+ {
+ if (str[i] == 0)
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
// check the validity of a file name
BOOL IsValidFileName(const wchar_t* str)
{
@@ -1210,18 +1267,18 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam
L"Based on TrueCrypt 7.1a, freely available at http://www.truecrypt.org/ .\r\n\r\n"
L"Portions of this software:\r\n"
- L"Copyright \xA9 2013-2016 IDRIX. All rights reserved.\r\n"
+ L"Copyright \xA9 2013-2017 IDRIX. All rights reserved.\r\n"
L"Copyright \xA9 2003-2012 TrueCrypt Developers Association. All Rights Reserved.\r\n"
L"Copyright \xA9 1998-2000 Paul Le Roux. All Rights Reserved.\r\n"
L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\r\n"
- L"Copyright \xA9 1995-2013 Jean-loup Gailly and Mark Adler.\r\n"
+ L"Copyright \xA9 1995-2017 Jean-loup Gailly and Mark Adler.\r\n"
L"Copyright \xA9 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov.\r\n"
L"Copyright \xA9 Dieter Baron and Thomas Klausner.\r\n"
L"Copyright \xA9 2013, Alexey Degtyarev. All rights reserved.\r\n"
L"Copyright \xA9 1999-2013,2014,2015,2016 Jack Lloyd. All rights reserved.\r\n\r\n"
L"This software as a whole:\r\n"
- L"Copyright \xA9 2013-2016 IDRIX. All rights reserved.\r\n\r\n"
+ L"Copyright \xA9 2013-2017 IDRIX. All rights reserved.\r\n\r\n"
L"An IDRIX Release");
@@ -1236,7 +1293,7 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam
if (lw == IDC_HOMEPAGE)
{
- Applink ("main", TRUE, "");
+ Applink ("main");
return 1;
}
@@ -2514,7 +2571,7 @@ void DoPostInstallTasks (HWND hwndDlg)
if (FileExists (GetConfigPath (TC_APPD_FILENAME_POST_INSTALL_TASK_TUTORIAL)))
{
if (AskYesNo ("AFTER_INSTALL_TUTORIAL", hwndDlg) == IDYES)
- Applink ("beginnerstutorial", TRUE, "");
+ Applink ("beginnerstutorial");
bDone = TRUE;
}
@@ -2522,7 +2579,7 @@ void DoPostInstallTasks (HWND hwndDlg)
if (FileExists (GetConfigPath (TC_APPD_FILENAME_POST_INSTALL_TASK_RELEASE_NOTES)))
{
if (AskYesNo ("AFTER_UPGRADE_RELEASE_NOTES", hwndDlg) == IDYES)
- Applink ("releasenotes", TRUE, "");
+ Applink ("releasenotes");
bDone = TRUE;
}
@@ -2531,13 +2588,34 @@ void DoPostInstallTasks (HWND hwndDlg)
SavePostInstallTasksSettings (TC_POST_INSTALL_CFG_REMOVE_ALL);
}
+/*
+ * Use RtlGetVersion to get Windows version because GetVersionEx is affected by application manifestation.
+ */
+typedef NTSTATUS (WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);
+
+static BOOL GetWindowsVersion(LPOSVERSIONINFOW lpVersionInformation)
+{
+ BOOL bRet = FALSE;
+ RtlGetVersionPtr RtlGetVersionFn = (RtlGetVersionPtr) GetProcAddress(GetModuleHandle (L"ntdll.dll"), "RtlGetVersion");
+ if (RtlGetVersionFn != NULL)
+ {
+ if (ERROR_SUCCESS == RtlGetVersionFn (lpVersionInformation))
+ bRet = TRUE;
+ }
+
+ if (!bRet)
+ bRet = GetVersionExW (lpVersionInformation);
+
+ return bRet;
+}
+
void InitOSVersionInfo ()
{
OSVERSIONINFOEXW os;
os.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEXW);
- if (GetVersionExW ((LPOSVERSIONINFOW) &os) == FALSE)
+ if (GetWindowsVersion ((LPOSVERSIONINFOW) &os) == FALSE)
AbortProcess ("NO_OS_VER");
CurrentOSMajor = os.dwMajorVersion;
@@ -2627,7 +2705,7 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine)
VirtualLock (&CmdTokenPin, sizeof (CmdTokenPin));
- InitializeCriticalSection (&csWNetCalls);
+ InitGlobalLocks ();
LoadSystemDll (L"ntmarta.dll", &hntmartadll, TRUE, SRC_POS);
LoadSystemDll (L"MPR.DLL", &hmprdll, TRUE, SRC_POS);
@@ -2999,11 +3077,11 @@ void InitHelpFileName (void)
if (strcmp (GetPreferredLangId(), "en") == 0
|| strlen(GetPreferredLangId()) == 0)
{
- StringCbCatW (szHelpFile, sizeof(szHelpFile), L"VeraCrypt User Guide.pdf");
+ StringCbCatW (szHelpFile, sizeof(szHelpFile), L"docs\\VeraCrypt User Guide.chm");
}
else
{
- StringCbPrintfW (szTemp, sizeof(szTemp), L"VeraCrypt User Guide.%S.pdf", GetPreferredLangId());
+ StringCbPrintfW (szTemp, sizeof(szTemp), L"docs\\VeraCrypt User Guide.%S.chm", GetPreferredLangId());
StringCbCatW (szHelpFile, sizeof(szHelpFile), szTemp);
}
@@ -3014,12 +3092,13 @@ void InitHelpFileName (void)
{
++lpszTmp;
*lpszTmp = 0;
- StringCbCatW (szHelpFile2, sizeof(szHelpFile2), L"VeraCrypt User Guide.pdf");
+ StringCbCatW (szHelpFile2, sizeof(szHelpFile2), L"docs\\VeraCrypt User Guide.chm");
}
}
}
-BOOL OpenDevice (const wchar_t *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectFilesystem, BOOL matchVolumeID, const BYTE* pbVolumeID)
+#ifndef SETUP
+BOOL OpenDevice (const wchar_t *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectFilesystem, BOOL computeVolumeIDs)
{
DWORD dwResult;
BOOL bResult;
@@ -3032,9 +3111,7 @@ BOOL OpenDevice (const wchar_t *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectF
driver->bDetectTCBootLoader = FALSE;
driver->DetectFilesystem = detectFilesystem;
- driver->bMatchVolumeID = matchVolumeID;
- if (matchVolumeID && pbVolumeID)
- memcpy (driver->volumeID, pbVolumeID, VOLUME_ID_SIZE);
+ driver->bComputeVolumeIDs = computeVolumeIDs;
bResult = DeviceIoControl (hDriver, TC_IOCTL_OPEN_TEST,
driver, sizeof (OPEN_TEST_STRUCT),
@@ -3062,7 +3139,7 @@ BOOL OpenDevice (const wchar_t *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectF
{
driver->TCBootLoaderDetected = FALSE;
driver->FilesystemDetected = FALSE;
- driver->VolumeIDMatched = FALSE;
+ memset (driver->VolumeIDComputed, 0, sizeof (driver->VolumeIDComputed));
return TRUE;
}
else
@@ -3072,6 +3149,7 @@ BOOL OpenDevice (const wchar_t *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectF
return TRUE;
}
+#endif
// Tells the driver that it's running in portable mode
void NotifyDriverOfPortableMode (void)
@@ -3093,6 +3171,7 @@ BOOL GetDriveLabel (int driveNo, wchar_t *label, int labelSize)
return GetVolumeInformationW (root, label, labelSize / 2, NULL, NULL, &fileSystemFlags, NULL, 0);
}
+#ifndef SETUP
/* Stores the device path of the system partition in SysPartitionDevicePath and the device path of the system drive
in SysDriveDevicePath.
@@ -3245,6 +3324,7 @@ int IsNonSysPartitionOnSysDrive (const wchar_t *path)
}
}
+#endif //!SETUP
wstring GetSysEncryptionPretestInfo2String (void)
{
@@ -3303,6 +3383,91 @@ wstring GetDecoyOsInstructionsString (void)
+ GetString ("DECOY_OS_INSTRUCTIONS_PORTION_18"));
}
+struct _TEXT_EDIT_DIALOG_PARAM {
+ BOOL ReadOnly;
+ std::string& Text;
+ const WCHAR* Title;
+
+ _TEXT_EDIT_DIALOG_PARAM(BOOL _readOnly, const WCHAR* title, std::string& _text) : Title(title), Text(_text), ReadOnly(_readOnly) {}
+ _TEXT_EDIT_DIALOG_PARAM& operator=( const _TEXT_EDIT_DIALOG_PARAM& other) {
+ ReadOnly = other.ReadOnly;
+ Text = other.Text;
+ Title = other.Title;
+ return *this;
+}
+};
+typedef struct _TEXT_EDIT_DIALOG_PARAM TEXT_INFO_DIALOG_PARAM,*TEXT_INFO_DIALOG_PARAM_PTR;
+
+INT_PTR TextEditDialogBox (BOOL readOnly, HWND parent, const WCHAR* Title, std::string& text)
+{
+ TEXT_INFO_DIALOG_PARAM pm(readOnly, Title, text);
+ return DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_TEXT_EDIT_DLG), parent, (DLGPROC) TextEditDlgProc, (LPARAM) &pm);
+}
+
+BOOL CALLBACK TextEditDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ WORD lw = LOWORD (wParam);
+ static int nID = 0;
+ static TEXT_INFO_DIALOG_PARAM_PTR prm;
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ {
+ prm = (TEXT_INFO_DIALOG_PARAM_PTR)lParam;
+ // increase size limit of rich edit control
+ SendMessage(GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), EM_EXLIMITTEXT, 0, -1);
+
+ SetWindowTextW (hwndDlg, prm->Title);
+ // Left margin for rich edit text field
+ SendMessage (GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), EM_SETMARGINS, (WPARAM) EC_LEFTMARGIN, (LPARAM) CompensateXDPI (4));
+
+ if (prm->ReadOnly)
+ {
+ // switch rich edit control to ReadOnly
+ SendMessage(GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), ES_READONLY, TRUE, 0);
+ // hide cancel button
+ ShowWindow(GetDlgItem(hwndDlg, IDCANCEL), SW_HIDE);
+ }
+
+ SendMessage (hwndDlg, TC_APPMSG_LOAD_TEXT_BOX_CONTENT, 0, 0);
+ }
+ return 0;
+
+ case WM_COMMAND:
+ if (lw == IDOK )
+ {
+ if (!prm->ReadOnly)
+ {
+ prm->Text.resize(GetWindowTextLengthA (GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT)) + 1);
+ GetWindowTextA (GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), &(prm->Text)[0], (int) prm->Text.size());
+ }
+ NormalCursor ();
+ EndDialog (hwndDlg, IDOK);
+ return 1;
+ }
+
+ if (lw == IDCANCEL )
+ {
+ NormalCursor ();
+ EndDialog (hwndDlg, IDCANCEL);
+ return 1;
+ }
+ return 0;
+
+ case TC_APPMSG_LOAD_TEXT_BOX_CONTENT:
+ {
+ SetWindowTextA (GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), prm->Text.c_str());
+ }
+ return 0;
+
+ case WM_CLOSE:
+ NormalCursor ();
+ EndDialog (hwndDlg, 0);
+ return 1;
+ }
+
+ return 0;
+}
INT_PTR TextInfoDialogBox (int nID)
{
@@ -3468,6 +3633,7 @@ char * GetLegalNotices ()
return buf;
}
+#ifndef SETUP
BOOL CALLBACK RawDevicesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
@@ -3826,6 +3992,7 @@ BOOL CALLBACK RawDevicesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l
return 0;
}
+#endif //!SETUP
BOOL DoDriverInstall (HWND hwndDlg)
{
@@ -4794,9 +4961,6 @@ wstring GetUserFriendlyVersionString (int version)
versionString.insert (version > 0xfff ? 2 : 1,L".");
- if (versionString[versionString.length()-1] == L'0')
- versionString.erase (versionString.length()-1, 1);
-
return (versionString);
}
@@ -5134,7 +5298,7 @@ static BOOL PerformBenchmark(HWND hBenchDlg, HWND hwndDlg)
startDataUnitNo.Value = 0;
/* set priority to critical only when there are 2 or more CPUs on the system */
- if (sysInfo.dwNumberOfProcessors > 1)
+ if (sysInfo.dwNumberOfProcessors > 1 && (benchmarkType != BENCHMARK_TYPE_ENCRYPTION))
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
ci = crypto_open ();
@@ -5643,7 +5807,7 @@ BOOL CALLBACK BenchmarkDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP
if (benchmarkType == BENCHMARK_TYPE_PRF)
{
- benchmarkPim = GetPim (hwndDlg, IDC_PIM);
+ benchmarkPim = GetPim (hwndDlg, IDC_PIM, 0);
benchmarkPreBoot = GetCheckBox (hwndDlg, IDC_BENCHMARK_PREBOOT);
}
else
@@ -5670,12 +5834,12 @@ BOOL CALLBACK BenchmarkDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP
case IDC_HW_AES_LABEL_LINK:
- Applink ("hwacceleration", TRUE, "");
+ Applink ("hwacceleration");
return 1;
case IDC_PARALLELIZATION_LABEL_LINK:
- Applink ("parallelization", TRUE, "");
+ Applink ("parallelization");
return 1;
case IDCLOSE:
@@ -6959,6 +7123,28 @@ void CorrectFileName (wchar_t* fileName)
}
}
+void CorrectFileName (std::wstring& fileName)
+{
+ /* replace '/' by '\' */
+ size_t i, len = fileName.length();
+ for (i = 0; i < len; i++)
+ {
+ if (fileName [i] == L'/')
+ fileName [i] = L'\\';
+ }
+}
+
+void CorrectURL (wchar_t* fileName)
+{
+ /* replace '\' by '/' */
+ size_t i, len = wcslen (fileName);
+ for (i = 0; i < len; i++)
+ {
+ if (fileName [i] == L'\\')
+ fileName [i] = L'/';
+ }
+}
+
void IncreaseWrongPwdRetryCount (int count)
{
WrongPwdRetryCounter += count;
@@ -6988,8 +7174,8 @@ DWORD GetUsedLogicalDrives (void)
finally_do ({ LeaveCriticalSection (&csWNetCalls); });
- /* update values every 2 seconds to reduce CPU consumption */
- if ((time (NULL) - g_lastCallTime) > 2)
+ /* update values every 1 minute to reduce CPU consumption */
+ if ((time (NULL) - g_lastCallTime) > 60)
{
/* detect disconnected mapped network shares and removed
* their associated drives from the list
@@ -7193,36 +7379,96 @@ void BroadcastDeviceChange (WPARAM message, int nDosDriveNo, DWORD driveMap)
IgnoreWmDeviceChange = FALSE;
}
-BOOL GetPhysicalDriveAlignment(UINT nDriveNumber, STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR* pDesc)
+static BOOL GetDeviceStorageProperty (HANDLE hDevice, STORAGE_PROPERTY_ID propertyId, DWORD dwDescSize, void* pDesc)
{
DWORD dwRet = NO_ERROR;
if (!pDesc)
return FALSE;
- // Format physical drive path (may be '\\.\PhysicalDrive0', '\\.\PhysicalDrive1' and so on).
- TCHAR strDrivePath[512];
- StringCbPrintf(strDrivePath, sizeof(strDrivePath), _T("\\\\.\\PhysicalDrive%u"), nDriveNumber);
-
- // Get a handle to physical drive
- HANDLE hDevice = ::CreateFile(strDrivePath, 0, FILE_SHARE_READ,
- NULL, OPEN_EXISTING, 0, NULL);
-
- if(INVALID_HANDLE_VALUE == hDevice)
- return FALSE;
+ ZeroMemory (pDesc, dwDescSize);
// Set the input data structure
STORAGE_PROPERTY_QUERY storagePropertyQuery;
ZeroMemory(&storagePropertyQuery, sizeof(STORAGE_PROPERTY_QUERY));
- storagePropertyQuery.PropertyId = StorageAccessAlignmentProperty;
+ storagePropertyQuery.PropertyId = propertyId;
storagePropertyQuery.QueryType = PropertyStandardQuery;
// Get the necessary output buffer size
+ STORAGE_DESCRIPTOR_HEADER descHeader = {0};
DWORD dwBytesReturned = 0;
BOOL bRet = ::DeviceIoControl(hDevice, IOCTL_STORAGE_QUERY_PROPERTY,
&storagePropertyQuery, sizeof(STORAGE_PROPERTY_QUERY),
- pDesc, sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
+ &descHeader, sizeof(STORAGE_DESCRIPTOR_HEADER),
&dwBytesReturned, NULL);
+ if (bRet)
+ {
+ if (dwBytesReturned == sizeof(STORAGE_DESCRIPTOR_HEADER))
+ {
+ unsigned char* outputBuffer = (unsigned char*) TCalloc (descHeader.Size);
+ bRet = ::DeviceIoControl(hDevice, IOCTL_STORAGE_QUERY_PROPERTY,
+ &storagePropertyQuery, sizeof(STORAGE_PROPERTY_QUERY),
+ outputBuffer, descHeader.Size,
+ &dwBytesReturned, NULL);
+ if (bRet)
+ {
+ if (dwBytesReturned >= dwDescSize)
+ {
+ memcpy (pDesc, outputBuffer, dwDescSize);
+ ((STORAGE_DESCRIPTOR_HEADER*)pDesc)->Version = dwDescSize;
+ ((STORAGE_DESCRIPTOR_HEADER*)pDesc)->Size = dwDescSize;
+ }
+ else
+ {
+ bRet = FALSE;
+ dwRet = ERROR_UNHANDLED_ERROR;
+ }
+ }
+ else
+ dwRet = ::GetLastError();
+ TCfree (outputBuffer);
+ }
+ else
+ {
+ bRet = FALSE;
+ dwRet = ERROR_UNHANDLED_ERROR;
+ }
+ }
+ else
+ dwRet = ::GetLastError();
+
+ if (!bRet)
+ {
+ SetLastError (dwRet);
+ return FALSE;
+ }
+ else
+ return TRUE;
+}
+
+BOOL GetPhysicalDriveStorageInformation(UINT nDriveNumber, STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR* pAlignmentDesc, STORAGE_ADAPTER_DESCRIPTOR* pAdapterDesc)
+{
+ DWORD dwRet = NO_ERROR;
+
+ if (!pAlignmentDesc || pAdapterDesc)
+ {
+ SetLastError (ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
+ // Format physical drive path (may be '\\.\PhysicalDrive0', '\\.\PhysicalDrive1' and so on).
+ TCHAR strDrivePath[512];
+ StringCbPrintf(strDrivePath, sizeof(strDrivePath), _T("\\\\.\\PhysicalDrive%u"), nDriveNumber);
+
+ // Get a handle to physical drive
+ HANDLE hDevice = ::CreateFile(strDrivePath, 0, FILE_SHARE_READ,
+ NULL, OPEN_EXISTING, 0, NULL);
+
+ if(INVALID_HANDLE_VALUE == hDevice)
+ return FALSE;
+
+ BOOL bRet = (GetDeviceStorageProperty (hDevice, StorageAccessAlignmentProperty, sizeof (STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR), pAlignmentDesc)
+ || GetDeviceStorageProperty (hDevice, StorageAdapterProperty, sizeof (STORAGE_ADAPTER_DESCRIPTOR), pAdapterDesc))? TRUE : FALSE;
dwRet = ::GetLastError();
::CloseHandle(hDevice);
@@ -7235,6 +7481,8 @@ BOOL GetPhysicalDriveAlignment(UINT nDriveNumber, STORAGE_ACCESS_ALIGNMENT_DESCR
return TRUE;
}
+#ifndef SETUP
+
/************************************************************/
// implementation of the generic wait dialog mechanism
@@ -7372,16 +7620,16 @@ void ShowWaitDialog(HWND hwnd, BOOL bUseHwndAsParent, WaitThreadProc callback, v
else
{
BOOL bIsForeground = FALSE;
+ HWND creatorWnd = hwnd? hwnd : MainDlg;
WaitDialogDisplaying = TRUE;
- if (hwnd)
+ if (creatorWnd)
{
- if (GetForegroundWindow () == hwnd)
+ if (GetForegroundWindow () == creatorWnd)
bIsForeground = TRUE;
- EnableWindow (hwnd, FALSE);
+ EnableWindow (creatorWnd, FALSE);
}
- else
- EnableWindow (MainDlg, FALSE);
- finally_do_arg2 (HWND, hwnd, BOOL, bIsForeground, { if (finally_arg) {EnableWindow(finally_arg, TRUE); if (finally_arg2) BringToForeground (finally_arg);} else EnableWindow (MainDlg, TRUE);});
+
+ finally_do_arg2 (HWND, creatorWnd, BOOL, bIsForeground, { if (finally_arg) { EnableWindow(finally_arg, TRUE); if (finally_arg2) BringToForeground (finally_arg);}});
DialogBoxParamW (hInst,
MAKEINTRESOURCEW (IDD_STATIC_MODAL_WAIT_DLG), hParent,
@@ -7391,6 +7639,7 @@ void ShowWaitDialog(HWND hwnd, BOOL bUseHwndAsParent, WaitThreadProc callback, v
}
}
+#ifndef SETUP
/************************************************************************/
static BOOL PerformMountIoctl (MOUNT_STRUCT* pmount, LPDWORD pdwResult, BOOL useVolumeID, BYTE volumeID[VOLUME_ID_SIZE])
@@ -7584,6 +7833,13 @@ retry:
if (!bDevice)
{
+ // put default values
+ mount.BytesPerSector = 512;
+ mount.BytesPerPhysicalSector = 512;
+ mount.MaximumTransferLength = 65536;
+ mount.MaximumPhysicalPages = 17;
+ mount.AlignmentMask = 0;
+
// UNC path
if (path.find (L"\\\\") == 0)
{
@@ -7618,11 +7874,23 @@ retry:
{
if (extents.NumberOfDiskExtents > 0)
{
- STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR desc;
- if (GetPhysicalDriveAlignment (extents.Extents[0].DiskNumber, &desc))
+ STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR accessDesc;
+ STORAGE_ADAPTER_DESCRIPTOR adapterDesc;
+
+ if (GetPhysicalDriveStorageInformation (extents.Extents[0].DiskNumber, &accessDesc, &adapterDesc))
{
- mount.BytesPerSector = desc.BytesPerLogicalSector;
- mount.BytesPerPhysicalSector = desc.BytesPerPhysicalSector;
+ if (accessDesc.Size >= sizeof (STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR))
+ {
+ mount.BytesPerSector = accessDesc.BytesPerLogicalSector;
+ mount.BytesPerPhysicalSector = accessDesc.BytesPerPhysicalSector;
+ }
+
+ if (adapterDesc.Size >= sizeof (STORAGE_ADAPTER_DESCRIPTOR))
+ {
+ mount.MaximumTransferLength = adapterDesc.MaximumTransferLength;
+ mount.MaximumPhysicalPages = adapterDesc.MaximumPhysicalPages;
+ mount.AlignmentMask = adapterDesc.AlignmentMask;
+ }
}
}
}
@@ -7851,6 +8119,8 @@ retry:
return 1;
}
+#endif
+
typedef struct
{
int nDosDriveNo;
@@ -7949,7 +8219,6 @@ BOOL UnmountVolumeAfterFormatExCall (HWND hwndDlg, int nDosDriveNo)
return UnmountVolumeBase (hwndDlg, nDosDriveNo, FALSE, TRUE);
}
-
BOOL IsPasswordCacheEmpty (void)
{
DWORD dw;
@@ -7963,13 +8232,23 @@ BOOL IsMountedVolumeID (BYTE volumeID[VOLUME_ID_SIZE])
int i;
memset (&mlist, 0, sizeof (mlist));
- DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
- sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
- NULL);
+ if ( !DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
+ sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
+ NULL)
+ || (mlist.ulMountedDrives >= (1 << 26))
+ )
+ {
+ return FALSE;
+ }
- for (i=0 ; i<26; i++)
- if (0 == memcmp (mlist.volumeID[i], volumeID, VOLUME_ID_SIZE))
- return TRUE;
+ if (mlist.ulMountedDrives)
+ {
+ for (i=0 ; i<26; i++)
+ {
+ if ((mlist.ulMountedDrives & (1 << i)) && (0 == memcmp (mlist.volumeID[i], volumeID, VOLUME_ID_SIZE)))
+ return TRUE;
+ }
+ }
return FALSE;
}
@@ -8002,13 +8281,28 @@ BOOL IsMountedVolume (const wchar_t *volname)
StringCbCopyW (volume, sizeof (volume), resolvedPath.c_str());
memset (&mlist, 0, sizeof (mlist));
- DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
- sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
- NULL);
+ if ( !DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
+ sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
+ NULL)
+ || (mlist.ulMountedDrives >= (1 << 26))
+ )
+ {
+ return FALSE;
+ }
- for (i=0 ; i<26; i++)
- if (0 == _wcsicmp ((wchar_t *) mlist.wszVolume[i], volume))
- return TRUE;
+ if (mlist.ulMountedDrives)
+ {
+ for (i=0 ; i<26; i++)
+ {
+ if ((mlist.ulMountedDrives & (1 << i))
+ && IsNullTerminateString (mlist.wszVolume[i], TC_MAX_PATH)
+ && (0 == _wcsicmp ((wchar_t *) mlist.wszVolume[i], volume))
+ )
+ {
+ return TRUE;
+ }
+ }
+ }
}
return FALSE;
@@ -8035,17 +8329,33 @@ int GetMountedVolumeDriveNo (wchar_t *volname)
StringCbCopyW (volume, sizeof (volume), resolvedPath.c_str());
memset (&mlist, 0, sizeof (mlist));
- DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
- sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
- NULL);
+ if ( !DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
+ sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
+ NULL)
+ || (mlist.ulMountedDrives >= (1 << 26))
+ )
+ {
+ return -1;
+ }
- for (i=0 ; i<26; i++)
- if (0 == _wcsicmp ((wchar_t *) mlist.wszVolume[i], (WCHAR *)volume))
- return i;
+ if (mlist.ulMountedDrives)
+ {
+ for (i=0 ; i<26; i++)
+ {
+ if ((mlist.ulMountedDrives & (1 << i))
+ && IsNullTerminateString (mlist.wszVolume[i], TC_MAX_PATH)
+ && (0 == _wcsicmp ((wchar_t *) mlist.wszVolume[i], (WCHAR *)volume))
+ )
+ {
+ return i;
+ }
+ }
+ }
return -1;
}
+#endif //!SETUP
BOOL IsAdmin (void)
{
@@ -8145,29 +8455,31 @@ BOOL GetDeviceInfo (const wchar_t *deviceName, DISK_PARTITION_INFO_STRUCT *info)
return DeviceIoControl (hDriver, TC_IOCTL_GET_DRIVE_PARTITION_INFO, info, sizeof (*info), info, sizeof (*info), &dwResult, NULL);
}
-
-BOOL GetDriveGeometry (const wchar_t *deviceName, PDISK_GEOMETRY diskGeometry)
+#ifndef SETUP
+BOOL GetDriveGeometry (const wchar_t *deviceName, PDISK_GEOMETRY_EX diskGeometry)
{
BOOL bResult;
DWORD dwResult;
- DISK_GEOMETRY_STRUCT dg;
+ DISK_GEOMETRY_EX_STRUCT dg;
memset (&dg, 0, sizeof(dg));
StringCbCopyW ((PWSTR) &dg.deviceName, sizeof(dg.deviceName), deviceName);
- bResult = DeviceIoControl (hDriver, TC_IOCTL_GET_DRIVE_GEOMETRY, &dg,
+ bResult = DeviceIoControl (hDriver, VC_IOCTL_GET_DRIVE_GEOMETRY_EX, &dg,
sizeof (dg), &dg, sizeof (dg), &dwResult, NULL);
if (bResult && (dwResult == sizeof (dg)) && dg.diskGeometry.BytesPerSector)
{
- memcpy (diskGeometry, &dg.diskGeometry, sizeof (DISK_GEOMETRY));
+ ZeroMemory (diskGeometry, sizeof (DISK_GEOMETRY_EX));
+ memcpy (&diskGeometry->Geometry, &dg.diskGeometry, sizeof (DISK_GEOMETRY));
+ diskGeometry->DiskSize.QuadPart = dg.DiskSize.QuadPart;
return TRUE;
}
else
return FALSE;
}
-BOOL GetPhysicalDriveGeometry (int driveNumber, PDISK_GEOMETRY diskGeometry)
+BOOL GetPhysicalDriveGeometry (int driveNumber, PDISK_GEOMETRY_EX diskGeometry)
{
HANDLE hDev;
BOOL bResult = FALSE;
@@ -8179,11 +8491,11 @@ BOOL GetPhysicalDriveGeometry (int driveNumber, PDISK_GEOMETRY diskGeometry)
{
DWORD bytesRead = 0;
- ZeroMemory (diskGeometry, sizeof (DISK_GEOMETRY));
+ ZeroMemory (diskGeometry, sizeof (DISK_GEOMETRY_EX));
- if ( DeviceIoControl (hDev, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, diskGeometry, sizeof (DISK_GEOMETRY), &bytesRead, NULL)
- && (bytesRead == sizeof (DISK_GEOMETRY))
- && diskGeometry->BytesPerSector)
+ if ( DeviceIoControl (hDev, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, diskGeometry, sizeof (DISK_GEOMETRY_EX), &bytesRead, NULL)
+ && (bytesRead == sizeof (DISK_GEOMETRY_EX))
+ && diskGeometry->Geometry.BytesPerSector)
{
bResult = TRUE;
}
@@ -8193,7 +8505,7 @@ BOOL GetPhysicalDriveGeometry (int driveNumber, PDISK_GEOMETRY diskGeometry)
return bResult;
}
-
+#endif
// Returns drive letter number assigned to device (-1 if none)
int GetDiskDeviceDriveLetter (PWSTR deviceName)
@@ -8559,6 +8871,63 @@ BOOL TCCopyFile (wchar_t *sourceFileName, wchar_t *destinationFile)
return TCCopyFileBase (src, dst);
}
+BOOL DecompressZipToDir (const unsigned char *inputBuffer, DWORD inputLength, const wchar_t *destinationDir, ProgressFn progressFnPtr, HWND hwndDlg)
+{
+ BOOL res = TRUE;
+ zip_error_t zerr;
+ zip_int64_t numFiles, i;
+ zip_stat_t sb;
+ zip_source_t* zsrc = zip_source_buffer_create (inputBuffer, inputLength, 0, &zerr);
+ if (!zsrc)
+ return FALSE;
+ zip_t* z = zip_open_from_source (zsrc, ZIP_CHECKCONS | ZIP_RDONLY, &zerr);
+ if (!z)
+ {
+ zip_source_free (zsrc);
+ return FALSE;
+ }
+
+ finally_do_arg (zip_t*, z, { zip_close (finally_arg); });
+
+ numFiles = zip_get_num_entries (z, 0);
+ if (numFiles <= 0)
+ return FALSE;
+
+ for (i = 0; (i < numFiles) && res; i++)
+ {
+ ZeroMemory (&sb, sizeof (sb));
+ if ((0 == zip_stat_index (z, i, 0, &sb)) && (sb.valid & (ZIP_STAT_NAME | ZIP_STAT_SIZE)) && (sb.size > 0))
+ {
+ std::wstring wname = Utf8StringToWide (sb.name);
+ CorrectFileName (wname);
+
+ std::wstring filePath = destinationDir + wname;
+ size_t pos = filePath.find_last_of (L"/\\");
+ // create the parent directory if it doesn't exist
+ if (pos != std::wstring::npos)
+ {
+ SHCreateDirectoryEx (NULL, filePath.substr (0, pos).c_str(), NULL);
+ }
+
+ zip_file_t *f = zip_fopen_index (z, i, 0);
+ if (f)
+ {
+ ByteArray buffer((ByteArray::size_type) sb.size);
+
+ zip_fread (f, buffer.data(), sb.size);
+ zip_fclose (f);
+
+ if (progressFnPtr)
+ progressFnPtr (hwndDlg, filePath.c_str());
+
+ res = SaveBufferToFile ((char *) buffer.data(), filePath.c_str(), (DWORD) buffer.size(), FALSE, TRUE);
+ }
+ }
+ }
+
+ return res;
+}
+
// If bAppend is TRUE, the buffer is appended to an existing file. If bAppend is FALSE, any existing file
// is replaced. If an error occurs, the incomplete file is deleted (provided that bAppend is FALSE).
BOOL SaveBufferToFile (const char *inputBuffer, const wchar_t *destinationFile, DWORD inputLength, BOOL bAppend, BOOL bRenameIfFailed)
@@ -9017,11 +9386,19 @@ LRESULT ListSubItemSet (HWND list, int index, int subIndex, const wchar_t *strin
BOOL GetMountList (MOUNT_LIST_STRUCT *list)
{
DWORD dwResult;
+ MOUNT_LIST_STRUCT localList = {0};
- memset (list, 0, sizeof (*list));
- return DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, list,
- sizeof (*list), list, sizeof (*list), &dwResult,
- NULL);
+ if ( list && DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &localList,
+ sizeof (localList), &localList, sizeof (localList), &dwResult,
+ NULL)
+ && (localList.ulMountedDrives < (1 << 26))
+ )
+ {
+ memcpy (list, &localList, sizeof (MOUNT_LIST_STRUCT));
+ return TRUE;
+ }
+ else
+ return FALSE;
}
@@ -9798,7 +10175,8 @@ void OpenPageHelp (HWND hwndDlg, int nPage)
if (r == ERROR_FILE_NOT_FOUND)
{
- OpenOnlineHelp ();
+ // Open local HTML help. It will fallback to online help if not found.
+ Applink ("help");
return;
}
}
@@ -9813,7 +10191,7 @@ void OpenPageHelp (HWND hwndDlg, int nPage)
void OpenOnlineHelp ()
{
- Applink ("help", TRUE, "");
+ Applink ("onlinehelp");
}
@@ -10151,143 +10529,173 @@ std::wstring GetWindowsEdition ()
return osname;
}
+#ifdef SETUP
+extern wchar_t InstallationPath[TC_MAX_PATH];
+#endif
-void Applink (char *dest, BOOL bSendOS, char *extraOutput)
+void Applink (const char *dest)
{
- char url [MAX_URL_LENGTH];
+ wchar_t url [MAX_URL_LENGTH] = {0};
+ wchar_t page[TC_MAX_PATH] = {0};
+ wchar_t installDir[TC_MAX_PATH] = {0};
+ BOOL buildUrl = TRUE;
+ int r;
ArrowWaitCursor ();
+
+#ifdef SETUP
+ StringCbCopyW (installDir, sizeof (installDir), InstallationPath);
+#else
+ GetModPath (installDir, TC_MAX_PATH);
+#endif
- // sprintf_s (url, sizeof (url), TC_APPLINK "%s%s&dest=%s", bSendOS ? ("&os=" + GetWindowsEdition()).c_str() : "", extraOutput, dest);
if (strcmp(dest, "donate") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5BCXVMTTNJDCY");
+ StringCbCopyW (page, sizeof (page),L"Donation.html");
}
else if (strcmp(dest, "main") == 0)
{
- StringCbCopyA (url, sizeof (url),TC_HOMEPAGE);
+ StringCbCopyW (url, sizeof (url), TC_HOMEPAGE);
+ buildUrl = FALSE;
}
else if (strcmp(dest,"localizations") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Language%20Packs");
+ StringCbCopyW (page, sizeof (page),L"Language%20Packs.html");
}
else if (strcmp(dest, "beginnerstutorial") == 0 || strcmp(dest,"tutorial") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Beginner%27s%20Tutorial");
+ StringCbCopyW (page, sizeof (page),L"Beginner%27s%20Tutorial.html");
}
else if (strcmp(dest, "releasenotes") == 0 || strcmp(dest, "history") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Release%20Notes");
+ StringCbCopyW (page, sizeof (page),L"Release%20Notes.html");
}
else if (strcmp(dest, "hwacceleration") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Hardware%20Acceleration");
+ StringCbCopyW (page, sizeof (page),L"Hardware%20Acceleration.html");
}
else if (strcmp(dest, "parallelization") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Parallelization");
+ StringCbCopyW (page, sizeof (page),L"Parallelization.html");
}
else if (strcmp(dest, "help") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/documentation");
+ StringCbCopyW (page, sizeof (page),L"Documentation.html");
+ }
+ else if (strcmp(dest, "onlinehelp") == 0)
+ {
+ StringCbCopyW (url, sizeof (url),L"https://www.veracrypt.fr/en/Documentation.html");
+ buildUrl = FALSE;
}
else if (strcmp(dest, "keyfiles") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Keyfiles");
+ StringCbCopyW (page, sizeof (page),L"Keyfiles.html");
}
else if (strcmp(dest, "introcontainer") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Creating%20New%20Volumes");
+ StringCbCopyW (page, sizeof (page),L"Creating%20New%20Volumes.html");
}
else if (strcmp(dest, "introsysenc") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=System%20Encryption");
+ StringCbCopyW (page, sizeof (page),L"System%20Encryption.html");
}
else if (strcmp(dest, "hiddensysenc") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=VeraCrypt%20Hidden%20Operating%20System");
+ StringCbCopyW (page, sizeof (page),L"VeraCrypt%20Hidden%20Operating%20System.html");
}
else if (strcmp(dest, "sysencprogressinfo") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=System%20Encryption");
+ StringCbCopyW (page, sizeof (page),L"System%20Encryption.html");
}
else if (strcmp(dest, "hiddenvolume") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Hidden%20Volume");
+ StringCbCopyW (page, sizeof (page),L"Hidden%20Volume.html");
}
else if (strcmp(dest, "aes") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=AES");
+ StringCbCopyW (page, sizeof (page),L"AES.html");
}
else if (strcmp(dest, "serpent") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Serpent");
+ StringCbCopyW (page, sizeof (page),L"Serpent.html");
}
else if (strcmp(dest, "twofish") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Twofish");
- }
- else if (strcmp(dest, "gost89") == 0)
- {
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=GOST89");
+ StringCbCopyW (page, sizeof (page),L"Twofish.html");
}
else if (strcmp(dest, "kuznyechik") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Kuznyechik");
+ StringCbCopyW (page, sizeof (page),L"Kuznyechik.html");
}
else if (strcmp(dest, "camellia") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Camellia");
+ StringCbCopyW (page, sizeof (page),L"Camellia.html");
}
else if (strcmp(dest, "cascades") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Cascades");
+ StringCbCopyW (page, sizeof (page),L"Cascades.html");
}
else if (strcmp(dest, "hashalgorithms") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Hash%20Algorithms");
+ StringCbCopyW (page, sizeof (page),L"Hash%20Algorithms.html");
}
else if (strcmp(dest, "isoburning") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://cdburnerxp.se/en/home");
+ StringCbCopyW (url, sizeof (url),L"https://cdburnerxp.se/en/home");
+ buildUrl = FALSE;
}
else if (strcmp(dest, "sysfavorites") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=System%20Favorite%20Volumes");
+ StringCbCopyW (page, sizeof (page),L"System%20Favorite%20Volumes.html");
}
else if (strcmp(dest, "favorites") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Favorite%20Volumes");
+ StringCbCopyW (page, sizeof (page),L"Favorite%20Volumes.html");
}
else if (strcmp(dest, "hiddenvolprotection") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Protection%20of%20Hidden%20Volumes");
+ StringCbCopyW (page, sizeof (page),L"Protection%20of%20Hidden%20Volumes.html");
}
else if (strcmp(dest, "faq") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=FAQ");
+ StringCbCopyW (page, sizeof (page),L"FAQ.html");
}
else if (strcmp(dest, "downloads") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Downloads");
+ StringCbCopyW (page, sizeof (page),L"Downloads.html");
}
else if (strcmp(dest, "news") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=News");
+ StringCbCopyW (page, sizeof (page),L"News.html");
}
else if (strcmp(dest, "contact") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Contact");
+ StringCbCopyW (page, sizeof (page),L"Contact.html");
}
else if (strcmp(dest, "pim") == 0)
{
- StringCbCopyA (url, sizeof (url),"https://veracrypt.codeplex.com/wikipage?title=Personal%20Iterations%20Multiplier%20%28PIM%29");
+ StringCbCopyW (page, sizeof (page),L"Personal%20Iterations%20Multiplier%20%28PIM%29.html");
}
else
{
- StringCbCopyA (url, sizeof (url),TC_APPLINK);
+ StringCbCopyW (url, sizeof (url),TC_APPLINK);
+ buildUrl = FALSE;
}
- ShellExecuteA (NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
+
+ if (buildUrl)
+ {
+ StringCbPrintfW (url, sizeof (url), L"file:///%sdocs/html/en/%s", installDir, page);
+ CorrectURL (url);
+ }
+
+ r = (int) ShellExecuteW (NULL, L"open", url, NULL, NULL, SW_SHOWNORMAL);
+
+ if (((r == ERROR_FILE_NOT_FOUND) || (r == ERROR_PATH_NOT_FOUND)) && buildUrl)
+ {
+ // fallbacl to online resources
+ StringCbPrintfW (url, sizeof (url), L"https://www.veracrypt.fr/en/%s", page);
+ ShellExecuteW (NULL, L"open", url, NULL, NULL, SW_SHOWNORMAL);
+ }
Sleep (200);
NormalCursor ();
@@ -10421,7 +10829,7 @@ int OpenVolume (OpenVolumeContext *context, const wchar_t *volumePath, Password
char buffer[TC_VOLUME_HEADER_EFFECTIVE_SIZE];
LARGE_INTEGER headerOffset;
DWORD dwResult;
- DISK_GEOMETRY deviceGeometry;
+ DISK_GEOMETRY_EX deviceGeometry;
context->VolumeIsOpen = FALSE;
context->CryptoInfo = NULL;
@@ -10489,15 +10897,15 @@ int OpenVolume (OpenVolumeContext *context, const wchar_t *volumePath, Password
}
else
{
- DISK_GEOMETRY driveInfo;
+ DISK_GEOMETRY_EX driveInfo;
- if (!DeviceIoControl (context->HostFileHandle, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &driveInfo, sizeof (driveInfo), &dwResult, NULL))
+ if (!DeviceIoControl (context->HostFileHandle, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, &driveInfo, sizeof (driveInfo), &dwResult, NULL))
{
status = ERR_OS_ERROR;
goto error;
}
- context->HostSize = driveInfo.Cylinders.QuadPart * driveInfo.BytesPerSector * driveInfo.SectorsPerTrack * driveInfo.TracksPerCylinder;
+ context->HostSize = driveInfo.DiskSize.QuadPart;
}
if (context->HostSize == 0)
@@ -10685,10 +11093,10 @@ BOOL IsPagingFileActive (BOOL checkNonWindowsPartitionsOnly)
if (handle == INVALID_HANDLE_VALUE)
continue;
- DISK_GEOMETRY driveInfo;
+ DISK_GEOMETRY_EX driveInfo;
DWORD dwResult;
- if (!DeviceIoControl (handle, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &driveInfo, sizeof (driveInfo), &dwResult, NULL))
+ if (!DeviceIoControl (handle, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, &driveInfo, sizeof (driveInfo), &dwResult, NULL))
{
CloseHandle (handle);
continue;
@@ -11285,8 +11693,6 @@ BOOL InitSecurityTokenLibrary (HWND hwndDlg)
return TRUE;
}
-#endif // !SETUP
-
std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool singleList, bool noFloppy, bool detectUnencryptedFilesystems)
{
vector <HostDevice> devices;
@@ -11302,7 +11708,7 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
const wchar_t *devPath = devPathStr.c_str();
OPEN_TEST_STRUCT openTest = {0};
- if (!OpenDevice (devPath, &openTest, detectUnencryptedFilesystems && partNumber != 0, FALSE, NULL))
+ if (!OpenDevice (devPath, &openTest, detectUnencryptedFilesystems && partNumber != 0, FALSE))
{
if (partNumber == 0)
break;
@@ -11323,14 +11729,13 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
}
else
{
- // retrieve size using DISK_GEOMETRY
- DISK_GEOMETRY deviceGeometry = {0};
+ // retrieve size using DISK_GEOMETRY_EX
+ DISK_GEOMETRY_EX deviceGeometry = {0};
if ( GetDriveGeometry (devPath, &deviceGeometry)
|| ((partNumber == 0) && GetPhysicalDriveGeometry (devNumber, &deviceGeometry))
)
{
- device.Size = deviceGeometry.Cylinders.QuadPart * (LONGLONG) deviceGeometry.BytesPerSector
- * (LONGLONG) deviceGeometry.SectorsPerTrack * (LONGLONG) deviceGeometry.TracksPerCylinder;
+ device.Size = (uint64) deviceGeometry.DiskSize.QuadPart;
}
}
@@ -11338,7 +11743,7 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
if (!noDeviceProperties)
{
- DISK_GEOMETRY geometry;
+ DISK_GEOMETRY_EX geometry;
int driveNumber = GetDiskDeviceDriveLetter ((wchar_t *) devPathStr.c_str());
@@ -11356,7 +11761,7 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
}
if (partNumber == 0 && GetDriveGeometry (devPath, &geometry))
- device.Removable = (geometry.MediaType == RemovableMedia);
+ device.Removable = (geometry.Geometry.MediaType == RemovableMedia);
}
if (partNumber == 0)
@@ -11407,7 +11812,7 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
const wchar_t *devPath = devPathStr.c_str();
OPEN_TEST_STRUCT openTest = {0};
- if (!OpenDevice (devPath, &openTest, detectUnencryptedFilesystems, FALSE, NULL))
+ if (!OpenDevice (devPath, &openTest, detectUnencryptedFilesystems, FALSE))
continue;
DISK_PARTITION_INFO_STRUCT info;
@@ -11447,47 +11852,422 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
return devices;
}
+void AddDeviceToList (std::vector<HostDevice>& devices, int devNumber, int partNumber)
+{
+ wstringstream strm;
+ strm << L"\\Device\\Harddisk" << devNumber << L"\\Partition" << partNumber;
+ wstring devPathStr (strm.str());
+ const wchar_t *devPath = devPathStr.c_str();
+
+ HostDevice device;
+ device.SystemNumber = devNumber;
+ device.Path = devPath;
+
+ devices.push_back (device);
+}
+
+std::vector <HostDevice> GetHostRawDeviceList ()
+{
+ std::vector <HostDevice> list;
+ HDEVINFO diskClassDevices;
+ GUID diskClassDeviceInterfaceGuid = GUID_DEVINTERFACE_DISK;
+ SP_DEVICE_INTERFACE_DATA deviceInterfaceData;
+ PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData;
+ DWORD requiredSize;
+ DWORD deviceIndex;
+
+ STORAGE_DEVICE_NUMBER diskNumber;
+ DWORD bytesReturned;
+
+ diskClassDevices = SetupDiGetClassDevs( &diskClassDeviceInterfaceGuid,
+ NULL,
+ NULL,
+ DIGCF_PRESENT |
+ DIGCF_DEVICEINTERFACE );
+ if ( INVALID_HANDLE_VALUE != diskClassDevices)
+ {
+ ZeroMemory( &deviceInterfaceData, sizeof( SP_DEVICE_INTERFACE_DATA ) );
+ deviceInterfaceData.cbSize = sizeof( SP_DEVICE_INTERFACE_DATA );
+ deviceIndex = 0;
+
+ while ( SetupDiEnumDeviceInterfaces( diskClassDevices,
+ NULL,
+ &diskClassDeviceInterfaceGuid,
+ deviceIndex,
+ &deviceInterfaceData ) )
+ {
+ ++deviceIndex;
+
+ if (!SetupDiGetDeviceInterfaceDetail( diskClassDevices,
+ &deviceInterfaceData,
+ NULL,
+ 0,
+ &requiredSize,
+ NULL ) && ( ERROR_INSUFFICIENT_BUFFER == GetLastError()))
+ {
+ deviceInterfaceDetailData = ( PSP_DEVICE_INTERFACE_DETAIL_DATA ) malloc( requiredSize );
+ if (deviceInterfaceDetailData)
+ {
+ ZeroMemory( deviceInterfaceDetailData, requiredSize );
+ deviceInterfaceDetailData->cbSize = sizeof( SP_DEVICE_INTERFACE_DETAIL_DATA );
+ if (SetupDiGetDeviceInterfaceDetail( diskClassDevices,
+ &deviceInterfaceData,
+ deviceInterfaceDetailData,
+ requiredSize,
+ NULL,
+ NULL ))
+ {
+ HANDLE disk = CreateFile( deviceInterfaceDetailData->DevicePath,
+ 0,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL,
+ OPEN_EXISTING,
+ 0,
+ NULL );
+ if ( INVALID_HANDLE_VALUE != disk)
+ {
+ if (DeviceIoControl( disk,
+ IOCTL_STORAGE_GET_DEVICE_NUMBER,
+ NULL,
+ 0,
+ &diskNumber,
+ sizeof( STORAGE_DEVICE_NUMBER ),
+ &bytesReturned,
+ NULL ))
+ {
+ HostDevice device;
+ device.Path = deviceInterfaceDetailData->DevicePath;
+ device.SystemNumber = diskNumber.DeviceNumber;
+ list.push_back (device);
+ }
+
+ CloseHandle( disk );
+ }
+ }
+
+ free (deviceInterfaceDetailData);
+ }
+ }
+ }
+
+ SetupDiDestroyDeviceInfoList( diskClassDevices );
+ }
+
+ return list;
+}
+
+bool CompareDeviceList (const std::vector<HostDevice>& list1, const std::vector<HostDevice>& list2)
+{
+ if (list1.size() != list2.size())
+ return false;
+
+ for (std::vector<HostDevice>::const_iterator It1 = list1.begin(); It1 != list1.end(); It1++)
+ {
+ bool bFound = false;
+ for (std::vector<HostDevice>::const_iterator It2 = list2.begin(); It2 != list2.end(); It2++)
+ {
+ if (It1->Path == It2->Path && It1->SystemNumber == It2->SystemNumber)
+ {
+ bFound = true;
+ break;
+ }
+ }
+
+ if (!bFound)
+ return false;
+ }
+
+ return true;
+}
+
+void UpdateMountableHostDeviceList ()
+{
+ ByteArray buffer(4096);
+ DWORD bytesReturned;
+ bool dynamicVolumesPresent = false;
+
+ EnterCriticalSection (&csMountableDevices);
+ finally_do ({ LeaveCriticalSection (&csMountableDevices); });
+
+ std::vector<HostDevice> newList = GetHostRawDeviceList ();
+ std::map<DWORD, bool> existingDevicesMap;
+
+ if (CompareDeviceList (newList, rawHostDeviceList))
+ return; //no change, return
+
+ // remove raw devices that don't exist anymore
+ for (std::vector<HostDevice>::iterator It = rawHostDeviceList.begin();
+ It != rawHostDeviceList.end();)
+ {
+ for (std::vector<HostDevice>::iterator newIt = newList.begin(); newIt != newList.end(); newIt++)
+ {
+ if (newIt->SystemNumber == It->SystemNumber)
+ {
+ existingDevicesMap[It->SystemNumber] = true;
+ break;
+ }
+ }
+
+ if (existingDevicesMap[It->SystemNumber])
+ It++;
+ else
+ {
+ It = rawHostDeviceList.erase (It);
+ }
+ }
+
+ // remove mountable devices that don't exist anymore
+ for (std::vector<HostDevice>::iterator It = mountableDevices.begin();
+ It != mountableDevices.end();)
+ {
+ if (existingDevicesMap[It->SystemNumber])
+ It++;
+ else
+ It = mountableDevices.erase (It);
+ }
+
+ // add new devices
+ for (std::vector<HostDevice>::iterator It = newList.begin(); It != newList.end(); It++)
+ {
+ if (existingDevicesMap[It->SystemNumber])
+ continue;
+
+ HANDLE disk = CreateFile( It->Path.c_str(),
+ 0,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL,
+ OPEN_EXISTING,
+ 0,
+ NULL );
+ if ( INVALID_HANDLE_VALUE != disk)
+ {
+ bool bIsDynamic = false;
+ bool bHasPartition = false;
+ if (DeviceIoControl(
+ disk,
+ IOCTL_DISK_GET_DRIVE_LAYOUT_EX,
+ NULL,
+ 0,
+ (LPVOID) buffer.data(),
+ (DWORD) buffer.size(),
+ (LPDWORD) &bytesReturned,
+ NULL) && (bytesReturned >= sizeof (DRIVE_LAYOUT_INFORMATION_EX)))
+ {
+ PDRIVE_LAYOUT_INFORMATION_EX layout = (PDRIVE_LAYOUT_INFORMATION_EX) buffer.data();
+ // sanity checks
+ if (layout->PartitionCount <= 256)
+ {
+ for (DWORD i = 0; i < layout->PartitionCount; i++)
+ {
+ if (layout->PartitionEntry[i].PartitionStyle == PARTITION_STYLE_MBR)
+ {
+ if (layout->PartitionEntry[i].Mbr.PartitionType == 0)
+ continue;
+
+ bHasPartition = true;
+
+ /* skip dynamic volume */
+ if (layout->PartitionEntry[i].Mbr.PartitionType == PARTITION_LDM)
+ {
+ bIsDynamic = true;
+ /* remove any partition that may have been added */
+ while (!mountableDevices.empty() && (mountableDevices.back().SystemNumber == It->SystemNumber))
+ mountableDevices.pop_back ();
+ break;
+ }
+ }
+
+ if (layout->PartitionEntry[i].PartitionStyle == PARTITION_STYLE_GPT)
+ {
+ if (IsEqualGUID(layout->PartitionEntry[i].Gpt.PartitionType, PARTITION_ENTRY_UNUSED_GUID))
+ continue;
+
+ bHasPartition = true;
+
+ /* skip dynamic volume */
+ if ( IsEqualGUID(layout->PartitionEntry[i].Gpt.PartitionType, PARTITION_LDM_METADATA_GUID)
+ || IsEqualGUID(layout->PartitionEntry[i].Gpt.PartitionType, PARTITION_LDM_DATA_GUID)
+ )
+ {
+ bIsDynamic = true;
+ /* remove any partition that may have been added */
+ while (!mountableDevices.empty() && (mountableDevices.back().SystemNumber == It->SystemNumber))
+ mountableDevices.pop_back ();
+ break;
+ }
+ }
+
+ WCHAR path[MAX_PATH];
+ StringCbPrintfW (path, sizeof(path), L"\\\\?\\GLOBALROOT\\Device\\Harddisk%d\\Partition%d", It->SystemNumber, layout->PartitionEntry[i].PartitionNumber);
+ HANDLE handle = CreateFile( path,
+ 0,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL,
+ OPEN_EXISTING,
+ 0,
+ NULL );
+ if ((handle != INVALID_HANDLE_VALUE) || (GetLastError () == ERROR_ACCESS_DENIED))
+ {
+ AddDeviceToList (mountableDevices, It->SystemNumber, layout->PartitionEntry[i].PartitionNumber);
+ if (handle != INVALID_HANDLE_VALUE)
+ CloseHandle (handle);
+ }
+ }
+ }
+ }
+
+ if (bIsDynamic)
+ dynamicVolumesPresent = true;
+
+ if (!bHasPartition)
+ AddDeviceToList (mountableDevices, It->SystemNumber, 0);
+
+ CloseHandle (disk);
+ }
+ }
+
+ rawHostDeviceList = newList;
+
+ // Starting from Vista, Windows does not create partition links for dynamic volumes so it is necessary to scan \\Device\\HarddiskVolumeX devices
+ if (dynamicVolumesPresent && (CurrentOSMajor >= 6))
+ {
+ for (int devNumber = 0; devNumber < 256; devNumber++)
+ {
+ wstringstream strm;
+ strm << L"\\Device\\HarddiskVolume" << devNumber;
+ wstring devPathStr (strm.str());
+ const wchar_t *devPath = devPathStr.c_str();
+
+ OPEN_TEST_STRUCT openTest = {0};
+ if (!OpenDevice (devPath, &openTest, FALSE, FALSE))
+ continue;
+
+ DISK_PARTITION_INFO_STRUCT info;
+ if (GetDeviceInfo (devPath, &info) && info.IsDynamic)
+ {
+ HostDevice device;
+ device.SystemNumber = devNumber;
+ device.Path = devPath;
+
+ mountableDevices.push_back (device);
+ }
+ }
+ }
+}
+
wstring FindDeviceByVolumeID (const BYTE volumeID [VOLUME_ID_SIZE])
{
+ static std::vector<HostDevice> volumeIdCandidates;
+
/* if it is already mounted, get the real path name used for mounting */
MOUNT_LIST_STRUCT mlist;
DWORD dwResult;
memset (&mlist, 0, sizeof (mlist));
- DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
- sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
- NULL);
+ if ( !DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mlist,
+ sizeof (mlist), &mlist, sizeof (mlist), &dwResult,
+ NULL)
+ || (mlist.ulMountedDrives >= (1 << 26))
+ )
+ {
+ return L"";
+ }
- for (int i=0 ; i < 26; i++)
+ if (mlist.ulMountedDrives)
{
- if (0 == memcmp (mlist.volumeID[i], volumeID, VOLUME_ID_SIZE))
- return mlist.wszVolume[i];
+ for (int i=0 ; i < 26; i++)
+ {
+ if ((mlist.ulMountedDrives & (1 << i)) && (0 == memcmp (mlist.volumeID[i], volumeID, VOLUME_ID_SIZE)))
+ {
+ if (IsNullTerminateString (mlist.wszVolume[i], TC_MAX_PATH))
+ return mlist.wszVolume[i];
+ else
+ return L"";
+ }
+ }
}
/* not mounted. Look for it in the local drives*/
- for (int devNumber = 0; devNumber < MAX_HOST_DRIVE_NUMBER; devNumber++)
+
+ EnterCriticalSection (&csMountableDevices);
+ std::vector<HostDevice> newDevices = mountableDevices;
+ LeaveCriticalSection (&csMountableDevices);
+
+ EnterCriticalSection (&csVolumeIdCandidates);
+ finally_do ({ LeaveCriticalSection (&csVolumeIdCandidates); });
+
+ /* remove any devices that don't exist anymore */
+ for (std::vector<HostDevice>::iterator It = volumeIdCandidates.begin();
+ It != volumeIdCandidates.end();)
{
- for (int partNumber = 0; partNumber < MAX_HOST_PARTITION_NUMBER; partNumber++)
+ bool bFound = false;
+ for (std::vector<HostDevice>::iterator newIt = newDevices.begin();
+ newIt != newDevices.end(); newIt++)
{
- wstringstream strm;
- strm << L"\\Device\\Harddisk" << devNumber << L"\\Partition" << partNumber;
- wstring devPathStr (strm.str());
- const wchar_t *devPath = devPathStr.c_str();
+ if (It->Path == newIt->Path)
+ {
+ bFound = true;
+ break;
+ }
+ }
+
+ if (bFound)
+ It++;
+ else
+ It = volumeIdCandidates.erase (It);
+ }
+ /* Add newly inserted devices and compute their VolumeID */
+ for (std::vector<HostDevice>::iterator newIt = newDevices.begin();
+ newIt != newDevices.end(); newIt++)
+ {
+ bool bFound = false;
+
+ for (std::vector<HostDevice>::iterator It = volumeIdCandidates.begin();
+ It != volumeIdCandidates.end(); It++)
+ {
+ if (It->Path == newIt->Path)
+ {
+ bFound = true;
+ break;
+ }
+ }
+
+ if (!bFound)
+ {
+ /* new device/partition. Compute its Volume IDs */
OPEN_TEST_STRUCT openTest = {0};
- if (!OpenDevice (devPath, &openTest, FALSE, TRUE, volumeID))
+ if (OpenDevice (newIt->Path.c_str(), &openTest, TRUE, TRUE)
+ && (openTest.VolumeIDComputed[TC_VOLUME_TYPE_NORMAL] && openTest.VolumeIDComputed[TC_VOLUME_TYPE_HIDDEN])
+ )
{
- continue;
+ memcpy (newIt->VolumeIDs, openTest.volumeIDs, sizeof (newIt->VolumeIDs));
+ newIt->HasVolumeIDs = true;
}
+ else
+ newIt->HasVolumeIDs = false;
+ volumeIdCandidates.push_back (*newIt);
+ }
+ }
- if (openTest.VolumeIDMatched)
- return devPath;
+ for (std::vector<HostDevice>::iterator It = volumeIdCandidates.begin();
+ It != volumeIdCandidates.end(); It++)
+ {
+ if ( It->HasVolumeIDs &&
+ ( (0 == memcmp (volumeID, It->VolumeIDs[TC_VOLUME_TYPE_NORMAL], VOLUME_ID_SIZE))
+ || (0 == memcmp (volumeID, It->VolumeIDs[TC_VOLUME_TYPE_HIDDEN], VOLUME_ID_SIZE))
+ )
+ )
+ {
+ return It->Path;
}
}
return L"";
}
+#endif // !SETUP
+
BOOL FileHasReadOnlyAttribute (const wchar_t *path)
{
DWORD attributes = GetFileAttributes (path);
@@ -11700,7 +12480,7 @@ BOOL DisableFileCompression (HANDLE file)
return DeviceIoControl (file, FSCTL_SET_COMPRESSION, &format, sizeof (format), NULL, 0, &bytesOut, NULL);
}
-
+#ifndef SETUP
BOOL VolumePathExists (const wchar_t *volumePath)
{
OPEN_TEST_STRUCT openTest = {0};
@@ -11709,7 +12489,7 @@ BOOL VolumePathExists (const wchar_t *volumePath)
UpperCaseCopy (upperCasePath, sizeof(upperCasePath), volumePath);
if (wcsstr (upperCasePath, L"\\DEVICE\\") == upperCasePath)
- return OpenDevice (volumePath, &openTest, FALSE, FALSE, NULL);
+ return OpenDevice (volumePath, &openTest, FALSE, FALSE);
wstring path = volumePath;
if (path.find (L"\\\\?\\Volume{") == 0 && path.rfind (L"}\\") == path.size() - 2)
@@ -11817,6 +12597,7 @@ std::wstring HarddiskVolumePathToPartitionPath (const std::wstring &harddiskVolu
return wstring();
}
+#endif
BOOL IsApplicationInstalled (const wchar_t *appName, BOOL b32bitApp)
{
@@ -11896,9 +12677,9 @@ std::wstring FindLatestFileOrDirectory (const std::wstring &directory, const wch
return wstring (directory) + L"\\" + name;
}
-int GetPim (HWND hwndDlg, UINT ctrlId)
+int GetPim (HWND hwndDlg, UINT ctrlId, int defaultPim)
{
- int pim = 0;
+ int pim = defaultPim;
HWND hCtrl = GetDlgItem (hwndDlg, ctrlId);
if (IsWindowEnabled (hCtrl) && IsWindowVisible (hCtrl))
{
@@ -11908,7 +12689,7 @@ int GetPim (HWND hwndDlg, UINT ctrlId)
wchar_t* endPtr = NULL;
pim = wcstol(szTmp, &endPtr, 10);
if (pim < 0 || endPtr == szTmp || !endPtr || *endPtr != L'\0')
- pim = 0;
+ pim = defaultPim;
}
}
return pim;
@@ -12094,6 +12875,8 @@ BOOL IsRepeatedByteArray (byte value, const byte* buffer, size_t bufferSize)
return FALSE;
}
+#ifndef SETUP
+
BOOL TranslateVolumeID (HWND hwndDlg, wchar_t* pathValue, size_t cchPathValue)
{
BOOL bRet = TRUE;
@@ -12130,6 +12913,8 @@ BOOL TranslateVolumeID (HWND hwndDlg, wchar_t* pathValue, size_t cchPathValue)
return bRet;
}
+#endif
+
BOOL CopyTextToClipboard (LPCWSTR txtValue)
{
size_t txtLen = wcslen(txtValue);
@@ -12225,3 +13010,171 @@ BOOL DeleteDirectory (const wchar_t* szDirName)
}
return bStatus;
}
+
+#ifdef TCMOUNT
+/*********************************************************************/
+
+static BOOL GenerateRandomString (HWND hwndDlg, LPTSTR szName, DWORD maxCharsCount)
+{
+ BOOL bRet = FALSE;
+ if (Randinit () != ERR_SUCCESS)
+ {
+ handleError (hwndDlg, (CryptoAPILastError == ERROR_SUCCESS)? ERR_RAND_INIT_FAILED : ERR_CAPI_INIT_FAILED, SRC_POS);
+ }
+ else
+ {
+ BYTE* indexes = (BYTE*) malloc (maxCharsCount + 1);
+ bRet = RandgetBytesFull (hwndDlg, indexes, maxCharsCount + 1, TRUE, TRUE);
+ if (bRet)
+ {
+ static LPCTSTR chars = _T("0123456789@#$%^&_-*abcdefghijklmnopqrstuvwxyz");
+ DWORD i, charsLen = (DWORD) _tcslen (chars);
+ DWORD effectiveLen = (indexes[0] % (64 - 16)) + 16; // random length between 16 to 64
+ effectiveLen = (effectiveLen > maxCharsCount)? maxCharsCount : effectiveLen;
+
+ for (i = 0; i < effectiveLen; i++)
+ {
+ szName[i] = chars[indexes[i + 1] % charsLen];
+ }
+
+ szName[effectiveLen] = 0;
+ }
+ burn (indexes, maxCharsCount + 1);
+ free (indexes);
+ }
+
+ return bRet;
+}
+
+typedef struct
+{
+ HDESK hDesk;
+ HINSTANCE hInstance;
+ LPCWSTR lpTemplateName;
+ DLGPROC lpDialogFunc;
+ LPARAM dwInitParam;
+ INT_PTR retValue;
+} SecureDesktopThreadParam;
+
+static DWORD WINAPI SecureDesktopThread(LPVOID lpThreadParameter)
+{
+ SecureDesktopThreadParam* pParam = (SecureDesktopThreadParam*) lpThreadParameter;
+
+ SetThreadDesktop (pParam->hDesk);
+ SwitchDesktop (pParam->hDesk);
+
+ pParam->retValue = DialogBoxParamW (pParam->hInstance, pParam->lpTemplateName,
+ NULL, pParam->lpDialogFunc, pParam->dwInitParam);
+
+ return 0;
+}
+
+static void GetCtfMonProcessIdList (map<DWORD, BOOL>& processIdList)
+{
+ HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
+ PROCESSENTRY32 pEntry;
+ BOOL hRes;
+
+ pEntry.dwSize = sizeof (pEntry);
+ processIdList.clear();
+ hRes = Process32First(hSnapShot, &pEntry);
+ while (hRes)
+ {
+ LPTSTR szFileName = PathFindFileName (pEntry.szExeFile);
+ if (_wcsicmp(szFileName, L"ctfmon.exe") == 0)
+ {
+ processIdList[pEntry.th32ProcessID] = TRUE;
+ }
+ hRes = Process32Next(hSnapShot, &pEntry);
+ }
+ CloseHandle(hSnapShot);
+}
+
+static void KillProcess (DWORD dwProcessId)
+{
+ HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, dwProcessId);
+ if (hProcess != NULL)
+ {
+ TerminateProcess(hProcess, (UINT) -1);
+ CloseHandle(hProcess);
+ }
+}
+
+INT_PTR SecureDesktopDialogBoxParam(
+ HINSTANCE hInstance,
+ LPCWSTR lpTemplateName,
+ HWND hWndParent,
+ DLGPROC lpDialogFunc,
+ LPARAM dwInitParam)
+{
+ TCHAR szDesktopName[65] = {0};
+ BOOL bSuccess = FALSE;
+ INT_PTR retValue = 0;
+ BOOL bEffectiveUseSecureDesktop = bCmdUseSecureDesktopValid? bCmdUseSecureDesktop : bUseSecureDesktop;
+
+ if (bEffectiveUseSecureDesktop && GenerateRandomString (hWndParent, szDesktopName, 64))
+ {
+ map<DWORD, BOOL> ctfmonBeforeList, ctfmonAfterList;
+ DWORD desktopAccess = DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW | DESKTOP_READOBJECTS | DESKTOP_SWITCHDESKTOP | DESKTOP_WRITEOBJECTS;
+ HDESK hSecureDesk;
+
+ // get the initial list of ctfmon.exe processes before creating new desktop
+ GetCtfMonProcessIdList (ctfmonBeforeList);
+
+ hSecureDesk = CreateDesktop (szDesktopName, NULL, NULL, 0, desktopAccess, NULL);
+ if (hSecureDesk)
+ {
+ HDESK hOriginalDesk = GetThreadDesktop (GetCurrentThreadId ());
+ SecureDesktopThreadParam param;
+
+ param.hDesk = hSecureDesk;
+ 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);
+
+ SwitchDesktop (hOriginalDesk);
+ SetThreadDesktop (hOriginalDesk);
+
+ retValue = param.retValue;
+ bSuccess = TRUE;
+ }
+
+ 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);
+
+ for (map<DWORD, BOOL>::iterator It = ctfmonAfterList.begin();
+ It != ctfmonAfterList.end(); It++)
+ {
+ if (ctfmonBeforeList[It->first] != TRUE)
+ {
+ // Kill process
+ KillProcess (It->first);
+ }
+ }
+ }
+
+ burn (szDesktopName, sizeof (szDesktopName));
+ }
+
+ if (!bSuccess)
+ {
+ // fallback to displaying in normal desktop
+ retValue = DialogBoxParamW (hInstance, lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
+ }
+
+ return retValue;
+}
+
+#endif
diff --git a/src/Common/Dlgcode.h b/src/Common/Dlgcode.h
index 86afbe0..47ab035 100644
--- a/src/Common/Dlgcode.h
+++ b/src/Common/Dlgcode.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -121,6 +121,9 @@ extern BOOL bShowDisconnectedNetworkDrives;
extern BOOL bHideWaitingDialog;
extern BOOL bCmdHideWaitingDialog;
extern BOOL bCmdHideWaitingDialogValid;
+extern BOOL bUseSecureDesktop;
+extern BOOL bCmdUseSecureDesktop;
+extern BOOL bCmdUseSecureDesktopValid;
extern BOOL bStartOnLogon;
extern BOOL bMountDevicesOnLogon;
extern BOOL bMountFavoritesOnLogon;
@@ -235,9 +238,12 @@ typedef struct
#define ISO_BURNER_TOOL L"isoburn.exe"
#define PRINT_TOOL L"notepad.exe"
+void InitGlobalLocks ();
+void FinalizeGlobalLocks ();
void cleanup ( void );
void LowerCaseCopy ( wchar_t *lpszDest , const wchar_t *lpszSource );
void UpperCaseCopy ( wchar_t *lpszDest , size_t cbDest, const wchar_t *lpszSource );
+BOOL IsNullTerminateString (const wchar_t* str, size_t cbSize);
void CreateFullVolumePath ( wchar_t *lpszDiskFile , size_t cbDiskFile, const wchar_t *lpszFileName , BOOL *bDevice );
int FakeDosNameForDevice ( const wchar_t *lpszDiskFile , wchar_t *lpszDosDevice , size_t cbDosDevice, wchar_t *lpszCFDevice , size_t cbCFDevice, BOOL bNameOnly );
int RemoveFakeDosName ( wchar_t *lpszDiskFile , wchar_t *lpszDosDevice );
@@ -303,13 +309,14 @@ void InitOSVersionInfo ();
void InitApp ( HINSTANCE hInstance, wchar_t *lpszCommandLine );
void FinalizeApp (void);
void InitHelpFileName (void);
-BOOL OpenDevice (const wchar_t *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectFilesystem, BOOL matchVolumeID, const BYTE* pbVolumeID);
+BOOL OpenDevice (const wchar_t *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectFilesystem, BOOL computeVolumeID);
void NotifyDriverOfPortableMode (void);
int GetAvailableFixedDisks ( HWND hComboBox , char *lpszRootPath );
int GetAvailableRemovables ( HWND hComboBox , char *lpszRootPath );
int IsSystemDevicePath (const wchar_t *path, HWND hwndDlg, BOOL bReliableRequired);
int IsNonSysPartitionOnSysDrive (const wchar_t *path);
BOOL CALLBACK RawDevicesDlgProc ( HWND hwndDlg , UINT msg , WPARAM wParam , LPARAM lParam );
+BOOL CALLBACK TextEditDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR TextInfoDialogBox (int nID);
BOOL CALLBACK TextInfoDialogBoxDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
char * GetLegalNotices ();
@@ -333,6 +340,7 @@ BOOL UpdateDriveCustomLabel (int driveNo, wchar_t* effectiveLabel, BOOL bSetValu
BOOL CheckCapsLock (HWND hwnd, BOOL quiet);
BOOL CheckFileExtension (wchar_t *fileName);
void CorrectFileName (wchar_t* fileName);
+void CorrectURL (wchar_t* fileName);
void IncreaseWrongPwdRetryCount (int count);
void ResetWrongPwdRetryCount (void);
BOOL WrongPwdRetryCountOverLimit (void);
@@ -364,6 +372,8 @@ BOOL FileExists (const wchar_t *filePathPtr);
__int64 FindStringInFile (const wchar_t *filePath, const char *str, int strLen);
BOOL TCCopyFile (wchar_t *sourceFileName, wchar_t *destinationFile);
BOOL SaveBufferToFile (const char *inputBuffer, const wchar_t *destinationFile, DWORD inputLength, BOOL bAppend, BOOL bRenameIfFailed);
+typedef void (_cdecl *ProgressFn) ( HWND hwndDlg , const wchar_t *txt );
+BOOL DecompressZipToDir (const unsigned char *inputBuffer, DWORD inputLength, const wchar_t *destinationFile, ProgressFn progressFnPtr, HWND hwndDlg);
BOOL TCFlushFile (FILE *f);
BOOL PrintHardCopyTextUTF16 (wchar_t *text, wchar_t *title, size_t byteLen);
void GetSpeedString (unsigned __int64 speed, wchar_t *str, size_t cbStr);
@@ -444,7 +454,7 @@ BOOL IsServerOS ();
BOOL IsHiddenOSRunning (void);
BOOL EnableWow64FsRedirection (BOOL enable);
BOOL RestartComputer (BOOL bShutdown);
-void Applink (char *dest, BOOL bSendOS, char *extraOutput);
+void Applink (const char *dest);
wchar_t *RelativePath2Absolute (wchar_t *szFileName);
void HandleDriveNotReadyError (HWND hwnd);
BOOL CALLBACK CloseTCWindowsEnum( HWND hwnd, LPARAM lParam);
@@ -457,7 +467,7 @@ BOOL SelectMultipleFilesNext (wchar_t *lpszFileName, size_t cbFileName);
void OpenOnlineHelp ();
BOOL GetPartitionInfo (const wchar_t *deviceName, PPARTITION_INFORMATION rpartInfo);
BOOL GetDeviceInfo (const wchar_t *deviceName, DISK_PARTITION_INFO_STRUCT *info);
-BOOL GetDriveGeometry (const wchar_t *deviceName, PDISK_GEOMETRY diskGeometry);
+BOOL GetDriveGeometry (const wchar_t *deviceName, PDISK_GEOMETRY_EX diskGeometry);
BOOL GetPhysicalDriveGeometry (int driveNumber, PDISK_GEOMETRY diskGeometry);
BOOL IsVolumeDeviceHosted (const wchar_t *lpszDiskFile);
int CompensateXDPI (int val);
@@ -495,7 +505,7 @@ BOOL VolumePathExists (const wchar_t *volumePath);
BOOL IsWindowsIsoBurnerAvailable ();
BOOL LaunchWindowsIsoBurner (HWND hwnd, const wchar_t *isoPath);
BOOL IsApplicationInstalled (const wchar_t *appName);
-int GetPim (HWND hwndDlg, UINT ctrlId);
+int GetPim (HWND hwndDlg, UINT ctrlId, int defaultPim);
void SetPim (HWND hwndDlg, UINT ctrlId, int pim);
BOOL GetPassword (HWND hwndDlg, UINT ctrlID, char* passValue, int bufSize, BOOL bShowError);
void SetPassword (HWND hwndDlg, UINT ctrlID, char* passValue);
@@ -514,6 +524,7 @@ BOOL LaunchElevatedProcess (HWND hwndDlg, const wchar_t* szModPath, const wchar_
BOOL GetFreeDriveLetter(WCHAR* pCh);
BOOL RaisePrivileges(void);
BOOL DeleteDirectory (const wchar_t* szDirName);
+INT_PTR SecureDesktopDialogBoxParam (HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM);
#ifdef __cplusplus
}
@@ -521,6 +532,8 @@ BOOL DeleteDirectory (const wchar_t* szDirName);
#include <vector>
#include <string>
+typedef std::vector<unsigned char> ByteArray;
+
struct HostDevice
{
HostDevice ()
@@ -534,11 +547,34 @@ struct HostDevice
HasUnencryptedFilesystem (false),
Removable (false),
Size (0),
- SystemNumber((uint32) -1)
+ SystemNumber((uint32) -1),
+ HasVolumeIDs (false)
+ {
+ ZeroMemory (VolumeIDs, sizeof (VolumeIDs));
+ }
+
+ HostDevice (const HostDevice& device)
+ :
+ Bootable (device.Bootable),
+ ContainsSystem (device.ContainsSystem),
+ DynamicVolume (device.DynamicVolume),
+ Floppy (device.Floppy),
+ IsPartition (device.IsPartition),
+ IsVirtualPartition (device.IsVirtualPartition),
+ HasUnencryptedFilesystem (device.HasUnencryptedFilesystem),
+ MountPoint (device.MountPoint),
+ Name (device.Name),
+ Path (device.Path),
+ Removable (device.Removable),
+ Size (device.Size),
+ SystemNumber (device.SystemNumber),
+ HasVolumeIDs (device.HasVolumeIDs),
+ Partitions (device.Partitions)
{
+ memcpy (VolumeIDs, device.VolumeIDs, sizeof (VolumeIDs));
}
- ~HostDevice () { }
+ ~HostDevice () {}
bool Bootable;
bool ContainsSystem;
@@ -553,6 +589,8 @@ struct HostDevice
bool Removable;
uint64 Size;
uint32 SystemNumber;
+ BYTE VolumeIDs[TC_VOLUME_TYPE_COUNT][VOLUME_ID_SIZE];
+ bool HasVolumeIDs;
std::vector <HostDevice> Partitions;
};
@@ -583,10 +621,13 @@ bool HexWideStringToArray (const wchar_t* hexStr, std::vector<byte>& arr);
std::wstring FindDeviceByVolumeID (const BYTE volumeID [VOLUME_ID_SIZE]);
void RegisterDriverInf (bool registerFilter, const std::string& filter, const std::string& filterReg, HWND ParentWindow, HKEY regKey);
std::wstring GetTempPathString ();
+void CorrectFileName (std::wstring& fileName);
inline std::wstring AppendSrcPos (const wchar_t* msg, const char* srcPos)
{
return std::wstring (msg? msg : L"") + L"\n\nSource: " + SingleStringToWide (srcPos);
}
+void UpdateMountableHostDeviceList ();
+INT_PTR TextEditDialogBox (BOOL readOnly, HWND parent, const WCHAR* Title, std::string& text);
// Display a wait dialog while calling the provided callback with the given parameter
typedef void (CALLBACK* WaitThreadProc)(void* pArg, HWND hWaitDlg);
diff --git a/src/Common/EncryptionThreadPool.c b/src/Common/EncryptionThreadPool.c
index f120711..618e847 100644
--- a/src/Common/EncryptionThreadPool.c
+++ b/src/Common/EncryptionThreadPool.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/EncryptionThreadPool.h b/src/Common/EncryptionThreadPool.h
index 9bc10c9..6a28062 100644
--- a/src/Common/EncryptionThreadPool.h
+++ b/src/Common/EncryptionThreadPool.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Endian.c b/src/Common/Endian.c
index 0327a10..46f6e1b 100644
--- a/src/Common/Endian.c
+++ b/src/Common/Endian.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Endian.h b/src/Common/Endian.h
index fd4c901..ef242ba 100644
--- a/src/Common/Endian.h
+++ b/src/Common/Endian.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Exception.h b/src/Common/Exception.h
index e7a790a..cb4fefc 100644
--- a/src/Common/Exception.h
+++ b/src/Common/Exception.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Fat.c b/src/Common/Fat.c
index 7625e86..0d19561 100644
--- a/src/Common/Fat.c
+++ b/src/Common/Fat.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -139,7 +139,7 @@ PutBoot (fatparams * ft, unsigned char *boot)
int cnt = 0;
boot[cnt++] = 0xeb; /* boot jump */
- boot[cnt++] = 0x3c;
+ boot[cnt++] = (ft->size_fat == 32)? 0x58: 0x3c;
boot[cnt++] = 0x90;
memcpy (boot + cnt, "MSDOS5.0", 8); /* system id */
cnt += 8;
diff --git a/src/Common/Fat.h b/src/Common/Fat.h
index 2d1264c..375b9dc 100644
--- a/src/Common/Fat.h
+++ b/src/Common/Fat.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Format.c b/src/Common/Format.c
index ead6546..17b29ec 100644
--- a/src/Common/Format.c
+++ b/src/Common/Format.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -163,11 +163,12 @@ int TCFormatVolume (volatile FORMAT_VOL_PARAMETERS *volParams)
FormatSectorSize,
FALSE);
- if (nStatus != 0)
+ /* cryptoInfo sanity check to make Coverity happy eventhough it can't be NULL if nStatus = 0 */
+ if ((nStatus != 0) || !cryptoInfo)
{
burn (header, sizeof (header));
VirtualUnlock (header, sizeof (header));
- return nStatus;
+ return nStatus? nStatus : ERR_OUTOFMEMORY;
}
begin_format:
@@ -475,6 +476,7 @@ begin_format:
case FILESYS_NONE:
case FILESYS_NTFS:
case FILESYS_EXFAT:
+ case FILESYS_REFS:
if (volParams->bDevice && !StartFormatWriteThread())
{
@@ -626,7 +628,7 @@ begin_format:
}
#ifndef DEBUG
- if (volParams->quickFormat && volParams->fileSystem != FILESYS_NTFS && volParams->fileSystem != FILESYS_EXFAT)
+ if (volParams->quickFormat && volParams->fileSystem != FILESYS_NTFS && volParams->fileSystem != FILESYS_EXFAT && volParams->fileSystem != FILESYS_REFS)
Sleep (500); // User-friendly GUI
#endif
@@ -660,13 +662,13 @@ error:
goto fv_end;
}
- if (volParams->fileSystem == FILESYS_NTFS || volParams->fileSystem == FILESYS_EXFAT)
+ if (volParams->fileSystem == FILESYS_NTFS || volParams->fileSystem == FILESYS_EXFAT || volParams->fileSystem == FILESYS_REFS)
{
// Quick-format volume as NTFS
int driveNo = GetLastAvailableDrive ();
MountOptions mountOptions;
int retCode;
- int fsType = (volParams->fileSystem == FILESYS_EXFAT)? FILESYS_EXFAT: FILESYS_NTFS;
+ int fsType = volParams->fileSystem;
ZeroMemory (&mountOptions, sizeof (mountOptions));
@@ -932,6 +934,9 @@ BOOL FormatFs (int driveNo, int clusterSize, int fsType)
case FILESYS_EXFAT:
StringCchCopyW (szFsFormat, ARRAYSIZE (szFsFormat),L"EXFAT");
break;
+ case FILESYS_REFS:
+ StringCchCopyW (szFsFormat, ARRAYSIZE (szFsFormat),L"ReFS");
+ break;
default:
return FALSE;
}
diff --git a/src/Common/Format.h b/src/Common/Format.h
index 0d29ab3..961ece7 100644
--- a/src/Common/Format.h
+++ b/src/Common/Format.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -86,6 +86,7 @@ static void StopFormatWriteThread ();
#define FILESYS_FAT 1
#define FILESYS_NTFS 2
#define FILESYS_EXFAT 3
+#define FILESYS_REFS 4
#ifdef __cplusplus
}
diff --git a/src/Common/Keyfiles.c b/src/Common/Keyfiles.c
index 96e1cd7..9f756e5 100644
--- a/src/Common/Keyfiles.c
+++ b/src/Common/Keyfiles.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -617,7 +617,7 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
if (lw == IDC_LINK_KEYFILES_INFO)
{
- Applink ("keyfiles", TRUE, "");
+ Applink ("keyfiles");
return 1;
}
diff --git a/src/Common/Keyfiles.h b/src/Common/Keyfiles.h
index a247cbc..fb90a9d 100644
--- a/src/Common/Keyfiles.h
+++ b/src/Common/Keyfiles.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Language.c b/src/Common/Language.c
index cb0178d..255d654 100644
--- a/src/Common/Language.c
+++ b/src/Common/Language.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -103,7 +103,7 @@ static char *MapNextLanguageFile ()
if (t == NULL) return NULL;
*t = 0;
- StringCbCatW (f, sizeof(f), L"\\Language*.xml");
+ StringCbCatW (f, sizeof(f), L"\\Languages\\Language*.xml");
LanguageFileFindHandle = FindFirstFileW (f, &find);
}
@@ -130,6 +130,7 @@ static char *MapNextLanguageFile ()
}
t[1] = 0;
+ StringCbCatW (f, sizeof(f), L"Languages\\");
StringCbCatW (f, sizeof(f),find.cFileName);
file = CreateFileW (f, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
@@ -539,7 +540,7 @@ BOOL CALLBACK LanguageDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
else
tmpstr[0] = 0;
- Applink ("localizations", TRUE, tmpstr);
+ Applink ("localizations");
return 1;
}
diff --git a/src/Common/Language.h b/src/Common/Language.h
index 3b5501d..7ef75ef 100644
--- a/src/Common/Language.h
+++ b/src/Common/Language.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Language.xml b/src/Common/Language.xml
index 38f2cc4..ab348a8 100644
--- a/src/Common/Language.xml
+++ b/src/Common/Language.xml
@@ -170,7 +170,7 @@
<control lang="en" key="IDC_PREF_MOUNT_READONLY">Mount volumes as read-only</control>
<control lang="en" key="IDC_PREF_MOUNT_REMOVABLE">Mount volumes as removable media</control>
<control lang="en" key="IDC_PREF_OPEN_EXPLORER">Open Explorer window for successfully mounted volume</control>
- <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
+ <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporarily cache password during "Mount Favorite Volumes" operations</control>
<control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
<control lang="en" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Wipe cached passwords on auto-dismount</control>
<control lang="en" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Wipe cached passwords on exit</control>
@@ -394,7 +394,7 @@
<string lang="en" key="ADMIN_PRIVILEGES_DRIVER">In order to load the VeraCrypt driver, you need to be logged into an account with administrator privileges.</string>
<string lang="en" key="ADMIN_PRIVILEGES_WARN_DEVICES">Please note that in order to encrypt, decrypt or format a partition/device you need to be logged into an account with administrator privileges.\n\nThis does not apply to file-hosted volumes.</string>
<string lang="en" key="ADMIN_PRIVILEGES_WARN_HIDVOL">In order to create a hidden volume you need to be logged into an account with administrator privileges.\n\nContinue?</string>
- <string lang="en" key="ADMIN_PRIVILEGES_WARN_NTFS">Please note that in order to format the volume as NTFS/exFAT you need to be logged into an account with administrator privileges.\n\nWithout administrator privileges, you can format the volume as FAT.</string>
+ <string lang="en" key="ADMIN_PRIVILEGES_WARN_NTFS">Please note that in order to format the volume as NTFS/exFAT/ReFS you need to be logged into an account with administrator privileges.\n\nWithout administrator privileges, you can format the volume as FAT.</string>
<string lang="en" key="AES_HELP">FIPS-approved cipher (Rijndael, published in 1998) that may be used by U.S. government departments and agencies to protect classified information up to the Top Secret level. 256-bit key, 128-bit block, 14 rounds (AES-256). Mode of operation is XTS.</string>
<string lang="en" key="ALREADY_MOUNTED">Volume is already mounted.</string>
<string lang="en" key="ERR_SELF_TESTS_FAILED">CAUTION: At least one encryption or hash algorithm failed the built-in automatic self-tests!\n\nVeraCrypt installation may be corrupted.</string>
@@ -540,8 +540,8 @@
<string lang="en" key="HIDVOL_PROT_WARN_AFTER_MOUNT">The hidden volume is now protected against damage until the outer volume is dismounted.\n\nWARNING: If any data is attempted to be saved to the hidden volume area, VeraCrypt will start write-protecting the entire volume (both the outer and the hidden part) until it is dismounted. This may cause filesystem corruption on the outer volume, which (if repeated) might adversely affect plausible deniability of the hidden volume. Therefore, you should make every effort to avoid writing to the hidden volume area. Any data being saved to the hidden volume area will not be saved and will be lost. Windows may report this as a write error ("Delayed Write Failed" or "The parameter is incorrect").</string>
<string lang="en" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Each of the hidden volumes within the newly mounted volumes is now protected against damage until dismounted.\n\nWARNING: If any data is attempted to be saved to protected hidden volume area of any of these volumes, VeraCrypt will start write-protecting the entire volume (both the outer and the hidden part) until it is dismounted. This may cause filesystem corruption on the outer volume, which (if repeated) might adversely affect plausible deniability of the hidden volume. Therefore, you should make every effort to avoid writing to the hidden volume area. Any data being saved to protected hidden volume areas will not be saved and will be lost. Windows may report this as a write error ("Delayed Write Failed" or "The parameter is incorrect").</string>
<string lang="en" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">WARNING: Data were attempted to be saved to the hidden volume area of the volume mounted as %c:! VeraCrypt prevented these data from being saved in order to protect the hidden volume. This may have caused filesystem corruption on the outer volume and Windows may have reported a write error ("Delayed Write Failed" or "The parameter is incorrect"). The entire volume (both the outer and the hidden part) will be write-protected until it is dismounted. If this is not the first time VeraCrypt has prevented data from being saved to the hidden volume area of this volume, plausible deniability of this hidden volume might be adversely affected (due to possible unusual correlated inconsistencies within the outer volume file system). Therefore, you should consider creating a new VeraCrypt volume (with Quick Format disabled) and moving files from this volume to the new volume; this volume should be securely erased (both the outer and the hidden part). We strongly recommend that you restart the operating system now.</string>
- <string lang="en" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">You have indicated intent to store files larger than 4 GB on the volume. This requires the volume to be formatted as NTFS/exFAT, which, however, will not be possible.</string>
- <string lang="en" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Please note that when a hidden operating system is running, non-hidden VeraCrypt volumes cannot be formatted as NTFS/exFAT. The reason is that the volume would need to be temporarily mounted without write protection in order to allow the operating system to format it as NTFS (whereas formatting as FAT is performed by VeraCrypt, not by the operating system, and without mounting the volume). For further technical details, see below. You can create a non-hidden NTFS/exFAT volume from within the decoy operating system.</string>
+ <string lang="en" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">You have indicated intent to store files larger than 4 GB on the volume. This requires the volume to be formatted as NTFS/exFAT/ReFS, which, however, will not be possible.</string>
+ <string lang="en" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Please note that when a hidden operating system is running, non-hidden VeraCrypt volumes cannot be formatted as NTFS/exFAT/ReFS. The reason is that the volume would need to be temporarily mounted without write protection in order to allow the operating system to format it as NTFS (whereas formatting as FAT is performed by VeraCrypt, not by the operating system, and without mounting the volume). For further technical details, see below. You can create a non-hidden NTFS/exFAT/ReFS volume from within the decoy operating system.</string>
<string lang="en" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">For security reasons, when a hidden operating system is running, hidden volumes can be created only in the 'direct' mode (because outer volumes must always be mounted as read-only). To create a hidden volume securely, follow these steps:\n\n1) Boot the decoy system.\n\n2) Create a normal VeraCrypt volume and, to this volume, copy some sensitive-looking files that you actually do NOT want to hide (the volume will become the outer volume).\n\n3) Boot the hidden system and start the VeraCrypt Volume Creation Wizard. If the volume is file-hosted, move it to the system partition or to another hidden volume (otherwise, the newly created hidden volume would be mounted as read-only and could not be formatted). Follow the instructions in the wizard so as to select the 'direct' hidden volume creation mode.\n\n4) In the wizard, select the volume you created in step 2 and then follow the instructions to create a hidden volume within it.</string>
<string lang="en" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">For security reasons, when a hidden operating system is running, local unencrypted filesystems and non-hidden VeraCrypt volumes are mounted as read-only (no data can be written to such filesystems or VeraCrypt volumes).\n\nData is allowed to be written to any filesystem that resides within a hidden VeraCrypt volume (provided that the hidden volume is not located in a container stored on an unencrypted filesystem or on any other read-only filesystem).</string>
<string lang="en" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">There are three main reasons why such countermeasures have been implemented:\n\n- It enables the creation of a secure platform for mounting of hidden VeraCrypt volumes. Note that we officially recommend that hidden volumes are mounted only when a hidden operating system is running. (For more information, see the subsection 'Security Requirements and Precautions Pertaining to Hidden Volumes' in the documentation.)\n\n- In some cases, it is possible to determine that, at a certain time, a particular filesystem was not mounted under (or that a particular file on the filesystem was not saved or accessed from within) a particular instance of an operating system (e.g. by analyzing and comparing filesystem journals, file timestamps, application logs, error logs, etc). This might indicate that a hidden operating system is installed on the computer. The countermeasures prevent these issues.\n\n- It prevents data corruption and allows safe hibernation. When Windows resumes from hibernation, it assumes that all mounted filesystems are in the same state as when the system entered hibernation. VeraCrypt ensures this by write-protecting any filesystem accessible both from within the decoy and hidden systems. Without such protection, the filesystem could become corrupted when mounted by one system while the other system is hibernated.</string>
@@ -670,7 +670,7 @@
<string lang="en" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Select a directory where to store the keyfiles.</string>
<string lang="en" key="SELECTED_KEYFILE_IS_CONTAINER_FILE">The current container file was selected as a keyfile. It will be skipped.</string>
<string lang="en" key="SERPENT_HELP">Designed by Ross Anderson, Eli Biham, and Lars Knudsen. Published in 1998. 256-bit key, 128-bit block. Mode of operation is XTS. Serpent was one of the AES finalists.</string>
- <string lang="en" key="SIZE_HELP">Please specify the size of the container you want to create.\n\nIf you create a dynamic (sparse-file) container, this parameter will specify its maximum possible size.\n\nNote that the minimum possible size of a FAT volume is 292 KB. The minimum possible size of an exFAT volume is 424 KB. The minimum possible size of an NTFS volume is 3792 KB.</string>
+ <string lang="en" key="SIZE_HELP">Please specify the size of the container you want to create.\n\nIf you create a dynamic (sparse-file) container, this parameter will specify its maximum possible size.\n\nNote that the minimum possible size of a FAT volume is 292 KB. The minimum possible size of an exFAT volume is 424 KB. The minimum possible size of an NTFS volume is 3792 KB. The minimum possible size of an ReFS volume is 642 MB.</string>
<string lang="en" key="SIZE_HELP_HIDDEN_HOST_VOL">Please specify the size of the outer volume to be created (you will first create the outer volume and then a hidden volume within it). The minimum possible size of a volume within which a hidden volume is intended to be created is 340 KB.</string>
<string lang="en" key="SIZE_HELP_HIDDEN_VOL">Please specify the size of the hidden volume to create. The minimum possible size of a hidden volume is 40 KB (or 3664 KB if it is formatted as NTFS). The maximum possible size you can specify for the hidden volume is displayed above.</string>
<string lang="en" key="SIZE_HIDVOL_HOST_TITLE">Outer Volume Size</string>
@@ -729,11 +729,11 @@
<string lang="en" key="ALL_FILES">All Files</string>
<string lang="en" key="TC_VOLUMES">VeraCrypt Volumes</string>
<string lang="en" key="DLL_FILES">Library Modules</string>
- <string lang="en" key="FORMAT_NTFS_STOP">NTFS/exFAT formatting cannot continue.</string>
+ <string lang="en" key="FORMAT_NTFS_STOP">NTFS/exFAT/ReFS formatting cannot continue.</string>
<string lang="en" key="CANT_MOUNT_VOLUME">Cannot mount volume.</string>
<string lang="en" key="CANT_DISMOUNT_VOLUME">Cannot dismount volume.</string>
- <string lang="en" key="FORMAT_NTFS_FAILED">Windows failed to format the volume as NTFS/exFAT.\n\nPlease select a different type of file system (if possible) and try again. Alternatively, you could leave the volume unformatted (select 'None' as the filesystem), exit this wizard, mount the volume, and then use either a system or a third-party tool to format the mounted volume (the volume will remain encrypted).</string>
- <string lang="en" key="FORMAT_NTFS_FAILED_ASK_FAT">Windows failed to format the volume as NTFS/exFAT.\n\nDo you want to format the volume as FAT instead?</string>
+ <string lang="en" key="FORMAT_NTFS_FAILED">Windows failed to format the volume as NTFS/exFAT/ReFS.\n\nPlease select a different type of file system (if possible) and try again. Alternatively, you could leave the volume unformatted (select 'None' as the filesystem), exit this wizard, mount the volume, and then use either a system or a third-party tool to format the mounted volume (the volume will remain encrypted).</string>
+ <string lang="en" key="FORMAT_NTFS_FAILED_ASK_FAT">Windows failed to format the volume as NTFS/exFAT/ReFS.\n\nDo you want to format the volume as FAT instead?</string>
<string lang="en" key="DEFAULT">Default</string>
<string lang="en" key="PARTITION_LOWER_CASE">partition</string>
<string lang="en" key="PARTITION_UPPER_CASE">PARTITION</string>
@@ -857,7 +857,7 @@
<string lang="en" key="TC_INSTALLER_IS_RUNNING">VeraCrypt Installer is currently running on this system and performing or preparing installation or update of VeraCrypt. Before you proceed, please wait for it to finish or close it. If you cannot close it, please restart your computer before proceeding.</string>
<string lang="en" key="INSTALL_FAILED">Installation failed.</string>
<string lang="en" key="UNINSTALL_FAILED">Uninstallation failed.</string>
- <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://veracrypt.codeplex.com).</string>
+ <string lang="en" key="DIST_PACKAGE_CORRUPTED">This distribution package is damaged. Please try downloading it again (preferably from the official VeraCrypt website at https://www.veracrypt.fr).</string>
<string lang="en" key="CANNOT_WRITE_FILE_X">Cannot write file %s</string>
<string lang="en" key="EXTRACTING_VERB">Extracting</string>
<string lang="en" key="CANNOT_READ_FROM_PACKAGE">Cannot read data from the package.</string>
@@ -1232,7 +1232,7 @@
<string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several hours or even several days (depending on the size of the system partition and on the performance of your computer).\n\nYou will be able to interrupt the process, shut down your computer, start the operating system and then resume the process. However, if you interrupt it, the entire process of copying the system will have to start from the beginning (because the content of the system partition must not change during cloning).</string>
<string lang="en" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Do you want to cancel the entire process of creation of the hidden operating system?\n\nNote: You will NOT be able to resume the process if you cancel it now.</string>
<string lang="en" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Do you want to cancel the system encryption pretest?</string>
- <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
+ <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://www.veracrypt.fr/en/Troubleshooting.html</string>
<string lang="en" key="SYS_DRIVE_NOT_ENCRYPTED">The system partition/drive does not appear to be encrypted (neither partially nor fully).</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Your system partition/drive is encrypted (partially or fully).\n\nPlease decrypt your system partition/drive entirely before proceeding. To do so, select 'System' &gt; 'Permanently Decrypt System Partition/Drive' from the menu bar of the main VeraCrypt window.</string>
<string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
@@ -1413,6 +1413,15 @@
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
+ <control lang="en" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">Use Secure Desktop for password entry</control>
+ <string lang="en" key="ERR_REFS_INVALID_VOLUME_SIZE">The volume file size specified in the command line is incompatible with selected ReFS filesystem.</string>
+ <control lang="en" key="IDC_EDIT_DCSPROP">Edit Boot Loader Configuration</control>
+ <control lang="en" key="IDC_SHOW_PLATFORMINFO">Display EFI Platform Information</control>
+ <string lang="en" key="BOOT_LOADER_CONFIGURATION_FILE">Boot Loader Configuration File</string>
+ <string lang="en" key="EFI_PLATFORM_INFORMATION">EFI Platform Information</string>
+ <string lang="en" key="EDIT_DCSPROP_FOR_ADVANCED_ONLY">WARNING: Inexperienced users should never attempt to manually edit boot loader configurations.\n\nContinue?</string>
+ <string lang="en" key="DCSPROP_XML_VALIDATION_FAILED">WARNING: Failed to validate the XML format of the Boot Loader configuration. Please check your modifications.</string>
+ <control lang="en" key="IDT_ADVANCED_OPTIONS">Advanced Options</control>
</localization>
<!-- XML Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/src/Common/Password.c b/src/Common/Password.c
index 1c9083a..8ba9137 100644
--- a/src/Common/Password.c
+++ b/src/Common/Password.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -133,14 +133,15 @@ BOOL CheckPasswordCharEncoding (HWND hPassword, Password *ptrPw)
}
-BOOL CheckPasswordLength (HWND hwndDlg, unsigned __int32 passwordLength, int pim, BOOL bForBoot, BOOL bSkipPasswordWarning, BOOL bSkipPimWarning)
+BOOL CheckPasswordLength (HWND hwndDlg, unsigned __int32 passwordLength, int pim, BOOL bForBoot, int bootPRF, BOOL bSkipPasswordWarning, BOOL bSkipPimWarning)
{
- BOOL bCustomPimSmall = ((pim != 0) && (pim < (bForBoot? 98 : 485)))? TRUE : FALSE;
+ BOOL bootPimCondition = (bForBoot && (bootPRF != SHA512 && bootPRF != WHIRLPOOL))? TRUE : FALSE;
+ BOOL bCustomPimSmall = ((pim != 0) && (pim < (bootPimCondition? 98 : 485)))? TRUE : FALSE;
if (passwordLength < PASSWORD_LEN_WARNING)
{
if (bCustomPimSmall)
{
- Error (bForBoot? "BOOT_PIM_REQUIRE_LONG_PASSWORD": "PIM_REQUIRE_LONG_PASSWORD", hwndDlg);
+ Error (bootPimCondition? "BOOT_PIM_REQUIRE_LONG_PASSWORD": "PIM_REQUIRE_LONG_PASSWORD", hwndDlg);
return FALSE;
}
@@ -157,7 +158,7 @@ BOOL CheckPasswordLength (HWND hwndDlg, unsigned __int32 passwordLength, int pim
}
#endif
- if ((pim != 0) && (pim > (bForBoot? 98 : 485)))
+ if ((pim != 0) && (pim > (bootPimCondition? 98 : 485)))
{
// warn that mount/boot will take more time
Warning ("PIM_LARGE_WARNING", hwndDlg);
@@ -186,7 +187,7 @@ int ChangePwd (const wchar_t *lpszVolume, Password *oldPassword, int old_pkcs5,
BOOL bTimeStampValid = FALSE;
LARGE_INTEGER headerOffset;
BOOL backupHeader;
- DISK_GEOMETRY driveInfo;
+ DISK_GEOMETRY_EX driveInfo;
if (oldPassword->Length == 0 || newPassword->Length == 0) return -1;
@@ -239,7 +240,7 @@ int ChangePwd (const wchar_t *lpszVolume, Password *oldPassword, int old_pkcs5,
DWORD dwResult;
BOOL bResult;
- bResult = DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0,
+ bResult = DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0,
&driveInfo, sizeof (driveInfo), &dwResult, NULL);
if (!bResult)
@@ -253,8 +254,7 @@ int ChangePwd (const wchar_t *lpszVolume, Password *oldPassword, int old_pkcs5,
}
else
{
- hostSize = driveInfo.Cylinders.QuadPart * driveInfo.BytesPerSector *
- driveInfo.SectorsPerTrack * driveInfo.TracksPerCylinder;
+ hostSize = driveInfo.DiskSize.QuadPart;
}
if (hostSize == 0)
diff --git a/src/Common/Password.h b/src/Common/Password.h
index 9ef2f03..b2b0511 100644
--- a/src/Common/Password.h
+++ b/src/Common/Password.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -39,7 +39,7 @@ typedef struct
#if defined(_WIN32) && !defined(TC_WINDOWS_DRIVER) && !defined(_UEFI)
void VerifyPasswordAndUpdate ( HWND hwndDlg , HWND hButton , HWND hPassword , HWND hVerify , unsigned char *szPassword , char *szVerify, BOOL keyFilesEnabled );
-BOOL CheckPasswordLength (HWND hwndDlg, unsigned __int32 passwordLength, int pim, BOOL bForBoot, BOOL bSkipPasswordWarning, BOOL bSkipPimWarning);
+BOOL CheckPasswordLength (HWND hwndDlg, unsigned __int32 passwordLength, int pim, BOOL bForBoot, int bootPRF, BOOL bSkipPasswordWarning, BOOL bSkipPimWarning);
BOOL CheckPasswordCharEncoding (HWND hPassword, Password *ptrPw);
int ChangePwd (const wchar_t *lpszVolume, Password *oldPassword, int old_pkcs5, int old_pim, BOOL truecryptMode, Password *newPassword, int pkcs5, int pim, int wipePassCount, HWND hwndDlg);
diff --git a/src/Common/Pkcs5.c b/src/Common/Pkcs5.c
index 753c49b..28df35d 100644
--- a/src/Common/Pkcs5.c
+++ b/src/Common/Pkcs5.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -99,6 +99,18 @@ void hmac_sha256
char* buf = hmac.k;
int b;
char key[SHA256_DIGESTSIZE];
+#if defined (DEVICE_DRIVER)
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
+#ifdef _WIN64
+ XSTATE_SAVE SaveState;
+ if (g_isIntel && HasSAVX())
+ saveStatus = KeSaveExtendedProcessorState(XSTATE_MASK_GSSE, &SaveState);
+#else
+ KFLOATING_SAVE floatingPointState;
+ if (HasSSE2())
+ saveStatus = KeSaveFloatingPointState (&floatingPointState);
+#endif
+#endif
/* If the key is longer than the hash algorithm block size,
let key = sha256(key), as per HMAC specifications. */
if (lk > SHA256_BLOCKSIZE)
@@ -139,6 +151,16 @@ void hmac_sha256
sha256_hash ((unsigned char *) buf, SHA256_BLOCKSIZE, ctx);
hmac_sha256_internal(d, ld, &hmac);
+
+#if defined (DEVICE_DRIVER)
+ if (NT_SUCCESS (saveStatus))
+#ifdef _WIN64
+ KeRestoreExtendedProcessorState(&SaveState);
+#else
+ KeRestoreFloatingPointState (&floatingPointState);
+#endif
+#endif
+
/* Prevent leaks */
burn(&hmac, sizeof(hmac));
burn(key, sizeof(key));
@@ -204,6 +226,18 @@ void derive_key_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, uint32
int b, l, r;
#ifndef TC_WINDOWS_BOOT
char key[SHA256_DIGESTSIZE];
+#if defined (DEVICE_DRIVER)
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
+#ifdef _WIN64
+ XSTATE_SAVE SaveState;
+ if (g_isIntel && HasSAVX())
+ saveStatus = KeSaveExtendedProcessorState(XSTATE_MASK_GSSE, &SaveState);
+#else
+ KFLOATING_SAVE floatingPointState;
+ if (HasSSE2())
+ saveStatus = KeSaveFloatingPointState (&floatingPointState);
+#endif
+#endif
/* If the password is longer than the hash algorithm block size,
let pwd = sha256(pwd), as per HMAC specifications. */
if (pwd_len > SHA256_BLOCKSIZE)
@@ -267,6 +301,14 @@ void derive_key_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, uint32
derive_u_sha256 (salt, salt_len, iterations, b, &hmac);
memcpy (dk, hmac.u, r);
+#if defined (DEVICE_DRIVER)
+ if (NT_SUCCESS (saveStatus))
+#ifdef _WIN64
+ KeRestoreExtendedProcessorState(&SaveState);
+#else
+ KeRestoreFloatingPointState (&floatingPointState);
+#endif
+#endif
/* Prevent possible leaks. */
burn (&hmac, sizeof(hmac));
@@ -327,6 +369,18 @@ void hmac_sha512
char* buf = hmac.k;
int b;
char key[SHA512_DIGESTSIZE];
+#if defined (DEVICE_DRIVER)
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
+#ifdef _WIN64
+ XSTATE_SAVE SaveState;
+ if (g_isIntel && HasSAVX())
+ saveStatus = KeSaveExtendedProcessorState(XSTATE_MASK_GSSE, &SaveState);
+#else
+ KFLOATING_SAVE floatingPointState;
+ if (HasSSSE3() && HasMMX())
+ saveStatus = KeSaveFloatingPointState (&floatingPointState);
+#endif
+#endif
/* If the key is longer than the hash algorithm block size,
let key = sha512(key), as per HMAC specifications. */
@@ -369,6 +423,15 @@ void hmac_sha512
hmac_sha512_internal (d, ld, &hmac);
+#if defined (DEVICE_DRIVER)
+ if (NT_SUCCESS (saveStatus))
+#ifdef _WIN64
+ KeRestoreExtendedProcessorState(&SaveState);
+#else
+ KeRestoreFloatingPointState (&floatingPointState);
+#endif
+#endif
+
/* Prevent leaks */
burn (&hmac, sizeof(hmac));
burn (key, sizeof(key));
@@ -408,6 +471,18 @@ void derive_key_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, uint32
char* buf = hmac.k;
int b, l, r;
char key[SHA512_DIGESTSIZE];
+#if defined (DEVICE_DRIVER)
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
+#ifdef _WIN64
+ XSTATE_SAVE SaveState;
+ if (g_isIntel && HasSAVX())
+ saveStatus = KeSaveExtendedProcessorState(XSTATE_MASK_GSSE, &SaveState);
+#else
+ KFLOATING_SAVE floatingPointState;
+ if (HasSSSE3() && HasMMX())
+ saveStatus = KeSaveFloatingPointState (&floatingPointState);
+#endif
+#endif
/* If the password is longer than the hash algorithm block size,
let pwd = sha512(pwd), as per HMAC specifications. */
@@ -471,6 +546,14 @@ void derive_key_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, uint32
derive_u_sha512 (salt, salt_len, iterations, b, &hmac);
memcpy (dk, hmac.u, r);
+#if defined (DEVICE_DRIVER)
+ if (NT_SUCCESS (saveStatus))
+#ifdef _WIN64
+ KeRestoreExtendedProcessorState(&SaveState);
+#else
+ KeRestoreFloatingPointState (&floatingPointState);
+#endif
+#endif
/* Prevent possible leaks. */
burn (&hmac, sizeof(hmac));
@@ -750,7 +833,7 @@ void hmac_whirlpool
char key[WHIRLPOOL_DIGESTSIZE];
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
KFLOATING_SAVE floatingPointState;
- NTSTATUS saveStatus = STATUS_SUCCESS;
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
if (HasISSE())
saveStatus = KeSaveFloatingPointState (&floatingPointState);
#endif
@@ -796,7 +879,7 @@ void hmac_whirlpool
hmac_whirlpool_internal(d, ld, &hmac);
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
- if (NT_SUCCESS (saveStatus) && HasISSE())
+ if (NT_SUCCESS (saveStatus))
KeRestoreFloatingPointState (&floatingPointState);
#endif
/* Prevent leaks */
@@ -838,7 +921,7 @@ void derive_key_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, uin
int b, l, r;
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
KFLOATING_SAVE floatingPointState;
- NTSTATUS saveStatus = STATUS_SUCCESS;
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
if (HasISSE())
saveStatus = KeSaveFloatingPointState (&floatingPointState);
#endif
@@ -905,7 +988,7 @@ void derive_key_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, uin
memcpy (dk, hmac.u, r);
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
- if (NT_SUCCESS (saveStatus) && HasISSE())
+ if (NT_SUCCESS (saveStatus))
KeRestoreFloatingPointState (&floatingPointState);
#endif
@@ -965,7 +1048,7 @@ void hmac_streebog
CRYPTOPP_ALIGN_DATA(16) char key[STREEBOG_DIGESTSIZE];
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
KFLOATING_SAVE floatingPointState;
- NTSTATUS saveStatus = STATUS_SUCCESS;
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
if (HasSSE2() || HasSSE41())
saveStatus = KeSaveFloatingPointState (&floatingPointState);
#endif
@@ -1011,7 +1094,7 @@ void hmac_streebog
hmac_streebog_internal(d, ld, &hmac);
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
- if (NT_SUCCESS (saveStatus) && (HasSSE2() || HasSSE41()))
+ if (NT_SUCCESS (saveStatus))
KeRestoreFloatingPointState (&floatingPointState);
#endif
/* Prevent leaks */
@@ -1053,7 +1136,7 @@ void derive_key_streebog (char *pwd, int pwd_len, char *salt, int salt_len, uint
int b, l, r;
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
KFLOATING_SAVE floatingPointState;
- NTSTATUS saveStatus = STATUS_SUCCESS;
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
if (HasSSE2() || HasSSE41())
saveStatus = KeSaveFloatingPointState (&floatingPointState);
#endif
@@ -1120,7 +1203,7 @@ void derive_key_streebog (char *pwd, int pwd_len, char *salt, int salt_len, uint
memcpy (dk, hmac.u, r);
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
- if (NT_SUCCESS (saveStatus) && (HasSSE2() || HasSSE41()))
+ if (NT_SUCCESS (saveStatus))
KeRestoreFloatingPointState (&floatingPointState);
#endif
@@ -1209,4 +1292,29 @@ int get_pkcs5_iteration_count (int pkcs5_prf_id, int pim, BOOL truecryptMode, BO
return 0;
}
+int is_pkcs5_prf_supported (int pkcs5_prf_id, BOOL truecryptMode, PRF_BOOT_TYPE bootType)
+{
+ if (pkcs5_prf_id == 0) // auto-detection always supported
+ return 1;
+
+ if (truecryptMode)
+ {
+ if ( (bootType == PRF_BOOT_GPT)
+ || (bootType == PRF_BOOT_MBR && pkcs5_prf_id != RIPEMD160)
+ || (bootType == PRF_BOOT_NO && pkcs5_prf_id != SHA512 && pkcs5_prf_id != WHIRLPOOL && pkcs5_prf_id != RIPEMD160)
+ )
+ return 0;
+ }
+ else
+ {
+ if ( (bootType == PRF_BOOT_MBR && pkcs5_prf_id != RIPEMD160 && pkcs5_prf_id != SHA256)
+ || (bootType != PRF_BOOT_MBR && (pkcs5_prf_id < FIRST_PRF_ID || pkcs5_prf_id > LAST_PRF_ID))
+ )
+ return 0;
+ }
+
+ return 1;
+
+}
+
#endif //!TC_WINDOWS_BOOT
diff --git a/src/Common/Pkcs5.h b/src/Common/Pkcs5.h
index 261df85..98d8bf7 100644
--- a/src/Common/Pkcs5.h
+++ b/src/Common/Pkcs5.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -42,6 +42,16 @@ void derive_key_streebog (char *pwd, int pwd_len, char *salt, int salt_len, uint
int get_pkcs5_iteration_count (int pkcs5_prf_id, int pim, BOOL truecryptMode, BOOL bBoot);
wchar_t *get_pkcs5_prf_name (int pkcs5_prf_id);
+
+/* check if given PRF supported.*/
+typedef enum
+{
+ PRF_BOOT_NO = 0,
+ PRF_BOOT_MBR,
+ PRF_BOOT_GPT
+} PRF_BOOT_TYPE;
+
+int is_pkcs5_prf_supported (int pkcs5_prf_id, BOOL truecryptMode, PRF_BOOT_TYPE bootType);
#endif
#if defined(__cplusplus)
diff --git a/src/Common/Progress.c b/src/Common/Progress.c
index 42ff763..2619b17 100644
--- a/src/Common/Progress.c
+++ b/src/Common/Progress.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Progress.h b/src/Common/Progress.h
index 0410023..d86e51a 100644
--- a/src/Common/Progress.h
+++ b/src/Common/Progress.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Random.c b/src/Common/Random.c
index ba1691d..6c95cf6 100644
--- a/src/Common/Random.c
+++ b/src/Common/Random.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Random.h b/src/Common/Random.h
index f41428f..46fe59a 100644
--- a/src/Common/Random.h
+++ b/src/Common/Random.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Registry.c b/src/Common/Registry.c
index 3daf3a4..b04bbf6 100644
--- a/src/Common/Registry.c
+++ b/src/Common/Registry.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Registry.h b/src/Common/Registry.h
index 37bb1bd..ea449d3 100644
--- a/src/Common/Registry.h
+++ b/src/Common/Registry.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Resource.h b/src/Common/Resource.h
index b8cd3d7..7106b3b 100644
--- a/src/Common/Resource.h
+++ b/src/Common/Resource.h
@@ -59,26 +59,28 @@
#define IDR_RESCUE_LOADER_AES_SHA2 555
#define IDR_RESCUE_LOADER_SERPENT_SHA2 556
#define IDR_RESCUE_LOADER_TWOFISH_SHA2 557
-#define IDR_BOOT_SECTOR_CAMELLIA 558
-#define IDR_BOOT_LOADER_CAMELLIA 559
-#define IDR_RESCUE_BOOT_SECTOR_CAMELLIA 560
-#define IDR_RESCUE_LOADER_CAMELLIA 561
-#define IDR_BOOT_SECTOR_CAMELLIA_SHA2 562
-#define IDR_BOOT_LOADER_CAMELLIA_SHA2 563
+#define IDR_BOOT_SECTOR_CAMELLIA 558
+#define IDR_BOOT_LOADER_CAMELLIA 559
+#define IDR_RESCUE_BOOT_SECTOR_CAMELLIA 560
+#define IDR_RESCUE_LOADER_CAMELLIA 561
+#define IDR_BOOT_SECTOR_CAMELLIA_SHA2 562
+#define IDR_BOOT_LOADER_CAMELLIA_SHA2 563
#define IDR_RESCUE_BOOT_SECTOR_CAMELLIA_SHA2 564
-#define IDR_RESCUE_LOADER_CAMELLIA_SHA2 565
+#define IDR_RESCUE_LOADER_CAMELLIA_SHA2 565
#define IDR_EFI_DCSBOOT 566
#define IDR_EFI_DCSINT 567
#define IDR_EFI_DCSCFG 568
#define IDR_EFI_LEGACYSPEAKER 569
-#define IDR_EFI_DCSBML 570
-#define IDR_EFI_DCSRE 571
+#define IDR_EFI_DCSBML 570
+#define IDR_EFI_DCSRE 571
#define IDR_EFI_DCSBOOT32 572
#define IDR_EFI_DCSINT32 573
#define IDR_EFI_DCSCFG32 574
#define IDR_EFI_LEGACYSPEAKER32 575
-#define IDR_EFI_DCSBML32 576
-#define IDR_EFI_DCSRE32 577
+#define IDR_EFI_DCSBML32 576
+#define IDR_EFI_DCSRE32 577
+#define IDR_EFI_DCSINFO 578
+#define IDR_EFI_DCSINFO32 579
#define IDC_HW_AES_LABEL_LINK 5000
#define IDC_HW_AES 5001
#define IDC_PARALLELIZATION_LABEL_LINK 5002
@@ -220,6 +222,7 @@
#define IDT_BENCHMARK 5138
#define IDC_BENCHMARK_LIST 5139
#define IDC_BENCHMARK_PREBOOT 5140
+#define IDD_TEXT_EDIT_DLG 5141
// Next default values for new objects
//
diff --git a/src/Common/SecurityToken.cpp b/src/Common/SecurityToken.cpp
index 05defe5..841ca72 100644
--- a/src/Common/SecurityToken.cpp
+++ b/src/Common/SecurityToken.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/SecurityToken.h b/src/Common/SecurityToken.h
index 32abfcb..1112f11 100644
--- a/src/Common/SecurityToken.h
+++ b/src/Common/SecurityToken.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Tcdefs.h b/src/Common/Tcdefs.h
index e81cf1c..68bd635 100644
--- a/src/Common/Tcdefs.h
+++ b/src/Common/Tcdefs.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -55,15 +55,15 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift);
#define TC_APP_NAME "VeraCrypt"
// Version displayed to user
-#define VERSION_STRING "1.19"
+#define VERSION_STRING "1.21"
// Version number to compare against driver
-#define VERSION_NUM 0x0119
+#define VERSION_NUM 0x0121
// Release date
-#define TC_STR_RELEASE_DATE L"October 17th, 2016"
-#define TC_RELEASE_DATE_YEAR 2016
-#define TC_RELEASE_DATE_MONTH 10
+#define TC_STR_RELEASE_DATE L"July 9, 2017"
+#define TC_RELEASE_DATE_YEAR 2017
+#define TC_RELEASE_DATE_MONTH 07
#define BYTES_PER_KB 1024LL
#define BYTES_PER_MB 1048576LL
@@ -235,7 +235,15 @@ void ThrowFatalException(int line);
#include <ntddk.h> /* Standard header file for nt drivers */
#include <ntdddisk.h> /* Standard I/O control codes */
-#define TCalloc(size) ((void *) ExAllocatePoolWithTag( NonPagedPool, size, 'MMCV' ))
+/* defines needed for using enhanced protection of NX pool under Windows 8 and later */
+#define NonPagedPoolNx 512
+#define MdlMappingNoExecute 0x40000000
+
+/* variables used in the implementation of enhanced protection of NX pool under Windows 8 and later */
+extern POOL_TYPE ExDefaultNonPagedPoolType;
+extern ULONG ExDefaultMdlProtection;
+
+#define TCalloc(size) ((void *) ExAllocatePoolWithTag( ExDefaultNonPagedPoolType, size, 'MMCV' ))
#define TCfree(memblock) ExFreePoolWithTag( memblock, 'MMCV' )
#define DEVICE_DRIVER
@@ -252,6 +260,26 @@ typedef int BOOL;
#define FALSE !TRUE
#endif
+typedef NTSTATUS (NTAPI *KeSaveExtendedProcessorStateFn) (
+ __in ULONG64 Mask,
+ PXSTATE_SAVE XStateSave
+ );
+
+
+typedef VOID (NTAPI *KeRestoreExtendedProcessorStateFn) (
+ PXSTATE_SAVE XStateSave
+ );
+
+extern NTSTATUS NTAPI KeSaveExtendedProcessorState (
+ __in ULONG64 Mask,
+ PXSTATE_SAVE XStateSave
+ );
+
+
+extern VOID NTAPI KeRestoreExtendedProcessorState (
+ PXSTATE_SAVE XStateSave
+ );
+
#else /* !TC_WINDOWS_DRIVER */
#if !defined(_UEFI)
#define TCalloc malloc
@@ -359,9 +387,8 @@ void EraseMemory (void *memory, int size);
#define MAX_URL_LENGTH 2084 /* Internet Explorer limit. Includes the terminating null character. */
-#define TC_HOMEPAGE "http://www.idrix.fr/"
-#define TC_APPLINK "https://veracrypt.codeplex.com"
-#define TC_APPLINK_SECURE "https://veracrypt.codeplex.com"
+#define TC_HOMEPAGE L"https://www.idrix.fr/"
+#define TC_APPLINK L"https://www.veracrypt.fr"
enum
{
diff --git a/src/Common/Tests.c b/src/Common/Tests.c
index cf0c869..77a7aa2 100644
--- a/src/Common/Tests.c
+++ b/src/Common/Tests.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -583,8 +583,8 @@ BOOL RunHashTest (HashFunction fn, HashTestVector* vector, BOOL bUseSSE)
BOOL bRet = TRUE;
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
KFLOATING_SAVE floatingPointState;
- NTSTATUS saveStatus = STATUS_SUCCESS;
- if (bUseSSE && (HasSSE2() || HasSSE41()))
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
+ if (bUseSSE)
saveStatus = KeSaveFloatingPointState (&floatingPointState);
#endif
while (vector[i].hexInput && vector[i].hexOutput)
@@ -601,7 +601,7 @@ BOOL RunHashTest (HashFunction fn, HashTestVector* vector, BOOL bUseSSE)
}
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
- if (NT_SUCCESS (saveStatus) && bUseSSE && (HasSSE2() || HasSSE41()))
+ if (NT_SUCCESS (saveStatus))
KeRestoreFloatingPointState (&floatingPointState);
#endif
@@ -1355,18 +1355,45 @@ BOOL AutoTestAlgorithms (void)
{
BOOL result = TRUE;
BOOL hwEncryptionEnabled = IsHwEncryptionEnabled();
+#if defined (_MSC_VER) && !defined (_UEFI)
+ BOOL exceptionCatched = FALSE;
+ __try
+ {
+#endif
+ EnableHwEncryption (FALSE);
- EnableHwEncryption (FALSE);
+ if (!DoAutoTestAlgorithms())
+ result = FALSE;
- if (!DoAutoTestAlgorithms())
- result = FALSE;
+ EnableHwEncryption (TRUE);
- EnableHwEncryption (TRUE);
+ if (!DoAutoTestAlgorithms())
+ result = FALSE;
- if (!DoAutoTestAlgorithms())
- result = FALSE;
+ EnableHwEncryption (hwEncryptionEnabled);
+#if defined (_MSC_VER) && !defined (_UEFI)
+ }
+ __except (EXCEPTION_EXECUTE_HANDLER)
+ {
+ exceptionCatched = TRUE;
+ }
- EnableHwEncryption (hwEncryptionEnabled);
+ if (exceptionCatched)
+ {
+ /* unexepected exception raised. Disable all CPU extended feature and try again */
+ EnableHwEncryption (hwEncryptionEnabled);
+ DisableCPUExtendedFeatures ();
+ __try
+ {
+ result = DoAutoTestAlgorithms();
+ }
+ __except (EXCEPTION_EXECUTE_HANDLER)
+ {
+ /* exception still occuring. Report failure. */
+ result = FALSE;
+ }
+ }
+#endif
return result;
}
@@ -1508,7 +1535,7 @@ BOOL test_pkcs5 ()
return FALSE;
/* STREEBOG hash tests */
- if (RunHashTest (StreebogHash, Streebog512TestVectors, TRUE) == FALSE)
+ if (RunHashTest (StreebogHash, Streebog512TestVectors, (HasSSE2() || HasSSE41())? TRUE : FALSE) == FALSE)
return FALSE;
/* PKCS-5 test 1 with HMAC-SHA-256 used as the PRF (https://tools.ietf.org/html/draft-josefsson-scrypt-kdf-00) */
diff --git a/src/Common/Tests.h b/src/Common/Tests.h
index f2f9950..6aff505 100644
--- a/src/Common/Tests.h
+++ b/src/Common/Tests.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Common/Volumes.c b/src/Common/Volumes.c
index d232176..32da282 100644
--- a/src/Common/Volumes.c
+++ b/src/Common/Volumes.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -1155,21 +1155,21 @@ BOOL ReadEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header, DW
#endif
byte sectorBuffer[TC_MAX_VOLUME_SECTOR_SIZE];
- DISK_GEOMETRY geometry;
+ DISK_GEOMETRY_EX geometry;
if (!device)
return ReadFile (fileHandle, header, TC_VOLUME_HEADER_EFFECTIVE_SIZE, bytesRead, NULL);
- if (!DeviceIoControl (fileHandle, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &geometry, sizeof (geometry), bytesRead, NULL))
+ if (!DeviceIoControl (fileHandle, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, &geometry, sizeof (geometry), bytesRead, NULL))
return FALSE;
- if (geometry.BytesPerSector > sizeof (sectorBuffer) || geometry.BytesPerSector < TC_MIN_VOLUME_SECTOR_SIZE)
+ if (geometry.Geometry.BytesPerSector > sizeof (sectorBuffer) || geometry.Geometry.BytesPerSector < TC_MIN_VOLUME_SECTOR_SIZE)
{
SetLastError (ERROR_INVALID_PARAMETER);
return FALSE;
}
- if (!ReadFile (fileHandle, sectorBuffer, max (TC_VOLUME_HEADER_EFFECTIVE_SIZE, geometry.BytesPerSector), bytesRead, NULL))
+ if (!ReadFile (fileHandle, sectorBuffer, max (TC_VOLUME_HEADER_EFFECTIVE_SIZE, geometry.Geometry.BytesPerSector), bytesRead, NULL))
return FALSE;
memcpy (header, sectorBuffer, min (*bytesRead, TC_VOLUME_HEADER_EFFECTIVE_SIZE));
@@ -1189,7 +1189,7 @@ BOOL WriteEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header)
byte sectorBuffer[TC_MAX_VOLUME_SECTOR_SIZE];
DWORD bytesDone;
- DISK_GEOMETRY geometry;
+ DISK_GEOMETRY_EX geometry;
if (!device)
{
@@ -1205,23 +1205,23 @@ BOOL WriteEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header)
return TRUE;
}
- if (!DeviceIoControl (fileHandle, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &geometry, sizeof (geometry), &bytesDone, NULL))
+ if (!DeviceIoControl (fileHandle, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, &geometry, sizeof (geometry), &bytesDone, NULL))
return FALSE;
- if (geometry.BytesPerSector > sizeof (sectorBuffer) || geometry.BytesPerSector < TC_MIN_VOLUME_SECTOR_SIZE)
+ if (geometry.Geometry.BytesPerSector > sizeof (sectorBuffer) || geometry.Geometry.BytesPerSector < TC_MIN_VOLUME_SECTOR_SIZE)
{
SetLastError (ERROR_INVALID_PARAMETER);
return FALSE;
}
- if (geometry.BytesPerSector != TC_VOLUME_HEADER_EFFECTIVE_SIZE)
+ if (geometry.Geometry.BytesPerSector != TC_VOLUME_HEADER_EFFECTIVE_SIZE)
{
LARGE_INTEGER seekOffset;
- if (!ReadFile (fileHandle, sectorBuffer, geometry.BytesPerSector, &bytesDone, NULL))
+ if (!ReadFile (fileHandle, sectorBuffer, geometry.Geometry.BytesPerSector, &bytesDone, NULL))
return FALSE;
- if (bytesDone != geometry.BytesPerSector)
+ if (bytesDone != geometry.Geometry.BytesPerSector)
{
SetLastError (ERROR_INVALID_PARAMETER);
return FALSE;
@@ -1234,10 +1234,10 @@ BOOL WriteEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header)
memcpy (sectorBuffer, header, TC_VOLUME_HEADER_EFFECTIVE_SIZE);
- if (!WriteFile (fileHandle, sectorBuffer, geometry.BytesPerSector, &bytesDone, NULL))
+ if (!WriteFile (fileHandle, sectorBuffer, geometry.Geometry.BytesPerSector, &bytesDone, NULL))
return FALSE;
- if (bytesDone != geometry.BytesPerSector)
+ if (bytesDone != geometry.Geometry.BytesPerSector)
{
SetLastError (ERROR_INVALID_PARAMETER);
return FALSE;
diff --git a/src/Common/Volumes.h b/src/Common/Volumes.h
index 3fe3a45..0877671 100644
--- a/src/Common/Volumes.h
+++ b/src/Common/Volumes.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -77,6 +77,8 @@ extern "C" {
#define TC_MAX_FAT_CLUSTER_SIZE (256 * BYTES_PER_KB) // Windows XP/Vista may crash when writing to a filesystem using clusters larger than 256 KB
#define TC_MIN_EXFAT_FS_SIZE (42 * TC_MAX_VOLUME_SECTOR_SIZE)
#define TC_MAX_EXFAT_FS_SIZE (128LL * BYTES_PER_PB)
+#define TC_MIN_REFS_FS_SIZE (641 * BYTES_PER_MB) // minimal allowed volume size with 4KiB clusters. Determined empirically.
+#define TC_MAX_REFS_FS_SIZE (0xFFFFFFFFFFFFFFFFULL) // real limit is 1 Yobibyte but it's too large for 64-bit integer
// Volume size limits
#define TC_MIN_VOLUME_SIZE (TC_TOTAL_VOLUME_HEADERS_SIZE + TC_MIN_FAT_FS_SIZE)
diff --git a/src/Common/Wipe.c b/src/Common/Wipe.c
index 5b07ced..2fe6aa0 100644
--- a/src/Common/Wipe.c
+++ b/src/Common/Wipe.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Wipe.h b/src/Common/Wipe.h
index a6ca748..ef27eb0 100644
--- a/src/Common/Wipe.h
+++ b/src/Common/Wipe.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Xml.c b/src/Common/Xml.c
index 6abbed6..37b7349 100644
--- a/src/Common/Xml.c
+++ b/src/Common/Xml.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Xml.h b/src/Common/Xml.h
index ceae2bf..09b8543 100644
--- a/src/Common/Xml.h
+++ b/src/Common/Xml.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are governed by the Apache License 2.0 the full text of which is
contained in the file License.txt included in VeraCrypt binary and source
code distribution packages.
@@ -20,9 +20,9 @@ char *XmlGetAttributeText (char *xmlNode, const char *xmlAttrName, char *xmlAttr
char *XmlGetNodeText (char *xmlNode, char *xmlText, int xmlTextSize);
char *XmlFindElementByAttributeValue (char *xml, char *nodeName, const char *attrName, const char *attrValue);
char *XmlQuoteText (const char *textSrc, char *textDst, int textDstMaxSize);
-wchar_t *XmlQuoteTextW (const wchar_t *textSrc, wchar_t *textDst, int textDstMaxSize);
#if !defined(_UEFI)
+wchar_t *XmlQuoteTextW(const wchar_t *textSrc, wchar_t *textDst, int textDstMaxSize);
int XmlWriteHeader (FILE *file);
int XmlWriteFooter (FILE *file);
#endif !defined(_UEFI)
diff --git a/src/Common/Xts.c b/src/Common/Xts.c
index 87c9de0..1ff3e08 100644
--- a/src/Common/Xts.c
+++ b/src/Common/Xts.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Xts.h b/src/Common/Xts.h
index 2cf0a95..b4b4058 100644
--- a/src/Common/Xts.h
+++ b/src/Common/Xts.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Common/Zip.vcxproj b/src/Common/Zip.vcxproj
new file mode 100644
index 0000000..3ed4358
--- /dev/null
+++ b/src/Common/Zip.vcxproj
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="libzip\mkstemp.c" />
+ <ClCompile Include="libzip\zip_add.c" />
+ <ClCompile Include="libzip\zip_add_dir.c" />
+ <ClCompile Include="libzip\zip_add_entry.c" />
+ <ClCompile Include="libzip\zip_buffer.c" />
+ <ClCompile Include="libzip\zip_close.c" />
+ <ClCompile Include="libzip\zip_delete.c" />
+ <ClCompile Include="libzip\zip_dirent.c" />
+ <ClCompile Include="libzip\zip_dir_add.c" />
+ <ClCompile Include="libzip\zip_discard.c" />
+ <ClCompile Include="libzip\zip_entry.c" />
+ <ClCompile Include="libzip\zip_error.c" />
+ <ClCompile Include="libzip\zip_error_clear.c" />
+ <ClCompile Include="libzip\zip_error_get.c" />
+ <ClCompile Include="libzip\zip_error_get_sys_type.c" />
+ <ClCompile Include="libzip\zip_error_strerror.c" />
+ <ClCompile Include="libzip\zip_error_to_str.c" />
+ <ClCompile Include="libzip\zip_err_str.c" />
+ <ClCompile Include="libzip\zip_extra_field.c" />
+ <ClCompile Include="libzip\zip_extra_field_api.c" />
+ <ClCompile Include="libzip\zip_fclose.c" />
+ <ClCompile Include="libzip\zip_fdopen.c" />
+ <ClCompile Include="libzip\zip_filerange_crc.c" />
+ <ClCompile Include="libzip\zip_file_add.c" />
+ <ClCompile Include="libzip\zip_file_error_clear.c" />
+ <ClCompile Include="libzip\zip_file_error_get.c" />
+ <ClCompile Include="libzip\zip_file_get_comment.c" />
+ <ClCompile Include="libzip\zip_file_get_external_attributes.c" />
+ <ClCompile Include="libzip\zip_file_get_offset.c" />
+ <ClCompile Include="libzip\zip_file_rename.c" />
+ <ClCompile Include="libzip\zip_file_replace.c" />
+ <ClCompile Include="libzip\zip_file_set_comment.c" />
+ <ClCompile Include="libzip\zip_file_set_external_attributes.c" />
+ <ClCompile Include="libzip\zip_file_set_mtime.c" />
+ <ClCompile Include="libzip\zip_file_strerror.c" />
+ <ClCompile Include="libzip\zip_fopen.c" />
+ <ClCompile Include="libzip\zip_fopen_encrypted.c" />
+ <ClCompile Include="libzip\zip_fopen_index.c" />
+ <ClCompile Include="libzip\zip_fopen_index_encrypted.c" />
+ <ClCompile Include="libzip\zip_fread.c" />
+ <ClCompile Include="libzip\zip_get_archive_comment.c" />
+ <ClCompile Include="libzip\zip_get_archive_flag.c" />
+ <ClCompile Include="libzip\zip_get_compression_implementation.c" />
+ <ClCompile Include="libzip\zip_get_encryption_implementation.c" />
+ <ClCompile Include="libzip\zip_get_file_comment.c" />
+ <ClCompile Include="libzip\zip_get_name.c" />
+ <ClCompile Include="libzip\zip_get_num_entries.c" />
+ <ClCompile Include="libzip\zip_get_num_files.c" />
+ <ClCompile Include="libzip\zip_hash.c" />
+ <ClCompile Include="libzip\zip_io_util.c" />
+ <ClCompile Include="libzip\zip_memdup.c" />
+ <ClCompile Include="libzip\zip_name_locate.c" />
+ <ClCompile Include="libzip\zip_new.c" />
+ <ClCompile Include="libzip\zip_open.c" />
+ <ClCompile Include="libzip\zip_rename.c" />
+ <ClCompile Include="libzip\zip_replace.c" />
+ <ClCompile Include="libzip\zip_set_archive_comment.c" />
+ <ClCompile Include="libzip\zip_set_archive_flag.c" />
+ <ClCompile Include="libzip\zip_set_default_password.c" />
+ <ClCompile Include="libzip\zip_set_file_comment.c" />
+ <ClCompile Include="libzip\zip_set_file_compression.c" />
+ <ClCompile Include="libzip\zip_set_name.c" />
+ <ClCompile Include="libzip\zip_source_begin_write.c" />
+ <ClCompile Include="libzip\zip_source_buffer.c" />
+ <ClCompile Include="libzip\zip_source_call.c" />
+ <ClCompile Include="libzip\zip_source_close.c" />
+ <ClCompile Include="libzip\zip_source_commit_write.c" />
+ <ClCompile Include="libzip\zip_source_crc.c" />
+ <ClCompile Include="libzip\zip_source_deflate.c" />
+ <ClCompile Include="libzip\zip_source_error.c" />
+ <ClCompile Include="libzip\zip_source_filep.c" />
+ <ClCompile Include="libzip\zip_source_free.c" />
+ <ClCompile Include="libzip\zip_source_function.c" />
+ <ClCompile Include="libzip\zip_source_is_deleted.c" />
+ <ClCompile Include="libzip\zip_source_layered.c" />
+ <ClCompile Include="libzip\zip_source_open.c" />
+ <ClCompile Include="libzip\zip_source_pkware.c" />
+ <ClCompile Include="libzip\zip_source_read.c" />
+ <ClCompile Include="libzip\zip_source_remove.c" />
+ <ClCompile Include="libzip\zip_source_rollback_write.c" />
+ <ClCompile Include="libzip\zip_source_seek.c" />
+ <ClCompile Include="libzip\zip_source_seek_write.c" />
+ <ClCompile Include="libzip\zip_source_stat.c" />
+ <ClCompile Include="libzip\zip_source_supports.c" />
+ <ClCompile Include="libzip\zip_source_tell.c" />
+ <ClCompile Include="libzip\zip_source_tell_write.c" />
+ <ClCompile Include="libzip\zip_source_win32a.c" />
+ <ClCompile Include="libzip\zip_source_win32handle.c" />
+ <ClCompile Include="libzip\zip_source_win32utf8.c" />
+ <ClCompile Include="libzip\zip_source_win32w.c" />
+ <ClCompile Include="libzip\zip_source_window.c" />
+ <ClCompile Include="libzip\zip_source_write.c" />
+ <ClCompile Include="libzip\zip_source_zip.c" />
+ <ClCompile Include="libzip\zip_source_zip_new.c" />
+ <ClCompile Include="libzip\zip_stat.c" />
+ <ClCompile Include="libzip\zip_stat_index.c" />
+ <ClCompile Include="libzip\zip_stat_init.c" />
+ <ClCompile Include="libzip\zip_strerror.c" />
+ <ClCompile Include="libzip\zip_string.c" />
+ <ClCompile Include="libzip\zip_unchange.c" />
+ <ClCompile Include="libzip\zip_unchange_all.c" />
+ <ClCompile Include="libzip\zip_unchange_archive.c" />
+ <ClCompile Include="libzip\zip_unchange_data.c" />
+ <ClCompile Include="libzip\zip_utf-8.c" />
+ <ClCompile Include="zlib\adler32.c" />
+ <ClCompile Include="zlib\compress.c" />
+ <ClCompile Include="zlib\crc32.c" />
+ <ClCompile Include="zlib\deflate.c" />
+ <ClCompile Include="zlib\inffast.c" />
+ <ClCompile Include="zlib\inflate.c" />
+ <ClCompile Include="zlib\inftrees.c" />
+ <ClCompile Include="zlib\trees.c" />
+ <ClCompile Include="zlib\uncompr.c" />
+ <ClCompile Include="zlib\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="libzip\compat.h" />
+ <ClInclude Include="libzip\config.h" />
+ <ClInclude Include="libzip\zconf.h" />
+ <ClInclude Include="libzip\zip.h" />
+ <ClInclude Include="libzip\zipconf.h" />
+ <ClInclude Include="libzip\zipint.h" />
+ <ClInclude Include="libzip\zipwin32.h" />
+ <ClInclude Include="zlib\crc32.h" />
+ <ClInclude Include="zlib\deflate.h" />
+ <ClInclude Include="zlib\inffast.h" />
+ <ClInclude Include="zlib\inffixed.h" />
+ <ClInclude Include="zlib\inflate.h" />
+ <ClInclude Include="zlib\inftrees.h" />
+ <ClInclude Include="zlib\trees.h" />
+ <ClInclude Include="zlib\zconf.h" />
+ <ClInclude Include="zlib\zlib.h" />
+ <ClInclude Include="zlib\zutil.h" />
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>Zip</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>Windows7.1SDK</PlatformToolset>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>Windows7.1SDK</PlatformToolset>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>Windows7.1SDK</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>Windows7.1SDK</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(Platform)\$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(Platform)\$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_WARNINGS;_LIB;WIN32;HAVE_CONFIG_H;ZIP_STATIC;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <AdditionalIncludeDirectories>zlib:libzip</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_WARNINGS;_LIB;WIN32;HAVE_CONFIG_H;ZIP_STATIC;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <AdditionalIncludeDirectories>zlib;libzip</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_WARNINGS;_LIB;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <AdditionalIncludeDirectories>zlib;libzip</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_WARNINGS;_LIB;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <AdditionalIncludeDirectories>zlib;libzip</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/Common/Zip.vcxproj.filters b/src/Common/Zip.vcxproj.filters
new file mode 100644
index 0000000..8cc8b9b
--- /dev/null
+++ b/src/Common/Zip.vcxproj.filters
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="libzip">
+ <UniqueIdentifier>{a369717d-cddc-4112-b4fa-2dfa4e70c1bd}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="zlib">
+ <UniqueIdentifier>{077a3d56-4c09-48a8-b3ca-cb326f2e6c52}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="libzip\mkstemp.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_add.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_add_dir.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_add_entry.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_buffer.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_close.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_delete.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_dirent.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_dir_add.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_discard.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_entry.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_error.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_error_clear.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_error_get.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_error_get_sys_type.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_error_strerror.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_error_to_str.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_err_str.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_extra_field.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_extra_field_api.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_fclose.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_fdopen.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_filerange_crc.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_add.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_error_clear.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_error_get.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_get_comment.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_get_external_attributes.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_get_offset.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_rename.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_replace.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_set_comment.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_set_external_attributes.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_set_mtime.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_file_strerror.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_fopen.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_fopen_encrypted.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_fopen_index.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_fopen_index_encrypted.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_fread.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_archive_comment.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_archive_flag.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_compression_implementation.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_encryption_implementation.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_file_comment.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_name.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_num_entries.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_get_num_files.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_hash.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_io_util.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_memdup.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_name_locate.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_new.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_open.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_rename.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_replace.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_set_archive_comment.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_set_archive_flag.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_set_default_password.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_set_file_comment.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_set_file_compression.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_set_name.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_begin_write.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_buffer.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_call.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_close.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_commit_write.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_crc.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_deflate.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_error.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_filep.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_free.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_function.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_is_deleted.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_layered.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_open.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_pkware.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_read.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_remove.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_rollback_write.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_seek.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_seek_write.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_stat.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_supports.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_tell.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_tell_write.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_win32a.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_win32handle.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_win32utf8.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_win32w.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_window.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_write.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_zip.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_source_zip_new.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_stat.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_stat_index.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_stat_init.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_strerror.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_string.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_unchange.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_unchange_all.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_unchange_archive.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_unchange_data.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="libzip\zip_utf-8.c">
+ <Filter>libzip</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\adler32.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\crc32.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\deflate.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\inffast.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\inflate.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\inftrees.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\trees.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\zutil.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\compress.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ <ClCompile Include="zlib\uncompr.c">
+ <Filter>zlib</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="libzip\compat.h">
+ <Filter>libzip</Filter>
+ </ClInclude>
+ <ClInclude Include="libzip\config.h">
+ <Filter>libzip</Filter>
+ </ClInclude>
+ <ClInclude Include="libzip\zconf.h">
+ <Filter>libzip</Filter>
+ </ClInclude>
+ <ClInclude Include="libzip\zip.h">
+ <Filter>libzip</Filter>
+ </ClInclude>
+ <ClInclude Include="libzip\zipconf.h">
+ <Filter>libzip</Filter>
+ </ClInclude>
+ <ClInclude Include="libzip\zipint.h">
+ <Filter>libzip</Filter>
+ </ClInclude>
+ <ClInclude Include="libzip\zipwin32.h">
+ <Filter>libzip</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\crc32.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\deflate.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\inffast.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\inffixed.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\inflate.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\inftrees.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\trees.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\zconf.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\zlib.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ <ClInclude Include="zlib\zutil.h">
+ <Filter>zlib</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/Common/Zip.vcxproj.user b/src/Common/Zip.vcxproj.user
new file mode 100644
index 0000000..ace9a86
--- /dev/null
+++ b/src/Common/Zip.vcxproj.user
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project> \ No newline at end of file
diff --git a/src/Common/libzip/LICENSE b/src/Common/libzip/LICENSE
index 8e3a62c..1c2e86b 100644
--- a/src/Common/libzip/LICENSE
+++ b/src/Common/libzip/LICENSE
@@ -29,3 +29,38 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+For AES encryption support, files under the following license are used:
+
+---------------------------------------------------------------------------
+Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK.
+All rights reserved.
+
+LICENSE TERMS
+
+The free distribution and use of this software in both source and binary
+form is allowed (with or without changes) provided that:
+
+ 1. distributions of this source code include the above copyright
+ notice, this list of conditions and the following disclaimer;
+
+ 2. distributions in binary form include the above copyright
+ notice, this list of conditions and the following disclaimer
+ in the documentation and/or other associated materials;
+
+ 3. the copyright holder's name is not used to endorse products
+ built using this software without specific written permission.
+
+ALTERNATIVELY, provided that this notice is retained in full, this product
+may be distributed under the terms of the GNU General Public License (GPL),
+in which case the provisions of the GPL apply INSTEAD OF those given above.
+
+DISCLAIMER
+
+This software is provided 'as is' with no explicit or implied warranties
+in respect of its properties, including, but not limited to, correctness
+and/or fitness for purpose.
+---------------------------------------------------------------------------
+Issue Date: 18th November 2008
diff --git a/src/Common/libzip/NEWS.md b/src/Common/libzip/NEWS.md
index c915ce6..97bf2de 100644
--- a/src/Common/libzip/NEWS.md
+++ b/src/Common/libzip/NEWS.md
@@ -1,3 +1,14 @@
+1.2.0 [2017-02-19]
+==================
+
+* Support for AES encryption (Winzip version), both encryption
+ and decryption.
+* Support legacy zip files with >64k entries.
+* Fix seeking in zip_source_file if start > 0.
+* Add zip_fseek() for seeking in uncompressed data.
+* Add zip_ftell() for telling position in uncompressed data.
+* Add zip_register_progress_callback() for UI updates during zip_close()
+
1.1.3 [2016-05-28]
==================
diff --git a/src/Common/libzip/compat.h b/src/Common/libzip/compat.h
index 4cc6703..dc73f5c 100644
--- a/src/Common/libzip/compat.h
+++ b/src/Common/libzip/compat.h
@@ -42,7 +42,11 @@
#define __STDC_LIMIT_MACROS
#ifdef _WIN32
+#ifdef ZIP_STATIC
+#define ZIP_EXTERN
+#else
#define ZIP_EXTERN __declspec(dllexport)
+#endif
/* for dup(), close(), etc. */
#include <io.h>
#endif
@@ -101,6 +105,12 @@ typedef char bool;
#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
#define _setmode setmode
#endif
+#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64)
+#define strtoll _strtoi64
+#endif
+#if !defined(HAVE_STRTOULL) && defined(HAVE__STRTOUI64)
+#define strtoull _strtoui64
+#endif
#endif
#ifndef HAVE_FSEEKO
diff --git a/src/Common/libzip/config.h b/src/Common/libzip/config.h
index f4dec47..6212383 100644
--- a/src/Common/libzip/config.h
+++ b/src/Common/libzip/config.h
@@ -14,6 +14,8 @@
#define HAVE__SNPRINTF
#define HAVE__STRDUP
#define HAVE__STRICMP
+#define HAVE__STRTOI64
+#define HAVE__STRTOUI64
#define HAVE_FILENO
/* #undef HAVE_FSEEKO */
/* #undef HAVE_FTELLO */
@@ -26,6 +28,8 @@
/* #undef HAVE_STRCASECMP */
#define HAVE_STRDUP
#define HAVE_STRICMP
+/* #undef HAVE_STRTOLL */
+/* #undef HAVE_STRTOULL */
/* #undef HAVE_STRUCT_TM_TM_ZONE */
/* #undef HAVE_STDBOOL_H */
/* #undef HAVE_STRINGS_H */
@@ -53,9 +57,10 @@
/* #undef HAVE_NDIR_H */
/* #undef HAVE_SYS_DIR_H */
/* #undef HAVE_SYS_NDIR_H */
+/* #undef WORDS_BIGENDIAN */
/* END DEFINES */
#define PACKAGE "libzip"
-#define VERSION "1.1.3"
+#define VERSION "1.2.0"
#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 27141b3..abdaf07 100644
--- a/src/Common/libzip/zip.h
+++ b/src/Common/libzip/zip.h
@@ -3,7 +3,7 @@
/*
zip.h -- exported declarations.
- Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -20,7 +20,7 @@
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -127,7 +127,7 @@ extern "C" {
#define ZIP_ER_REMOVE 22 /* S Can't remove file */
#define ZIP_ER_DELETED 23 /* N Entry has been deleted */
#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */
-#define ZIP_ER_RDONLY 25 /* N Read-only archive */
+#define ZIP_ER_RDONLY 25 /* N Read-only archive */
#define ZIP_ER_NOPASSWD 26 /* N No password provided */
#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */
#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */
@@ -161,6 +161,8 @@ extern "C" {
/* 15-17 - Reserved by PKWARE */
#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */
#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */
+#define ZIP_CM_XZ 95 /* XZ compressed data */
+#define ZIP_CM_JPEG 96 /* Compressed Jpeg data */
#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */
#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */
@@ -173,12 +175,15 @@ extern "C" {
#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */
#define ZIP_EM_3DES_168 0x6603
#define ZIP_EM_3DES_112 0x6609
-#define ZIP_EM_AES_128 0x660e
-#define ZIP_EM_AES_192 0x660f
-#define ZIP_EM_AES_256 0x6610
+#define ZIP_EM_PKZIP_AES_128 0x660e
+#define ZIP_EM_PKZIP_AES_192 0x660f
+#define ZIP_EM_PKZIP_AES_256 0x6610
#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */
#define ZIP_EM_RC4 0x6801
#endif
+#define ZIP_EM_AES_128 0x0101 /* Winzip AES encryption */
+#define ZIP_EM_AES_192 0x0102
+#define ZIP_EM_AES_256 0x0103
#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */
#define ZIP_OPSYS_DOS 0x00u
@@ -299,9 +304,10 @@ typedef struct zip_file zip_file_t;
typedef struct zip_source zip_source_t;
typedef struct zip_stat zip_stat_t;
-typedef zip_uint32_t zip_flags_t;
+typedef zip_uint32_t zip_flags_t;
typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t, zip_source_cmd_t);
+typedef void (*zip_progress_callback_t)(double);
#ifndef ZIP_DISABLE_DEPRECATED
@@ -318,7 +324,6 @@ ZIP_EXTERN int zip_error_to_str(char *, zip_uint64_t, int, int);
ZIP_EXTERN void zip_file_error_get(zip_file_t *, int *, int *); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
#endif
-ZIP_EXTERN int zip_archive_set_tempdir(zip_t *, const char *);
ZIP_EXTERN int zip_close(zip_t *);
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);
@@ -353,6 +358,7 @@ ZIP_EXTERN int zip_file_get_external_attributes(zip_t *, zip_uint64_t, zip_flags
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);
ZIP_EXTERN int zip_file_set_comment(zip_t *, zip_uint64_t, const char *, zip_uint16_t, zip_flags_t);
+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 *);
@@ -361,6 +367,8 @@ ZIP_EXTERN zip_file_t *zip_fopen_encrypted(zip_t *, const char *, zip_flags_t, c
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 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);
@@ -368,6 +376,7 @@ ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t *, zip_flags_t);
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 void zip_register_progress_callback(zip_t *, zip_progress_callback_t);
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);
ZIP_EXTERN int zip_set_default_password(zip_t *, const char *);
@@ -377,7 +386,7 @@ ZIP_EXTERN zip_source_t *zip_source_buffer(zip_t *, const void *, zip_uint64_t,
ZIP_EXTERN zip_source_t *zip_source_buffer_create(const void *, 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 *src);
+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);
diff --git a/src/Common/libzip/zip_add_entry.c b/src/Common/libzip/zip_add_entry.c
index 9a9465c..f6212f1 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 43864f9..7addc4b 100644
--- a/src/Common/libzip/zip_buffer.c
+++ b/src/Common/libzip/zip_buffer.c
@@ -1,10 +1,10 @@
/*
zip_buffer.c -- bounds checked access to memory buffer
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
-
+ Copyright (C) 2014-2016 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>
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
@@ -17,7 +17,7 @@
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,11 +49,11 @@ _zip_buffer_free(zip_buffer_t *buffer)
if (buffer == NULL) {
return;
}
-
+
if (buffer->free_data) {
free(buffer->data);
}
-
+
free(buffer);
}
@@ -69,14 +69,13 @@ zip_uint8_t *
_zip_buffer_get(zip_buffer_t *buffer, zip_uint64_t length)
{
zip_uint8_t *data;
-
- if (!buffer->ok || buffer->offset + length < length || buffer->offset + length > buffer->size) {
- buffer->ok = false;
- return NULL;
+
+ data = _zip_buffer_peek(buffer, length);
+
+ if (data != NULL) {
+ buffer->offset += length;
}
-
- data = buffer->data + buffer->offset;
- buffer->offset += length;
+
return data;
}
@@ -85,11 +84,11 @@ zip_uint16_t
_zip_buffer_get_16(zip_buffer_t *buffer)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 2);
-
+
if (data == NULL) {
return 0;
}
-
+
return (zip_uint16_t)(data[0] + (data[1] << 8));
}
@@ -98,11 +97,11 @@ zip_uint32_t
_zip_buffer_get_32(zip_buffer_t *buffer)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 4);
-
+
if (data == NULL) {
return 0;
}
-
+
return ((((((zip_uint32_t)data[3] << 8) + data[2]) << 8) + data[1]) << 8) + data[0];
}
@@ -111,7 +110,7 @@ zip_uint64_t
_zip_buffer_get_64(zip_buffer_t *buffer)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 8);
-
+
if (data == NULL) {
return 0;
}
@@ -125,11 +124,11 @@ zip_uint8_t
_zip_buffer_get_8(zip_buffer_t *buffer)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 1);
-
+
if (data == NULL) {
return 0;
}
-
+
return data[0];
}
@@ -141,12 +140,25 @@ _zip_buffer_left(zip_buffer_t *buffer)
}
+zip_uint64_t
+_zip_buffer_read(zip_buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length)
+{
+ if (_zip_buffer_left(buffer) < length) {
+ length = _zip_buffer_left(buffer);
+ }
+
+ memcpy(data, _zip_buffer_get(buffer, length), length);
+
+ return length;
+}
+
+
zip_buffer_t *
_zip_buffer_new(zip_uint8_t *data, zip_uint64_t size)
{
bool free_data = (data == NULL);
zip_buffer_t *buffer;
-
+
if (data == NULL) {
if ((data = (zip_uint8_t *)malloc(size)) == NULL) {
return NULL;
@@ -159,13 +171,13 @@ _zip_buffer_new(zip_uint8_t *data, zip_uint64_t size)
}
return NULL;
}
-
+
buffer->ok = true;
buffer->data = data;
buffer->size = size;
buffer->offset = 0;
buffer->free_data = free_data;
-
+
return buffer;
}
@@ -174,17 +186,17 @@ zip_buffer_t *
_zip_buffer_new_from_source(zip_source_t *src, zip_uint64_t size, zip_uint8_t *buf, zip_error_t *error)
{
zip_buffer_t *buffer;
-
+
if ((buffer = _zip_buffer_new(buf, size)) == NULL) {
zip_error_set(error, ZIP_ER_MEMORY, 0);
return NULL;
}
-
+
if (_zip_read(src, buffer->data, size, error) < 0) {
_zip_buffer_free(buffer);
return NULL;
}
-
+
return buffer;
}
@@ -203,15 +215,30 @@ _zip_buffer_ok(zip_buffer_t *buffer)
}
+
+zip_uint8_t *
+_zip_buffer_peek(zip_buffer_t *buffer, zip_uint64_t length)
+{
+ zip_uint8_t *data;
+
+ if (!buffer->ok || buffer->offset + length < length || buffer->offset + length > buffer->size) {
+ buffer->ok = false;
+ return NULL;
+ }
+
+ data = buffer->data + buffer->offset;
+ return data;
+}
+
int
_zip_buffer_put(zip_buffer_t *buffer, const void *src, size_t length)
{
zip_uint8_t *dst = _zip_buffer_get(buffer, length);
-
+
if (dst == NULL) {
return -1;
}
-
+
memcpy(dst, src, length);
return 0;
}
@@ -221,14 +248,14 @@ int
_zip_buffer_put_16(zip_buffer_t *buffer, zip_uint16_t i)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 2);
-
+
if (data == NULL) {
return -1;
}
data[0] = (zip_uint8_t)(i & 0xff);
data[1] = (zip_uint8_t)((i >> 8) & 0xff);
-
+
return 0;
}
@@ -237,16 +264,16 @@ int
_zip_buffer_put_32(zip_buffer_t *buffer, zip_uint32_t i)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 4);
-
+
if (data == NULL) {
return -1;
}
-
+
data[0] = (zip_uint8_t)(i & 0xff);
data[1] = (zip_uint8_t)((i >> 8) & 0xff);
data[2] = (zip_uint8_t)((i >> 16) & 0xff);
data[3] = (zip_uint8_t)((i >> 24) & 0xff);
-
+
return 0;
}
@@ -255,11 +282,11 @@ int
_zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 8);
-
+
if (data == NULL) {
return -1;
}
-
+
data[0] = (zip_uint8_t)(i & 0xff);
data[1] = (zip_uint8_t)((i >> 8) & 0xff);
data[2] = (zip_uint8_t)((i >> 16) & 0xff);
@@ -268,7 +295,7 @@ _zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i)
data[5] = (zip_uint8_t)((i >> 40) & 0xff);
data[6] = (zip_uint8_t)((i >> 48) & 0xff);
data[7] = (zip_uint8_t)((i >> 56) & 0xff);
-
+
return 0;
}
@@ -277,13 +304,13 @@ int
_zip_buffer_put_8(zip_buffer_t *buffer, zip_uint8_t i)
{
zip_uint8_t *data = _zip_buffer_get(buffer, 1);
-
+
if (data == NULL) {
return -1;
}
-
+
data[0] = i;
-
+
return 0;
}
@@ -295,10 +322,10 @@ _zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset)
buffer->ok = false;
return -1;
}
-
+
buffer->ok = true;
buffer->offset = offset;
-
+
return 0;
}
@@ -306,7 +333,7 @@ _zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset)
int
_zip_buffer_skip(zip_buffer_t *buffer, zip_uint64_t length) {
zip_uint64_t offset = buffer->offset + length;
-
+
if (offset < buffer->offset) {
buffer->ok = false;
return -1;
diff --git a/src/Common/libzip/zip_close.c b/src/Common/libzip/zip_close.c
index b5eca67..88fa444 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -131,10 +131,14 @@ zip_close(zip_t *za)
zip_entry_t *entry;
zip_dirent_t *de;
+ if (za->progress_callback) {
+ za->progress_callback((double)j/survivors);
+ }
+
i = filelist[j].idx;
entry = za->entry+i;
- new_data = (ZIP_ENTRY_DATA_CHANGED(entry) || ZIP_ENTRY_CHANGED(entry, ZIP_DIRENT_COMP_METHOD));
+ new_data = (ZIP_ENTRY_DATA_CHANGED(entry) || ZIP_ENTRY_CHANGED(entry, ZIP_DIRENT_COMP_METHOD) || ZIP_ENTRY_CHANGED(entry, ZIP_DIRENT_ENCRYPTION_METHOD));
/* create new local directory entry */
if (entry->changes == NULL) {
@@ -222,6 +226,10 @@ zip_close(zip_t *za)
return -1;
}
+ if (za->progress_callback) {
+ za->progress_callback(1);
+ }
+
zip_discard(za);
return 0;
@@ -233,10 +241,11 @@ add_data(zip_t *za, zip_source_t *src, zip_dirent_t *de)
{
zip_int64_t offstart, offdata, offend;
struct zip_stat st;
- zip_source_t *s2;
+ zip_source_t *src_final, *src_tmp;
int ret;
int is_zip64;
zip_flags_t flags;
+ bool needs_recompress, needs_decompress, needs_crc, needs_compress, needs_reencrypt, needs_decrypt, needs_encrypt;
if (zip_source_stat(src, &st) < 0) {
_zip_error_set_from_source(&za->error, src);
@@ -259,6 +268,10 @@ add_data(zip_t *za, zip_source_t *src, zip_dirent_t *de)
st.valid &= ~ZIP_STAT_COMP_SIZE;
}
+ if ((st.valid & ZIP_STAT_ENCRYPTION_METHOD) == 0) {
+ st.valid |= ZIP_STAT_ENCRYPTION_METHOD;
+ st.encryption_method = ZIP_EM_NONE;
+ }
flags = ZIP_EF_LOCAL;
@@ -285,67 +298,123 @@ add_data(zip_t *za, zip_source_t *src, zip_dirent_t *de)
if ((is_zip64=_zip_dirent_write(za, de, flags)) < 0)
return -1;
+ needs_recompress = !((st.comp_method == de->comp_method) || (ZIP_CM_IS_DEFAULT(de->comp_method) && st.comp_method == ZIP_CM_DEFLATE));
+ needs_decompress = needs_recompress && (st.comp_method != ZIP_CM_STORE);
+ needs_crc = (st.comp_method == ZIP_CM_STORE) || needs_decompress;
+ needs_compress = needs_recompress && (de->comp_method != ZIP_CM_STORE);
+
+ needs_reencrypt = needs_recompress || (de->changed & ZIP_DIRENT_PASSWORD) || (de->encryption_method != st.encryption_method);
+ needs_decrypt = needs_reencrypt && (st.encryption_method != ZIP_EM_NONE);
+ needs_encrypt = needs_reencrypt && (de->encryption_method != ZIP_EM_NONE);
+
+ src_final = src;
+ zip_source_keep(src_final);
+
+ if (needs_decrypt) {
+ zip_encryption_implementation impl;
+
+ if ((impl = _zip_get_encryption_implementation(st.encryption_method, ZIP_CODEC_DECODE)) == NULL) {
+ zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0);
+ zip_source_free(src_final);
+ return -1;
+ }
+ if ((src_tmp = impl(za, src_final, st.encryption_method, ZIP_CODEC_DECODE, za->default_password)) == NULL) {
+ /* error set by impl */
+ zip_source_free(src_final);
+ return -1;
+ }
- if (st.comp_method == ZIP_CM_STORE || (ZIP_CM_IS_DEFAULT(de->comp_method) && st.comp_method != de->comp_method)) {
- zip_source_t *s_store, *s_crc;
+ zip_source_free(src_final);
+ src_final = src_tmp;
+ }
+
+ if (needs_decompress) {
zip_compression_implementation comp_impl;
- if (st.comp_method != ZIP_CM_STORE) {
- if ((comp_impl=_zip_get_compression_implementation(st.comp_method)) == NULL) {
- zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0);
- return -1;
- }
- if ((s_store=comp_impl(za, src, st.comp_method, ZIP_CODEC_DECODE)) == NULL) {
- /* error set by comp_impl */
- return -1;
- }
+ if ((comp_impl = _zip_get_compression_implementation(st.comp_method, ZIP_CODEC_DECODE)) == NULL) {
+ zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0);
+ zip_source_free(src_final);
+ return -1;
}
- else {
- /* to have the same reference count to src as in the case where it's not stored */
- zip_source_keep(src);
- s_store = src;
+ if ((src_tmp = comp_impl(za, src_final, st.comp_method, ZIP_CODEC_DECODE)) == NULL) {
+ /* error set by comp_impl */
+ zip_source_free(src_final);
+ return -1;
}
- s_crc = zip_source_crc(za, s_store, 0);
- zip_source_free(s_store);
- if (s_crc == NULL) {
+ zip_source_free(src_final);
+ src_final = src_tmp;
+ }
+
+ if (needs_crc) {
+ if ((src_tmp = zip_source_crc(za, src_final, 0)) == NULL) {
+ zip_source_free(src_final);
return -1;
}
- if (de->comp_method != ZIP_CM_STORE && ((st.valid & ZIP_STAT_SIZE) == 0 || st.size != 0)) {
- if ((comp_impl=_zip_get_compression_implementation(de->comp_method)) == NULL) {
- zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0);
- zip_source_free(s_crc);
- return -1;
- }
- s2 = comp_impl(za, s_crc, de->comp_method, ZIP_CODEC_ENCODE);
- zip_source_free(s_crc);
- if (s2 == NULL) {
- return -1;
- }
+ zip_source_free(src_final);
+ src_final = src_tmp;
+ }
+
+ if (needs_compress) {
+ zip_compression_implementation comp_impl;
+
+ if ((comp_impl = _zip_get_compression_implementation(de->comp_method, ZIP_CODEC_ENCODE)) == NULL) {
+ zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0);
+ zip_source_free(src_final);
+ return -1;
}
- else {
- s2 = s_crc;
+ if ((src_tmp = comp_impl(za, src_final, de->comp_method, ZIP_CODEC_ENCODE)) == NULL) {
+ zip_source_free(src_final);
+ return -1;
}
+
+ zip_source_free(src_final);
+ src_final = src_tmp;
}
- else {
- zip_source_keep(src);
- s2 = src;
+
+
+ if (needs_encrypt) {
+ zip_encryption_implementation impl;
+ const char *password = NULL;
+
+ if (de->password) {
+ password = de->password;
+ } else if (za->default_password) {
+ password = za->default_password;
+ }
+
+ if ((impl = _zip_get_encryption_implementation(de->encryption_method, ZIP_CODEC_ENCODE)) == NULL) {
+ zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0);
+ zip_source_free(src_final);
+ return -1;
+ }
+ if ((src_tmp = impl(za, src_final, de->encryption_method, ZIP_CODEC_ENCODE, password)) == NULL) {
+ /* error set by impl */
+ zip_source_free(src_final);
+ return -1;
+ }
+
+ zip_source_free(src_final);
+ src_final = src_tmp;
}
+
if ((offdata = zip_source_tell_write(za->src)) < 0) {
return -1;
}
- ret = copy_source(za, s2);
+ ret = copy_source(za, src_final);
- if (zip_source_stat(s2, &st) < 0)
+ if (zip_source_stat(src_final, &st) < 0) {
ret = -1;
+ }
- zip_source_free(s2);
+ zip_source_free(src_final);
- if (ret < 0)
+ if (ret < 0) {
return -1;
+ }
if ((offend = zip_source_tell_write(za->src)) < 0) {
return -1;
diff --git a/src/Common/libzip/zip_delete.c b/src/Common/libzip/zip_delete.c
index 34520b0..e160210 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 74f8988..df38afd 100644
--- a/src/Common/libzip/zip_dirent.c
+++ b/src/Common/libzip/zip_dirent.c
@@ -44,6 +44,7 @@
static time_t _zip_d2u_time(zip_uint16_t, zip_uint16_t);
static zip_string_t *_zip_dirent_process_ef_utf_8(const zip_dirent_t *de, zip_uint16_t id, zip_string_t *str);
static zip_extra_field_t *_zip_ef_utf8(zip_uint16_t, zip_string_t *, zip_error_t *);
+static bool _zip_dirent_process_winzip_aes(zip_dirent_t *de, zip_error_t *error);
void
@@ -66,29 +67,58 @@ zip_cdir_t *
_zip_cdir_new(zip_uint64_t nentry, zip_error_t *error)
{
zip_cdir_t *cd;
- zip_uint64_t i;
if ((cd=(zip_cdir_t *)malloc(sizeof(*cd))) == NULL) {
zip_error_set(error, ZIP_ER_MEMORY, 0);
return NULL;
}
- if (nentry == 0)
- cd->entry = NULL;
- else if ((nentry > SIZE_MAX/sizeof(*(cd->entry))) || (cd->entry=(zip_entry_t *)malloc(sizeof(*(cd->entry))*(size_t)nentry)) == NULL) {
- zip_error_set(error, ZIP_ER_MEMORY, 0);
- free(cd);
+ cd->entry = NULL;
+ cd->nentry = cd->nentry_alloc = 0;
+ cd->size = cd->offset = 0;
+ cd->comment = NULL;
+ cd->is_zip64 = false;
+
+ if (!_zip_cdir_grow(cd, nentry, error)) {
+ _zip_cdir_free(cd);
return NULL;
}
- for (i=0; i<nentry; i++)
+ return cd;
+}
+
+
+bool
+_zip_cdir_grow(zip_cdir_t *cd, zip_uint64_t additional_entries, zip_error_t *error)
+{
+ zip_uint64_t i, new_alloc;
+ zip_entry_t *new_entry;
+
+ if (additional_entries == 0) {
+ return true;
+ }
+
+ new_alloc = cd->nentry_alloc + additional_entries;
+
+ if (new_alloc < additional_entries || new_alloc > SIZE_MAX/sizeof(*(cd->entry))) {
+ zip_error_set(error, ZIP_ER_MEMORY, 0);
+ return false;
+ }
+
+ if ((new_entry = (zip_entry_t *)realloc(cd->entry, sizeof(*(cd->entry))*(size_t)new_alloc)) == NULL) {
+ zip_error_set(error, ZIP_ER_MEMORY, 0);
+ return false;
+ }
+
+ cd->entry = new_entry;
+
+ for (i = cd->nentry; i < new_alloc; i++) {
_zip_entry_init(cd->entry+i);
+ }
- cd->nentry = cd->nentry_alloc = nentry;
- cd->size = cd->offset = 0;
- cd->comment = NULL;
+ cd->nentry = cd->nentry_alloc = new_alloc;
- return cd;
+ return true;
}
@@ -222,6 +252,13 @@ _zip_dirent_finalize(zip_dirent_t *zde)
_zip_string_free(zde->comment);
zde->comment = NULL;
}
+ if (!zde->cloned || zde->changed & ZIP_DIRENT_PASSWORD) {
+ if (zde->password) {
+ _zip_crypto_clear(zde->password, strlen(zde->password));
+ }
+ free(zde->password);
+ zde->password = NULL;
+ }
}
@@ -243,6 +280,7 @@ _zip_dirent_init(zip_dirent_t *de)
de->local_extra_fields_read = 0;
de->cloned = 0;
+ de->crc_valid = true;
de->version_madeby = 20 | (ZIP_OPSYS_DEFAULT << 8);
de->version_needed = 20; /* 2.0 */
de->bitflags = 0;
@@ -258,6 +296,8 @@ _zip_dirent_init(zip_dirent_t *de)
de->int_attrib = 0;
de->ext_attrib = ZIP_EXT_ATTRIB_DEFAULT;
de->offset = 0;
+ de->encryption_method = ZIP_EM_NONE;
+ de->password = NULL;
}
@@ -372,6 +412,19 @@ _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, boo
return -1;
}
+ if (zde->bitflags & ZIP_GPBF_ENCRYPTED) {
+ if (zde->bitflags & ZIP_GPBF_STRONG_ENCRYPTION) {
+ /* TODO */
+ zde->encryption_method = ZIP_EM_UNKNOWN;
+ }
+ else {
+ zde->encryption_method = ZIP_EM_TRAD_PKWARE;
+ }
+ }
+ else {
+ zde->encryption_method = ZIP_EM_NONE;
+ }
+
zde->filename = NULL;
zde->extra_fields = NULL;
zde->comment = NULL;
@@ -524,6 +577,13 @@ _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, boo
return -1;
}
+ if (!_zip_dirent_process_winzip_aes(zde, error)) {
+ if (!from_buffer) {
+ _zip_buffer_free(buffer);
+ }
+ return -1;
+ }
+
zde->extra_fields = _zip_ef_remove_internal(zde->extra_fields);
return (zip_int64_t)(size + variable_size);
@@ -566,6 +626,90 @@ _zip_dirent_process_ef_utf_8(const zip_dirent_t *de, zip_uint16_t id, zip_string
}
+static bool
+_zip_dirent_process_winzip_aes(zip_dirent_t *de, zip_error_t *error)
+{
+ zip_uint16_t ef_len;
+ zip_buffer_t *buffer;
+ const zip_uint8_t *ef;
+ bool crc_valid;
+ zip_uint16_t enc_method;
+
+
+ if (de->comp_method != ZIP_CM_WINZIP_AES) {
+ return true;
+ }
+
+ ef = _zip_ef_get_by_id(de->extra_fields, &ef_len, ZIP_EF_WINZIP_AES, 0, ZIP_EF_BOTH, NULL);
+
+ if (ef == NULL || ef_len < 7) {
+ zip_error_set(error, ZIP_ER_INCONS, 0);
+ return false;
+ }
+
+ if ((buffer = _zip_buffer_new((zip_uint8_t *)ef, ef_len)) == NULL) {
+ zip_error_set(error, ZIP_ER_INTERNAL, 0);
+ return false;
+ }
+
+ /* version */
+
+ crc_valid = true;
+ switch (_zip_buffer_get_16(buffer)) {
+ case 1:
+ break;
+
+ case 2:
+ if (de->uncomp_size < 20 /* TODO: constant */) {
+ crc_valid = false;
+ }
+ break;
+
+ default:
+ zip_error_set(error, ZIP_ER_ENCRNOTSUPP, 0);
+ _zip_buffer_free(buffer);
+ return false;
+ }
+
+ /* vendor */
+ if (memcmp(_zip_buffer_get(buffer, 2), "AE", 2) != 0) {
+ zip_error_set(error, ZIP_ER_ENCRNOTSUPP, 0);
+ _zip_buffer_free(buffer);
+ return false;
+ }
+
+ /* mode */
+ switch (_zip_buffer_get_8(buffer)) {
+ case 1:
+ enc_method = ZIP_EM_AES_128;
+ break;
+ case 2:
+ enc_method = ZIP_EM_AES_192;
+ break;
+ case 3:
+ enc_method = ZIP_EM_AES_256;
+ break;
+ default:
+ zip_error_set(error, ZIP_ER_ENCRNOTSUPP, 0);
+ _zip_buffer_free(buffer);
+ return false;
+ }
+
+ if (ef_len != 7) {
+ zip_error_set(error, ZIP_ER_INCONS, 0);
+ _zip_buffer_free(buffer);
+ return false;
+ }
+
+ de->crc_valid = crc_valid;
+ de->encryption_method = enc_method;
+ de->comp_method = _zip_buffer_get_16(buffer);
+
+ _zip_buffer_free(buffer);
+ return true;
+}
+
+
zip_int32_t
_zip_dirent_size(zip_source_t *src, zip_uint16_t flags, zip_error_t *error)
{
@@ -621,6 +765,7 @@ _zip_dirent_write(zip_t *za, zip_dirent_t *de, zip_flags_t flags)
zip_uint32_t ef_total_size;
bool is_zip64;
bool is_really_zip64;
+ bool is_winzip_aes;
zip_uint8_t buf[CDENTRYSIZE];
zip_buffer_t *buffer;
@@ -651,8 +796,16 @@ _zip_dirent_write(zip_t *za, zip_dirent_t *de, zip_flags_t flags)
}
}
+ if (de->encryption_method == ZIP_EM_NONE) {
+ de->bitflags &= ~ZIP_GPBF_ENCRYPTED;
+ }
+ else {
+ de->bitflags |= ZIP_GPBF_ENCRYPTED;
+ }
+
is_really_zip64 = _zip_dirent_needs_zip64(de, flags);
is_zip64 = (flags & (ZIP_FL_LOCAL|ZIP_FL_FORCE_ZIP64)) == (ZIP_FL_LOCAL|ZIP_FL_FORCE_ZIP64) || is_really_zip64;
+ is_winzip_aes = de->encryption_method == ZIP_EM_AES_128 || de->encryption_method == ZIP_EM_AES_192 || de->encryption_method == ZIP_EM_AES_256;
if (is_zip64) {
zip_uint8_t ef_zip64[EFZIP64SIZE];
@@ -696,6 +849,35 @@ _zip_dirent_write(zip_t *za, zip_dirent_t *de, zip_flags_t flags)
ef = ef64;
}
+ if (is_winzip_aes) {
+ zip_uint8_t data[EF_WINZIP_AES_SIZE];
+ zip_buffer_t *ef_buffer = _zip_buffer_new(data, sizeof(data));
+ zip_extra_field_t *ef_winzip;
+
+ if (ef_buffer == NULL) {
+ zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
+ _zip_ef_free(ef);
+ return -1;
+ }
+
+ _zip_buffer_put_16(ef_buffer, 2);
+ _zip_buffer_put(ef_buffer, "AE", 2);
+ _zip_buffer_put_8(ef_buffer, (de->encryption_method & 0xff));
+ _zip_buffer_put_16(ef_buffer, (zip_uint16_t)de->comp_method);
+
+ if (!_zip_buffer_ok(ef_buffer)) {
+ zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
+ _zip_buffer_free(ef_buffer);
+ _zip_ef_free(ef);
+ return -1;
+ }
+
+ ef_winzip = _zip_ef_new(ZIP_EF_WINZIP_AES, EF_WINZIP_AES_SIZE, data, ZIP_EF_BOTH);
+ _zip_buffer_free(ef_buffer);
+ ef_winzip->next = ef;
+ ef = ef_winzip;
+ }
+
if ((buffer = _zip_buffer_new(buf, sizeof(buf))) == NULL) {
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
_zip_ef_free(ef);
@@ -709,13 +891,23 @@ _zip_dirent_write(zip_t *za, zip_dirent_t *de, zip_flags_t flags)
}
_zip_buffer_put_16(buffer, (zip_uint16_t)(is_really_zip64 ? 45 : de->version_needed));
_zip_buffer_put_16(buffer, de->bitflags&0xfff9); /* clear compression method specific flags */
- _zip_buffer_put_16(buffer, (zip_uint16_t)de->comp_method);
+ if (is_winzip_aes) {
+ _zip_buffer_put_16(buffer, ZIP_CM_WINZIP_AES);
+ }
+ else {
+ _zip_buffer_put_16(buffer, (zip_uint16_t)de->comp_method);
+ }
_zip_u2d_time(de->last_mod, &dostime, &dosdate);
_zip_buffer_put_16(buffer, dostime);
_zip_buffer_put_16(buffer, dosdate);
- _zip_buffer_put_32(buffer, de->crc);
+ if (is_winzip_aes && de->uncomp_size < 20) {
+ _zip_buffer_put_32(buffer, 0);
+ }
+ else {
+ _zip_buffer_put_32(buffer, de->crc);
+ }
if (((flags & ZIP_FL_LOCAL) == ZIP_FL_LOCAL) && ((de->comp_size >= ZIP_UINT32_MAX) || (de->uncomp_size >= ZIP_UINT32_MAX))) {
/* In local headers, if a ZIP64 EF is written, it MUST contain
diff --git a/src/Common/libzip/zip_discard.c b/src/Common/libzip/zip_discard.c
index 1876c84..ef891e3 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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_err_str.c b/src/Common/libzip/zip_err_str.c
index 65698be..9c9adb5 100644
--- a/src/Common/libzip/zip_err_str.c
+++ b/src/Common/libzip/zip_err_str.c
@@ -31,7 +31,7 @@ const char * const _zip_err_str[] = {
"Can't remove file",
"Entry has been deleted",
"Encryption method not supported",
- "Read-only archive",
+ "Read-only archive",
"No password provided",
"Wrong password provided",
"Operation not supported",
@@ -71,7 +71,7 @@ const int _zip_err_type[] = {
S,
N,
N,
- N,
+ N,
N,
N,
N,
diff --git a/src/Common/libzip/zip_error.c b/src/Common/libzip/zip_error.c
index 43ddf4f..5f4e07d 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 29efc8a..bdc1e44 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 22de177..019feff 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 0350478..a01ff79 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2016 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 bbcdf4f..a058f81 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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 0257b04..826650e 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 f2a27fa..775af9a 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 2008-2016 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 7496f98..0fb150b 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 92258e8..4c32e02 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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_compression_implementation.c b/src/Common/libzip/zip_get_compression_implementation.c
index c1120d3..5f8d0c7 100644
--- a/src/Common/libzip/zip_get_compression_implementation.c
+++ b/src/Common/libzip/zip_get_compression_implementation.c
@@ -1,6 +1,6 @@
/*
zip_get_compression_implementation.c -- get compression implementation
- Copyright (C) 2009-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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>
@@ -36,7 +36,7 @@
zip_compression_implementation
-_zip_get_compression_implementation(zip_int32_t cm)
+_zip_get_compression_implementation(zip_int32_t cm, int operation)
{
if (cm == ZIP_CM_DEFLATE || ZIP_CM_IS_DEFAULT(cm))
return zip_source_deflate;
diff --git a/src/Common/libzip/zip_get_encryption_implementation.c b/src/Common/libzip/zip_get_encryption_implementation.c
index e2f833b..8a027b2 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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>
@@ -36,9 +36,21 @@
zip_encryption_implementation
-_zip_get_encryption_implementation(zip_uint16_t em)
+_zip_get_encryption_implementation(zip_uint16_t em, int operation)
{
- if (em == ZIP_EM_TRAD_PKWARE)
+ switch (em) {
+ case ZIP_EM_TRAD_PKWARE:
+ if (operation == ZIP_CODEC_ENCODE) {
+ return NULL;
+ }
return zip_source_pkware;
- return NULL;
+/*
+ case ZIP_EM_AES_128:
+ case ZIP_EM_AES_192:
+ case ZIP_EM_AES_256:
+ return operation == ZIP_CODEC_DECODE ? zip_source_winzip_aes_decode : zip_source_winzip_aes_encode;
+*/
+ default:
+ return NULL;
+ }
}
diff --git a/src/Common/libzip/zip_io_util.c b/src/Common/libzip/zip_io_util.c
index b16927d..53a5dd2 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 50ca40b..706093f 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 562dd76..c05c2a3 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -68,7 +68,7 @@ _zip_new(zip_error_t *error)
za->entry = NULL;
za->nopen_source = za->nopen_source_alloc = 0;
za->open_source = NULL;
- za->tempdir = NULL;
+ za->progress_callback = NULL;
return za;
}
diff --git a/src/Common/libzip/zip_open.c b/src/Common/libzip/zip_open.c
index d6209ee..f62f95f 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -17,7 +17,7 @@
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -88,17 +88,17 @@ zip_open_from_source(zip_source_t *src, int _flags, zip_error_t *error)
{
static zip_int64_t needed_support_read = -1;
static zip_int64_t needed_support_write = -1;
-
+
unsigned int flags;
zip_int64_t supported;
exists_t exists;
-
+
if (_flags < 0 || src == NULL) {
zip_error_set(error, ZIP_ER_INVAL, 0);
return NULL;
}
flags = (unsigned int)_flags;
-
+
supported = zip_source_supports(src);
if (needed_support_read == -1) {
needed_support_read = zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_SEEK, ZIP_SOURCE_TELL, ZIP_SOURCE_STAT, -1);
@@ -118,7 +118,7 @@ zip_open_from_source(zip_source_t *src, int _flags, zip_error_t *error)
}
exists = _zip_file_exists(src, error);
- switch (exists) {
+ switch (exists) {
case EXISTS_ERROR:
return NULL;
@@ -157,26 +157,13 @@ zip_open_from_source(zip_source_t *src, int _flags, zip_error_t *error)
}
}
-ZIP_EXTERN int
-zip_archive_set_tempdir(zip_t *za, const char *tempdir)
+ZIP_EXTERN void
+zip_register_progress_callback(zip_t *za, zip_progress_callback_t progress_callback)
{
- char *new_tempdir;
-
- if (tempdir) {
- if ((new_tempdir = strdup(tempdir)) == NULL) {
- zip_error_set(&za->error, ZIP_ER_MEMORY, errno);
- return -1;
- }
- }
- else
- new_tempdir = NULL;
-
- free(za->tempdir);
- za->tempdir = new_tempdir;
-
- return 0;
+ za->progress_callback = progress_callback;
}
+
zip_t *
_zip_open(zip_source_t *src, unsigned int flags, zip_error_t *error)
{
@@ -209,7 +196,7 @@ _zip_open(zip_source_t *src, unsigned int flags, zip_error_t *error)
if ((za=_zip_allocate_new(src, flags, error)) == NULL) {
return NULL;
}
-
+
if ((cdir = _zip_find_central_dir(za, len)) == NULL) {
_zip_error_copy(error, &za->error);
/* keep src so discard does not get rid of it */
@@ -233,7 +220,7 @@ _zip_open(zip_source_t *src, unsigned int flags, zip_error_t *error)
zip_discard(za);
return NULL;
}
-
+
if (_zip_hash_add(za->names, name, idx, ZIP_FL_UNCHANGED, &za->error) == false) {
if (za->error.zip_err != ZIP_ER_EXISTS || (flags & ZIP_CHECKCONS)) {
_zip_error_copy(error, &za->error);
@@ -244,7 +231,7 @@ _zip_open(zip_source_t *src, unsigned int flags, zip_error_t *error)
}
}
}
-
+
za->ch_flags = za->flags;
return za;
@@ -269,7 +256,7 @@ _zip_set_open_error(int *zep, const zip_error_t *err, int ze)
/* _zip_readcdir:
tries to find a valid end-of-central-directory at the beginning of
buf, and then the corresponding central directory entries.
- Returns a struct zip_cdir which contains the central directory
+ Returns a struct zip_cdir which contains the central directory
entries, or NULL if unsuccessful. */
static zip_cdir_t *
@@ -286,7 +273,7 @@ _zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_err
zip_error_set(error, ZIP_ER_NOZIP, 0);
return NULL;
}
-
+
/* check for end-of-central-dir magic */
if (memcmp(_zip_buffer_get(buffer, 4), EOCD_MAGIC, 4) != 0) {
zip_error_set(error, ZIP_ER_NOZIP, 0);
@@ -317,10 +304,10 @@ _zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_err
if (comment_len || (za->open_flags & ZIP_CHECKCONS)) {
zip_uint64_t tail_len;
-
+
_zip_buffer_set_offset(buffer, eocd_offset + EOCDLEN);
tail_len = _zip_buffer_left(buffer);
-
+
if (tail_len < comment_len || ((za->open_flags & ZIP_CHECKCONS) && tail_len != comment_len)) {
zip_error_set(error, ZIP_ER_INCONS, 0);
_zip_cdir_free(cd);
@@ -339,7 +326,7 @@ _zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_err
zip_uint8_t *data;
/* if buffer already read in, use it */
_zip_buffer_set_offset(buffer, cd->offset - buf_offset);
-
+
if ((data = _zip_buffer_get(buffer, cd->size)) == NULL) {
zip_error_set(error, ZIP_ER_INCONS, 0);
_zip_cdir_free(cd);
@@ -353,7 +340,7 @@ _zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_err
}
else {
cd_buffer = NULL;
-
+
if (zip_source_seek(za->src, (zip_int64_t)cd->offset, SEEK_SET) < 0) {
_zip_error_set_from_source(error, za->src);
_zip_cdir_free(cd);
@@ -370,9 +357,30 @@ _zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_err
left = (zip_uint64_t)cd->size;
i=0;
- while (i<cd->nentry && left > 0) {
+ while (left > 0) {
+ bool grown = false;
zip_int64_t entry_size;
+
+ if (i == cd->nentry) {
+ /* InfoZIP has a hack to avoid using Zip64: it stores nentries % 0x10000 */
+ /* This hack isn't applicable if we're using Zip64, or if there is no central directory entry following. */
+
+ if (cd->is_zip64 || left < CDENTRYSIZE) {
+ break;
+ }
+
+ if (!_zip_cdir_grow(cd, 0x10000, error)) {
+ _zip_cdir_free(cd);
+ _zip_buffer_free(cd_buffer);
+ return NULL;
+ }
+ grown = true;
+ }
+
if ((cd->entry[i].orig=_zip_dirent_new()) == NULL || (entry_size = _zip_dirent_read(cd->entry[i].orig, za->src, cd_buffer, false, error)) < 0) {
+ if (grown && zip_error_code_zip(error) == ZIP_ER_NOZIP) {
+ zip_error_set(error, ZIP_ER_INCONS, 0);
+ }
_zip_cdir_free(cd);
_zip_buffer_free(cd_buffer);
return NULL;
@@ -380,23 +388,23 @@ _zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_err
i++;
left -= (zip_uint64_t)entry_size;
}
-
- if (i != cd->nentry) {
+
+ if (i != cd->nentry || left > 0) {
zip_error_set(error, ZIP_ER_INCONS, 0);
_zip_buffer_free(cd_buffer);
_zip_cdir_free(cd);
return NULL;
}
-
+
if (za->open_flags & ZIP_CHECKCONS) {
bool ok;
-
+
if (cd_buffer) {
ok = _zip_buffer_eof(cd_buffer);
}
else {
zip_int64_t offset = zip_source_tell(za->src);
-
+
if (offset < 0) {
_zip_error_set_from_source(error, za->src);
_zip_buffer_free(cd_buffer);
@@ -405,7 +413,7 @@ _zip_read_cdir(zip_t *za, zip_buffer_t *buffer, zip_uint64_t buf_offset, zip_err
}
ok = ((zip_uint64_t)offset == cd->offset + cd->size);
}
-
+
if (!ok) {
zip_error_set(error, ZIP_ER_INCONS, 0);
_zip_buffer_free(cd_buffer);
@@ -447,7 +455,7 @@ _zip_checkcons(zip_t *za, zip_cdir_t *cd, zip_error_t *error)
zip_error_set(error, ZIP_ER_NOZIP, 0);
return -1;
}
-
+
j = cd->entry[i].orig->offset + cd->entry[i].orig->comp_size
+ _zip_string_length(cd->entry[i].orig->filename) + LENTRYSIZE;
if (j > max)
@@ -456,27 +464,27 @@ _zip_checkcons(zip_t *za, zip_cdir_t *cd, zip_error_t *error)
zip_error_set(error, ZIP_ER_NOZIP, 0);
return -1;
}
-
+
if (zip_source_seek(za->src, (zip_int64_t)cd->entry[i].orig->offset, SEEK_SET) < 0) {
_zip_error_set_from_source(error, za->src);
return -1;
}
-
+
if (_zip_dirent_read(&temp, za->src, NULL, true, error) == -1) {
_zip_dirent_finalize(&temp);
return -1;
}
-
+
if (_zip_headercomp(cd->entry[i].orig, &temp) != 0) {
zip_error_set(error, ZIP_ER_INCONS, 0);
_zip_dirent_finalize(&temp);
return -1;
}
-
+
cd->entry[i].orig->extra_fields = _zip_ef_merge(cd->entry[i].orig->extra_fields, temp.extra_fields);
cd->entry[i].orig->local_extra_fields_read = 1;
temp.extra_fields = NULL;
-
+
_zip_dirent_finalize(&temp);
}
@@ -491,7 +499,7 @@ _zip_checkcons(zip_t *za, zip_cdir_t *cd, zip_error_t *error)
static int
_zip_headercomp(const zip_dirent_t *central, const zip_dirent_t *local)
{
- if ((central->version_needed != local->version_needed)
+ if ((central->version_needed < local->version_needed)
#if 0
/* some zip-files have different values in local
and global headers for the bitflags */
@@ -586,7 +594,7 @@ _zip_find_central_dir(zip_t *za, zip_uint64_t len)
_zip_error_set_from_source(&za->error, za->src);
return NULL;
}
-
+
if ((buffer = _zip_buffer_new_from_source(za->src, buflen, NULL, &za->error)) == NULL) {
return NULL;
}
@@ -607,7 +615,7 @@ _zip_find_central_dir(zip_t *za, zip_uint64_t len)
if (best <= 0) {
best = _zip_checkcons(za, cdir, &error);
}
-
+
a = _zip_checkcons(za, cdirnew, &error);
if (best < a) {
_zip_cdir_free(cdir);
@@ -628,13 +636,13 @@ _zip_find_central_dir(zip_t *za, zip_uint64_t len)
}
cdirnew = NULL;
}
-
+
match++;
_zip_buffer_set_offset(buffer, (zip_uint64_t)(match - _zip_buffer_data(buffer)));
}
_zip_buffer_free(buffer);
-
+
if (best < 0) {
_zip_error_copy(&za->error, &error);
_zip_cdir_free(cdir);
@@ -649,7 +657,7 @@ static unsigned char *
_zip_memmem(const unsigned char *big, size_t biglen, const unsigned char *little, size_t littlelen)
{
const unsigned char *p;
-
+
if ((biglen < littlelen) || (littlelen == 0))
return NULL;
p = big-1;
@@ -673,7 +681,7 @@ _zip_read_eocd(zip_buffer_t *buffer, zip_uint64_t buf_offset, unsigned int flags
zip_error_set(error, ZIP_ER_INCONS, 0);
return NULL;
}
-
+
eocd_offset = _zip_buffer_offset(buffer);
_zip_buffer_get(buffer, 4); /* magic already verified */
@@ -700,7 +708,7 @@ _zip_read_eocd(zip_buffer_t *buffer, zip_uint64_t buf_offset, unsigned int flags
zip_error_set(error, ZIP_ER_SEEK, EFBIG);
return NULL;
}
-
+
if (offset+size > buf_offset + eocd_offset) {
/* cdir spans past EOCD record */
zip_error_set(error, ZIP_ER_INCONS, 0);
@@ -715,9 +723,10 @@ _zip_read_eocd(zip_buffer_t *buffer, zip_uint64_t buf_offset, unsigned int flags
if ((cd=_zip_cdir_new(nentry, error)) == NULL)
return NULL;
+ cd->is_zip64 = false;
cd->size = size;
cd->offset = offset;
-
+
return cd;
}
@@ -734,13 +743,13 @@ _zip_read_eocd64(zip_source_t *src, zip_buffer_t *buffer, zip_uint64_t buf_offse
zip_uint32_t num_disks, num_disks64, eocd_disk, eocd_disk64;
eocdloc_offset = _zip_buffer_offset(buffer);
-
+
_zip_buffer_get(buffer, 4); /* magic already verified */
num_disks = _zip_buffer_get_16(buffer);
eocd_disk = _zip_buffer_get_16(buffer);
eocd_offset = _zip_buffer_get_64(buffer);
-
+
if (eocd_offset > ZIP_INT64_MAX || eocd_offset + EOCD64LEN < eocd_offset) {
zip_error_set(error, ZIP_ER_SEEK, EFBIG);
return NULL;
@@ -773,7 +782,7 @@ _zip_read_eocd64(zip_source_t *src, zip_buffer_t *buffer, zip_uint64_t buf_offse
}
return NULL;
}
-
+
size = _zip_buffer_get_64(buffer);
if ((flags & ZIP_CHECKCONS) && size + eocd_offset + 12 != buf_offset + eocdloc_offset) {
@@ -820,7 +829,7 @@ _zip_read_eocd64(zip_source_t *src, zip_buffer_t *buffer, zip_uint64_t buf_offse
size = _zip_buffer_get_64(buffer);
offset = _zip_buffer_get_64(buffer);
-
+
if (!_zip_buffer_ok(buffer)) {
zip_error_set(error, ZIP_ER_INTERNAL, 0);
if (free_buffer) {
@@ -845,7 +854,7 @@ _zip_read_eocd64(zip_source_t *src, zip_buffer_t *buffer, zip_uint64_t buf_offse
if ((cd=_zip_cdir_new(nentry, error)) == NULL)
return NULL;
-
+ cd->is_zip64 = true;
cd->size = size;
cd->offset = offset;
diff --git a/src/Common/libzip/zip_set_default_password.c b/src/Common/libzip/zip_set_default_password.c
index 10b4806..ff7e35a 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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 2a46143..34b7615 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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_error.c b/src/Common/libzip/zip_source_error.c
index e09199b..91e2dd6 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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,3 +40,9 @@ zip_source_error(zip_source_t *src)
{
return &src->error;
}
+
+bool
+_zip_source_had_error(zip_source_t *src)
+{
+ return zip_source_error(src)->zip_err != ZIP_ER_OK;
+}
diff --git a/src/Common/libzip/zip_source_file.c b/src/Common/libzip/zip_source_file.c
index 8678c1a..6a10c01 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -17,7 +17,7 @@
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -46,7 +46,7 @@ zip_source_file(zip_t *za, const char *fname, zip_uint64_t start, zip_int64_t le
{
if (za == NULL)
return NULL;
-
+
return zip_source_file_create(fname, start, len, &za->error);
}
diff --git a/src/Common/libzip/zip_source_filep.c b/src/Common/libzip/zip_source_filep.c
index 70255de..a8a271a 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -17,7 +17,7 @@
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -72,10 +72,11 @@ struct read_file {
char *fname; /* name of file to read from */
FILE *f; /* file to read from */
struct zip_stat st; /* stat information passed in */
+ zip_error_t stat_error; /* error returned for stat */
zip_uint64_t start; /* start offset of data to read */
- zip_uint64_t end; /* end offset of data to read, 0 for up to EOF */
- zip_uint64_t current; /* current offset */
-
+ zip_uint64_t end; /* end offset of data to read relative to start, 0 for up to EOF */
+ zip_uint64_t current; /* current offset relative to start (0 is beginning of part we read) */
+
/* writing */
char *tmpname;
FILE *fout;
@@ -92,7 +93,7 @@ zip_source_filep(zip_t *za, FILE *file, zip_uint64_t start, zip_int64_t len)
{
if (za == NULL)
return NULL;
-
+
return zip_source_filep_create(file, start, len, &za->error);
}
@@ -114,12 +115,21 @@ _zip_source_file_or_p(const char *fname, FILE *file, zip_uint64_t start, zip_int
{
struct read_file *ctx;
zip_source_t *zs;
-
+
if (file == NULL && fname == NULL) {
zip_error_set(error, ZIP_ER_INVAL, 0);
return NULL;
}
-
+
+ if (len < 0) {
+ len = 0;
+ }
+
+ if (start > ZIP_INT64_MAX || start + (zip_uint64_t)len < start) {
+ zip_error_set(error, ZIP_ER_INVAL, 0);
+ return NULL;
+ }
+
if ((ctx=(struct read_file *)malloc(sizeof(struct read_file))) == NULL) {
zip_error_set(error, ZIP_ER_MEMORY, 0);
return NULL;
@@ -135,7 +145,7 @@ _zip_source_file_or_p(const char *fname, FILE *file, zip_uint64_t start, zip_int
}
ctx->f = file;
ctx->start = start;
- ctx->end = (len < 0 ? 0 : start+(zip_uint64_t)len);
+ ctx->end = (zip_uint64_t)len;
if (st) {
memcpy(&ctx->st, st, sizeof(ctx->st));
ctx->st.name = NULL;
@@ -144,18 +154,53 @@ _zip_source_file_or_p(const char *fname, FILE *file, zip_uint64_t start, zip_int
else {
zip_stat_init(&ctx->st);
}
-
+
+ if (ctx->end > 0) {
+ ctx->st.size = ctx->end;
+ ctx->st.valid |= ZIP_STAT_SIZE;
+ }
+
+ zip_error_init(&ctx->stat_error);
+
ctx->tmpname = NULL;
ctx->fout = NULL;
-
+
zip_error_init(&ctx->error);
ctx->supports = ZIP_SOURCE_SUPPORTS_READABLE | zip_source_make_command_bitmap(ZIP_SOURCE_SUPPORTS, ZIP_SOURCE_TELL, -1);
+
if (ctx->fname) {
struct stat sb;
+ if (stat(ctx->fname, &sb) < 0) {
+ zip_error_set(&ctx->stat_error, ZIP_ER_READ, errno);
+ if (ctx->start == 0 && ctx->end == 0) {
+ ctx->supports = ZIP_SOURCE_SUPPORTS_WRITABLE;
+ }
+ }
+ else {
+ if ((ctx->st.valid & ZIP_STAT_MTIME) == 0) {
+ ctx->st.mtime = sb.st_mtime;
+ ctx->st.valid |= ZIP_STAT_MTIME;
+ }
+ if (S_ISREG(sb.st_mode)) {
+ ctx->supports = ZIP_SOURCE_SUPPORTS_SEEKABLE;
+
+ if (ctx->start + ctx->end > (zip_uint64_t)sb.st_size) {
+ zip_error_set(error, ZIP_ER_INVAL, 0);
+ free(ctx->fname);
+ free(ctx);
+ return NULL;
+ }
- if (stat(ctx->fname, &sb) < 0 || S_ISREG(sb.st_mode)) {
- ctx->supports = ZIP_SOURCE_SUPPORTS_WRITABLE;
+ if (ctx->end == 0) {
+ ctx->st.size = (zip_uint64_t)sb.st_size - ctx->start;
+ ctx->st.valid |= ZIP_STAT_SIZE;
+
+ if (start == 0) {
+ ctx->supports = ZIP_SOURCE_SUPPORTS_WRITABLE;
+ }
+ }
+ }
}
}
else if (fseeko(ctx->f, 0, SEEK_CUR) == 0) {
@@ -179,7 +224,7 @@ create_temp_output(struct read_file *ctx)
int tfd;
mode_t mask;
FILE *tfp;
-
+
if ((temp=(char *)malloc(strlen(ctx->fname)+8)) == NULL) {
zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0);
return -1;
@@ -202,7 +247,7 @@ create_temp_output(struct read_file *ctx)
free(temp);
return -1;
}
-
+
#ifdef _WIN32
/*
According to Pierre Joye, Windows in some environments per
@@ -210,10 +255,10 @@ create_temp_output(struct read_file *ctx)
*/
_setmode(_fileno(tfp), _O_BINARY );
#endif
-
+
ctx->fout = tfp;
ctx->tmpname = temp;
-
+
return 0;
}
@@ -236,7 +281,7 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
return -1;
}
return create_temp_output(ctx);
-
+
case ZIP_SOURCE_COMMIT_WRITE: {
mode_t mask;
@@ -257,17 +302,17 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
ctx->tmpname = NULL;
return 0;
}
-
+
case ZIP_SOURCE_CLOSE:
if (ctx->fname) {
fclose(ctx->f);
ctx->f = NULL;
}
return 0;
-
+
case ZIP_SOURCE_ERROR:
return zip_error_to_data(&ctx->error, data, len);
-
+
case ZIP_SOURCE_FREE:
free(ctx->fname);
free(ctx->tmpname);
@@ -275,7 +320,7 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
fclose(ctx->f);
free(ctx);
return 0;
-
+
case ZIP_SOURCE_OPEN:
if (ctx->fname) {
if ((ctx->f=fopen(ctx->fname, "rb")) == NULL) {
@@ -283,18 +328,19 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
return -1;
}
}
-
+
if (ctx->start > 0) {
if (_zip_fseek_u(ctx->f, ctx->start, SEEK_SET, &ctx->error) < 0) {
+ /* TODO: skip by reading */
return -1;
}
}
- ctx->current = ctx->start;
+ ctx->current = 0;
return 0;
-
+
case ZIP_SOURCE_READ:
if (ctx->end > 0) {
- n = ctx->end-ctx->current;
+ n = ctx->end - ctx->current;
if (n > len) {
n = len;
}
@@ -302,7 +348,7 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
else {
n = len;
}
-
+
if (n > SIZE_MAX)
n = SIZE_MAX;
@@ -315,14 +361,14 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
ctx->current += i;
return (zip_int64_t)i;
-
+
case ZIP_SOURCE_REMOVE:
if (remove(ctx->fname) < 0) {
zip_error_set(&ctx->error, ZIP_ER_REMOVE, errno);
return -1;
}
return 0;
-
+
case ZIP_SOURCE_ROLLBACK_WRITE:
if (ctx->fout) {
fclose(ctx->fout);
@@ -332,7 +378,7 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
free(ctx->tmpname);
ctx->tmpname = NULL;
return 0;
-
+
case ZIP_SOURCE_SEEK: {
zip_int64_t new_current;
int need_seek;
@@ -340,14 +386,14 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
if (args == NULL)
return -1;
-
+
need_seek = 1;
-
+
switch (args->whence) {
case SEEK_SET:
new_current = args->offset;
break;
-
+
case SEEK_END:
if (ctx->end == 0) {
if (_zip_fseek(ctx->f, args->offset, SEEK_END, &ctx->error) < 0) {
@@ -357,12 +403,14 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
zip_error_set(&ctx->error, ZIP_ER_SEEK, errno);
return -1;
}
+ new_current -= (zip_int64_t)ctx->start;
need_seek = 0;
}
else {
new_current = (zip_int64_t)ctx->end + args->offset;
}
break;
+
case SEEK_CUR:
new_current = (zip_int64_t)ctx->current + args->offset;
break;
@@ -372,29 +420,30 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
return -1;
}
- if (new_current < 0 || (zip_uint64_t)new_current < ctx->start || (ctx->end != 0 && (zip_uint64_t)new_current > ctx->end)) {
+ if (new_current < 0 || (ctx->end != 0 && (zip_uint64_t)new_current > ctx->end)
+ || (zip_uint64_t)new_current + ctx->start < ctx->start) {
zip_error_set(&ctx->error, ZIP_ER_INVAL, 0);
return -1;
}
-
+
ctx->current = (zip_uint64_t)new_current;
if (need_seek) {
- if (_zip_fseek_u(ctx->f, ctx->current, SEEK_SET, &ctx->error) < 0) {
+ if (_zip_fseek_u(ctx->f, ctx->current + ctx->start, SEEK_SET, &ctx->error) < 0) {
return -1;
}
}
return 0;
}
-
+
case ZIP_SOURCE_SEEK_WRITE: {
zip_source_args_seek_t *args;
-
+
args = ZIP_SOURCE_GET_ARGS(zip_source_args_seek_t, data, len, &ctx->error);
if (args == NULL) {
return -1;
}
-
+
if (_zip_fseek(ctx->fout, args->offset, args->whence, &ctx->error) < 0) {
return -1;
}
@@ -405,68 +454,43 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd)
if (len < sizeof(ctx->st))
return -1;
- if (ctx->st.valid != 0)
- memcpy(data, &ctx->st, sizeof(ctx->st));
- else {
- zip_stat_t *st;
- struct stat fst;
- int err;
-
- if (ctx->f)
- err = fstat(fileno(ctx->f), &fst);
- else
- err = stat(ctx->fname, &fst);
-
- if (err != 0) {
- zip_error_set(&ctx->error, ZIP_ER_READ, errno);
- return -1;
- }
-
- st = (zip_stat_t *)data;
-
- zip_stat_init(st);
- st->mtime = fst.st_mtime;
- st->valid |= ZIP_STAT_MTIME;
- if (ctx->end != 0) {
- st->size = ctx->end - ctx->start;
- st->valid |= ZIP_STAT_SIZE;
- }
- else if ((fst.st_mode&S_IFMT) == S_IFREG) {
- st->size = (zip_uint64_t)fst.st_size;
- st->valid |= ZIP_STAT_SIZE;
- }
+ if (zip_error_code_zip(&ctx->stat_error) != 0) {
+ zip_error_set(&ctx->error, zip_error_code_zip(&ctx->stat_error), zip_error_code_system(&ctx->stat_error));
+ return -1;
}
+
+ memcpy(data, &ctx->st, sizeof(ctx->st));
return sizeof(ctx->st);
}
case ZIP_SOURCE_SUPPORTS:
return ctx->supports;
-
+
case ZIP_SOURCE_TELL:
return (zip_int64_t)ctx->current;
-
+
case ZIP_SOURCE_TELL_WRITE:
{
off_t ret = ftello(ctx->fout);
-
+
if (ret < 0) {
zip_error_set(&ctx->error, ZIP_ER_TELL, errno);
return -1;
}
return ret;
}
-
+
case ZIP_SOURCE_WRITE:
{
size_t ret;
-
+
clearerr(ctx->fout);
ret = fwrite(data, 1, len, ctx->fout);
if (ret != len || ferror(ctx->fout)) {
zip_error_set(&ctx->error, ZIP_ER_WRITE, errno);
return -1;
}
-
+
return (zip_int64_t)ret;
}
diff --git a/src/Common/libzip/zip_source_function.c b/src/Common/libzip/zip_source_function.c
index 1d4be93..06ce5c9 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -94,6 +94,7 @@ _zip_source_new(zip_error_t *error)
src->source_archive = NULL;
src->refcount = 1;
zip_error_init(&src->error);
+ src->eof = false;
return src;
}
diff --git a/src/Common/libzip/zip_source_open.c b/src/Common/libzip/zip_source_open.c
index ec5e39d..a5712b2 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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,6 +67,8 @@ zip_source_open(zip_source_t *src)
}
}
+ src->eof = false;
+ _zip_error_clear(&src->error);
src->open_count++;
return 0;
diff --git a/src/Common/libzip/zip_source_pkware.c b/src/Common/libzip/zip_source_pkware.c
index 125e4e2..3957d99 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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 061a6f9..267128b 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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>
@@ -38,6 +38,9 @@
zip_int64_t
zip_source_read(zip_source_t *src, void *data, zip_uint64_t len)
{
+ zip_uint64_t bytes_read;
+ zip_int64_t n;
+
if (src->source_closed) {
return -1;
}
@@ -46,5 +49,39 @@ zip_source_read(zip_source_t *src, void *data, zip_uint64_t len)
return -1;
}
- return _zip_source_call(src, data, len, ZIP_SOURCE_READ);
+ if (_zip_source_had_error(src)) {
+ return -1;
+ }
+
+ if (_zip_source_eof(src)) {
+ return 0;
+ }
+
+ bytes_read = 0;
+ while (bytes_read < len) {
+ if ((n = _zip_source_call(src, (zip_uint8_t *)data + bytes_read, len - bytes_read, ZIP_SOURCE_READ)) < 0) {
+ if (bytes_read == 0) {
+ return -1;
+ }
+ else {
+ return (zip_int64_t)bytes_read;
+ }
+ }
+
+ if (n == 0) {
+ src->eof = 1;
+ break;
+ }
+
+ bytes_read += (zip_uint64_t)n;
+ }
+
+ return (zip_int64_t)bytes_read;
+}
+
+
+bool
+_zip_source_eof(zip_source_t *src)
+{
+ return src->eof;
}
diff --git a/src/Common/libzip/zip_source_stat.c b/src/Common/libzip/zip_source_stat.c
index a6b46d0..864507e 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2016 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 75a4a46..c59aa1f 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2016 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 35e2e67..7fe003d 100644
--- a/src/Common/libzip/zip_source_win32handle.c
+++ b/src/Common/libzip/zip_source_win32handle.c
@@ -344,9 +344,12 @@ _win32_read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd
}
else {
h = ctx->ops->op_open(ctx);
- if (h == INVALID_HANDLE_VALUE && GetLastError() == ERROR_FILE_NOT_FOUND) {
- zip_error_set(&ctx->error, ZIP_ER_READ, ENOENT);
- return -1;
+ if (h == INVALID_HANDLE_VALUE) {
+ win32err = GetLastError();
+ if (win32err == ERROR_FILE_NOT_FOUND || win32err == ERROR_PATH_NOT_FOUND) {
+ zip_error_set(&ctx->error, ZIP_ER_READ, ENOENT);
+ return -1;
+ }
}
}
diff --git a/src/Common/libzip/zip_source_zip_new.c b/src/Common/libzip/zip_source_zip_new.c
index 40f1195..9256255 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2016 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>
@@ -81,11 +81,14 @@ _zip_source_zip_new(zip_t *za, zip_t *srcza, zip_uint64_t srcidx, zip_flags_t fl
enc_impl = NULL;
if (((flags & ZIP_FL_ENCRYPTED) == 0) && (st.encryption_method != ZIP_EM_NONE)) {
+ if (password == NULL) {
+ password = za->default_password;
+ }
if (password == NULL) {
zip_error_set(&za->error, ZIP_ER_NOPASSWD, 0);
return NULL;
}
- if ((enc_impl=_zip_get_encryption_implementation(st.encryption_method)) == NULL) {
+ if ((enc_impl=_zip_get_encryption_implementation(st.encryption_method, ZIP_CODEC_DECODE)) == NULL) {
zip_error_set(&za->error, ZIP_ER_ENCRNOTSUPP, 0);
return NULL;
}
@@ -94,7 +97,7 @@ _zip_source_zip_new(zip_t *za, zip_t *srcza, zip_uint64_t srcidx, zip_flags_t fl
comp_impl = NULL;
if ((flags & ZIP_FL_COMPRESSED) == 0) {
if (st.comp_method != ZIP_CM_STORE) {
- if ((comp_impl=_zip_get_compression_implementation(st.comp_method)) == NULL) {
+ if ((comp_impl=_zip_get_compression_implementation(st.comp_method, ZIP_CODEC_DECODE)) == NULL) {
zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0);
return NULL;
}
diff --git a/src/Common/libzip/zip_stat_index.c b/src/Common/libzip/zip_stat_index.c
index 601e3f7..a2ef59b 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-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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>
@@ -64,17 +64,8 @@ zip_stat_index(zip_t *za, zip_uint64_t index, zip_flags_t flags,
st->mtime = de->last_mod;
st->comp_size = de->comp_size;
st->comp_method = (zip_uint16_t)de->comp_method;
- if (de->bitflags & ZIP_GPBF_ENCRYPTED) {
- if (de->bitflags & ZIP_GPBF_STRONG_ENCRYPTION) {
- /* TODO */
- st->encryption_method = ZIP_EM_UNKNOWN;
- }
- else
- st->encryption_method = ZIP_EM_TRAD_PKWARE;
- }
- else
- st->encryption_method = ZIP_EM_NONE;
- st->valid = ZIP_STAT_CRC|ZIP_STAT_SIZE|ZIP_STAT_MTIME
+ st->encryption_method = de->encryption_method;
+ st->valid = (de->crc_valid ? ZIP_STAT_CRC : 0) | ZIP_STAT_SIZE|ZIP_STAT_MTIME
|ZIP_STAT_COMP_SIZE|ZIP_STAT_COMP_METHOD|ZIP_STAT_ENCRYPTION_METHOD;
}
diff --git a/src/Common/libzip/zip_unchange.c b/src/Common/libzip/zip_unchange.c
index 5ef5462..4a3d642 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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 dc89f7f..2221d6c 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-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2016 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/zipint.h b/src/Common/libzip/zipint.h
index 6939d73..2c5c6b9 100644
--- a/src/Common/libzip/zipint.h
+++ b/src/Common/libzip/zipint.h
@@ -20,7 +20,7 @@
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -64,16 +64,19 @@
#define CDBUFSIZE (MAXCOMLEN+EOCDLEN+EOCD64LOCLEN)
#define BUFSIZE 8192
#define EFZIP64SIZE 28
+#define EF_WINZIP_AES_SIZE 7
#define ZIP_CM_REPLACED_DEFAULT (-2)
+#define ZIP_CM_WINZIP_AES 99 /* Winzip AES encrypted */
#define ZIP_CM_IS_DEFAULT(x) ((x) == ZIP_CM_DEFAULT || (x) == ZIP_CM_REPLACED_DEFAULT)
#define ZIP_EF_UTF_8_COMMENT 0x6375
#define ZIP_EF_UTF_8_NAME 0x7075
+#define ZIP_EF_WINZIP_AES 0x9901
#define ZIP_EF_ZIP64 0x0001
-#define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_ZIP64)
+#define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_WINZIP_AES || (id) == ZIP_EF_ZIP64)
/* according to unzip-6.0's zipinfo.c, this corresponds to a regular file with rw permissions for everyone */
#define ZIP_EXT_ATTRIB_DEFAULT (0100666u<<16)
@@ -96,8 +99,8 @@
typedef zip_source_t *(*zip_compression_implementation)(zip_t *, zip_source_t *, zip_int32_t, int);
typedef zip_source_t *(*zip_encryption_implementation)(zip_t *, zip_source_t *, zip_uint16_t, int, const char *);
-zip_compression_implementation _zip_get_compression_implementation(zip_int32_t);
-zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t);
+zip_compression_implementation _zip_get_compression_implementation(zip_int32_t method, int operation);
+zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t method, int operation);
@@ -118,6 +121,8 @@ zip_source_t *zip_source_pkware(zip_t *, zip_source_t *, zip_uint16_t, int, cons
int zip_source_remove(zip_source_t *);
zip_int64_t zip_source_supports(zip_source_t *src);
zip_source_t *zip_source_window(zip_t *, zip_source_t *, zip_uint64_t, zip_uint64_t);
+zip_source_t *zip_source_winzip_aes_decode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *);
+zip_source_t *zip_source_winzip_aes_encode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *);
/* error source for layered sources */
@@ -193,8 +198,8 @@ struct zip {
zip_source_t **open_source; /* open sources using archive */
zip_hash_t *names; /* hash table for name lookup */
-
- char *tempdir; /* custom temp dir (needed e.g. for OS X sandboxing) */
+
+ zip_progress_callback_t progress_callback; /* progress callback for zip_close() */
};
/* file in zip archive, part of API */
@@ -208,18 +213,22 @@ struct zip_file {
/* zip archive directory entry (central or local) */
-#define ZIP_DIRENT_COMP_METHOD 0x0001u
-#define ZIP_DIRENT_FILENAME 0x0002u
-#define ZIP_DIRENT_COMMENT 0x0004u
-#define ZIP_DIRENT_EXTRA_FIELD 0x0008u
-#define ZIP_DIRENT_ATTRIBUTES 0x0010u
-#define ZIP_DIRENT_LAST_MOD 0x0020u
-#define ZIP_DIRENT_ALL 0xffffu
+#define ZIP_DIRENT_COMP_METHOD 0x0001u
+#define ZIP_DIRENT_FILENAME 0x0002u
+#define ZIP_DIRENT_COMMENT 0x0004u
+#define ZIP_DIRENT_EXTRA_FIELD 0x0008u
+#define ZIP_DIRENT_ATTRIBUTES 0x0010u
+#define ZIP_DIRENT_LAST_MOD 0x0020u
+#define ZIP_DIRENT_ENCRYPTION_METHOD 0x0040u
+#define ZIP_DIRENT_PASSWORD 0x0080u
+#define ZIP_DIRENT_ALL ZIP_UINT32_MAX
struct zip_dirent {
zip_uint32_t changed;
bool local_extra_fields_read; /* whether we already read in local header extra fields */
- bool cloned; /* whether this instance is cloned, and thus shares non-changed strings */
+ bool cloned; /* whether this instance is cloned, and thus shares non-changed strings */
+
+ bool crc_valid; /* if CRC is valid (sometimes not for encrypted archives) */
zip_uint16_t version_madeby; /* (c) version of creator */
zip_uint16_t version_needed; /* (cl) version needed to extract */
@@ -236,6 +245,9 @@ struct zip_dirent {
zip_uint16_t int_attrib; /* (c) internal file attributes */
zip_uint32_t ext_attrib; /* (c) external file attributes */
zip_uint64_t offset; /* (c) offset of local header */
+
+ zip_uint16_t encryption_method; /* encryption method, computed from other fields */
+ char *password; /* file specific encryption password */
};
/* zip archive central directory */
@@ -248,6 +260,7 @@ struct zip_cdir {
zip_uint64_t size; /* size of central directory */
zip_uint64_t offset; /* offset of central directory in file */
zip_string_t *comment; /* zip archive comment */
+ bool is_zip64; /* central directory in zip64 format */
};
struct zip_extra_field {
@@ -280,6 +293,7 @@ struct zip_source {
bool source_closed; /* set if source archive is closed */
zip_t *source_archive; /* zip archive we're reading from, NULL if not from archive */
unsigned int refcount;
+ bool eof; /* EOF reached */
};
#define ZIP_SOURCE_IS_OPEN_READING(src) ((src)->open_count > 0)
@@ -312,7 +326,7 @@ struct zip_string {
struct zip_buffer {
bool ok;
bool free_data;
-
+
zip_uint8_t *data;
zip_uint64_t size;
zip_uint64_t offset;
@@ -332,6 +346,8 @@ extern const char * const _zip_err_str[];
extern const int _zip_nerr_str;
extern const int _zip_err_type[];
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
#define ZIP_ENTRY_CHANGED(e, f) ((e)->changes && ((e)->changes->changed & (f)))
@@ -340,6 +356,17 @@ extern const int _zip_err_type[];
#define ZIP_IS_RDONLY(za) ((za)->ch_flags & ZIP_AFL_RDONLY)
+#ifdef HAVE_EXPLICIT_MEMSET
+#define _zip_crypto_clear(b, l) explicit_memset((b), 0, (l))
+#else
+#ifdef HAVE_EXPLICIT_BZERO
+#define _zip_crypto_clear(b, l) explicit_bzero((b), (l))
+#else
+#define _zip_crypto_clear(b, l) memset((b), 0, (l))
+#endif
+#endif
+
+
zip_int64_t _zip_add_entry(zip_t *);
zip_uint8_t *_zip_buffer_data(zip_buffer_t *buffer);
@@ -355,17 +382,20 @@ zip_buffer_t *_zip_buffer_new(zip_uint8_t *data, zip_uint64_t size);
zip_buffer_t *_zip_buffer_new_from_source(zip_source_t *src, zip_uint64_t size, zip_uint8_t *buf, zip_error_t *error);
zip_uint64_t _zip_buffer_offset(zip_buffer_t *buffer);
bool _zip_buffer_ok(zip_buffer_t *buffer);
+zip_uint8_t *_zip_buffer_peek(zip_buffer_t *buffer, zip_uint64_t length);
int _zip_buffer_put(zip_buffer_t *buffer, const void *src, size_t length);
int _zip_buffer_put_16(zip_buffer_t *buffer, zip_uint16_t i);
int _zip_buffer_put_32(zip_buffer_t *buffer, zip_uint32_t i);
int _zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i);
int _zip_buffer_put_8(zip_buffer_t *buffer, zip_uint8_t i);
+zip_uint64_t _zip_buffer_read(zip_buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length);
int _zip_buffer_skip(zip_buffer_t *buffer, zip_uint64_t length);
int _zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset);
zip_uint64_t _zip_buffer_size(zip_buffer_t *buffer);
int _zip_cdir_compute_crc(zip_t *, uLong *);
void _zip_cdir_free(zip_cdir_t *);
+bool _zip_cdir_grow(zip_cdir_t *cd, zip_uint64_t additional_entries, zip_error_t *error);
zip_cdir_t *_zip_cdir_new(zip_uint64_t, zip_error_t *);
zip_int64_t _zip_cdir_write(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors);
void _zip_deregister_source(zip_t *za, zip_source_t *src);
@@ -422,6 +452,8 @@ void _zip_hash_revert(zip_hash_t *hash);
zip_t *_zip_open(zip_source_t *, unsigned int, zip_error_t *);
+bool zip_random(zip_uint8_t *buffer, zip_uint16_t length);
+
int _zip_read(zip_source_t *src, zip_uint8_t *data, zip_uint64_t length, zip_error_t *error);
int _zip_read_at_offset(zip_source_t *src, zip_uint64_t offset, unsigned char *b, size_t length, zip_error_t *error);
zip_uint8_t *_zip_read_data(zip_buffer_t *buffer, zip_source_t *src, size_t length, bool nulp, zip_error_t *error);
@@ -432,8 +464,10 @@ int _zip_register_source(zip_t *za, zip_source_t *src);
void _zip_set_open_error(int *zep, const zip_error_t *err, int ze);
zip_int64_t _zip_source_call(zip_source_t *src, void *data, zip_uint64_t length, zip_source_cmd_t command);
+bool _zip_source_eof(zip_source_t *);
zip_source_t *_zip_source_file_or_p(const char *, FILE *, zip_uint64_t, zip_int64_t, const zip_stat_t *, zip_error_t *error);
void _zip_source_invalidate(zip_source_t *src);
+bool _zip_source_had_error(zip_source_t *);
zip_source_t *_zip_source_new(zip_error_t *error);
int _zip_source_set_source_archive(zip_source_t *, zip_t *);
zip_source_t *_zip_source_window_new(zip_source_t *src, zip_uint64_t start, zip_uint64_t length, zip_stat_t *st, zip_error_t *error);
diff --git a/src/Common/zlib/README b/src/Common/zlib/README
index 5ca9d12..51106de 100644
--- a/src/Common/zlib/README
+++ b/src/Common/zlib/README
@@ -1,6 +1,6 @@
ZLIB DATA COMPRESSION LIBRARY
-zlib 1.2.8 is a general purpose data compression library. All the code is
+zlib 1.2.11 is a general purpose data compression library. All the code is
thread safe. The data format used by the zlib library is described by RFCs
(Request for Comments) 1950 to 1952 in the files
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
@@ -31,7 +31,7 @@ Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
issue of Dr. Dobb's Journal; a copy of the article is available at
http://marknelson.us/1997/01/01/zlib-engine/ .
-The changes made in version 1.2.8 are documented in the file ChangeLog.
+The changes made in version 1.2.11 are documented in the file ChangeLog.
Unsupported third party contributions are provided in directory contrib/ .
@@ -84,7 +84,7 @@ Acknowledgments:
Copyright notice:
- (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ (C) 1995-2017 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
diff --git a/src/Common/zlib/adler32.c b/src/Common/zlib/adler32.c
index a868f07..d0be438 100644
--- a/src/Common/zlib/adler32.c
+++ b/src/Common/zlib/adler32.c
@@ -1,5 +1,5 @@
/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2011 Mark Adler
+ * Copyright (C) 1995-2011, 2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -7,11 +7,9 @@
#include "zutil.h"
-#define local static
-
local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
-#define BASE 65521 /* largest prime smaller than 65536 */
+#define BASE 65521U /* largest prime smaller than 65536 */
#define NMAX 5552
/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
@@ -62,10 +60,10 @@ local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
#endif
/* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
+uLong ZEXPORT adler32_z(adler, buf, len)
uLong adler;
const Bytef *buf;
- uInt len;
+ z_size_t len;
{
unsigned long sum2;
unsigned n;
@@ -133,6 +131,15 @@ uLong ZEXPORT adler32(adler, buf, len)
}
/* ========================================================================= */
+uLong ZEXPORT adler32(adler, buf, len)
+ uLong adler;
+ const Bytef *buf;
+ uInt len;
+{
+ return adler32_z(adler, buf, len);
+}
+
+/* ========================================================================= */
local uLong adler32_combine_(adler1, adler2, len2)
uLong adler1;
uLong adler2;
@@ -156,7 +163,7 @@ local uLong adler32_combine_(adler1, adler2, len2)
sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
if (sum1 >= BASE) sum1 -= BASE;
if (sum1 >= BASE) sum1 -= BASE;
- if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1);
+ if (sum2 >= ((unsigned long)BASE << 1)) sum2 -= ((unsigned long)BASE << 1);
if (sum2 >= BASE) sum2 -= BASE;
return sum1 | (sum2 << 16);
}
diff --git a/src/Common/zlib/compress.c b/src/Common/zlib/compress.c
index 6e97626..e2db404 100644
--- a/src/Common/zlib/compress.c
+++ b/src/Common/zlib/compress.c
@@ -1,5 +1,5 @@
/* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2005 Jean-loup Gailly.
+ * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -28,16 +28,11 @@ int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
{
z_stream stream;
int err;
+ const uInt max = (uInt)-1;
+ uLong left;
- stream.next_in = (z_const Bytef *)source;
- stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
- /* Check for source > 64K on 16-bit machine: */
- if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
- stream.next_out = dest;
- stream.avail_out = (uInt)*destLen;
- if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+ left = *destLen;
+ *destLen = 0;
stream.zalloc = (alloc_func)0;
stream.zfree = (free_func)0;
@@ -46,15 +41,26 @@ int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
err = deflateInit(&stream, level);
if (err != Z_OK) return err;
- err = deflate(&stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- deflateEnd(&stream);
- return err == Z_OK ? Z_BUF_ERROR : err;
- }
- *destLen = stream.total_out;
+ stream.next_out = dest;
+ stream.avail_out = 0;
+ stream.next_in = (z_const Bytef *)source;
+ stream.avail_in = 0;
+
+ do {
+ if (stream.avail_out == 0) {
+ stream.avail_out = left > (uLong)max ? max : (uInt)left;
+ left -= stream.avail_out;
+ }
+ if (stream.avail_in == 0) {
+ stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
+ sourceLen -= stream.avail_in;
+ }
+ err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
+ } while (err == Z_OK);
- err = deflateEnd(&stream);
- return err;
+ *destLen = stream.total_out;
+ deflateEnd(&stream);
+ return err == Z_STREAM_END ? Z_OK : err;
}
/* ===========================================================================
diff --git a/src/Common/zlib/crc32.c b/src/Common/zlib/crc32.c
index 979a719..9580440 100644
--- a/src/Common/zlib/crc32.c
+++ b/src/Common/zlib/crc32.c
@@ -1,5 +1,5 @@
/* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
+ * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*
* Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster
@@ -30,17 +30,15 @@
#include "zutil.h" /* for STDC and FAR definitions */
-#define local static
-
/* Definitions for doing the crc four data bytes at a time. */
#if !defined(NOBYFOUR) && defined(Z_U4)
# define BYFOUR
#endif
#ifdef BYFOUR
local unsigned long crc32_little OF((unsigned long,
- const unsigned char FAR *, unsigned));
+ const unsigned char FAR *, z_size_t));
local unsigned long crc32_big OF((unsigned long,
- const unsigned char FAR *, unsigned));
+ const unsigned char FAR *, z_size_t));
# define TBLS 8
#else
# define TBLS 1
@@ -201,10 +199,10 @@ const z_crc_t FAR * ZEXPORT get_crc_table()
#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
/* ========================================================================= */
-unsigned long ZEXPORT crc32(crc, buf, len)
+unsigned long ZEXPORT crc32_z(crc, buf, len)
unsigned long crc;
const unsigned char FAR *buf;
- uInt len;
+ z_size_t len;
{
if (buf == Z_NULL) return 0UL;
@@ -235,8 +233,29 @@ unsigned long ZEXPORT crc32(crc, buf, len)
return crc ^ 0xffffffffUL;
}
+/* ========================================================================= */
+unsigned long ZEXPORT crc32(crc, buf, len)
+ unsigned long crc;
+ const unsigned char FAR *buf;
+ uInt len;
+{
+ return crc32_z(crc, buf, len);
+}
+
#ifdef BYFOUR
+/*
+ This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit
+ integer pointer type. This violates the strict aliasing rule, where a
+ compiler can assume, for optimization purposes, that two pointers to
+ fundamentally different types won't ever point to the same memory. This can
+ manifest as a problem only if one of the pointers is written to. This code
+ only reads from those pointers. So long as this code remains isolated in
+ this compilation unit, there won't be a problem. For this reason, this code
+ should not be copied and pasted into a compilation unit in which other code
+ writes to the buffer that is passed to these routines.
+ */
+
/* ========================================================================= */
#define DOLIT4 c ^= *buf4++; \
c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
@@ -247,7 +266,7 @@ unsigned long ZEXPORT crc32(crc, buf, len)
local unsigned long crc32_little(crc, buf, len)
unsigned long crc;
const unsigned char FAR *buf;
- unsigned len;
+ z_size_t len;
{
register z_crc_t c;
register const z_crc_t FAR *buf4;
@@ -278,7 +297,7 @@ local unsigned long crc32_little(crc, buf, len)
}
/* ========================================================================= */
-#define DOBIG4 c ^= *++buf4; \
+#define DOBIG4 c ^= *buf4++; \
c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
@@ -287,7 +306,7 @@ local unsigned long crc32_little(crc, buf, len)
local unsigned long crc32_big(crc, buf, len)
unsigned long crc;
const unsigned char FAR *buf;
- unsigned len;
+ z_size_t len;
{
register z_crc_t c;
register const z_crc_t FAR *buf4;
@@ -300,7 +319,6 @@ local unsigned long crc32_big(crc, buf, len)
}
buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
- buf4--;
while (len >= 32) {
DOBIG32;
len -= 32;
@@ -309,7 +327,6 @@ local unsigned long crc32_big(crc, buf, len)
DOBIG4;
len -= 4;
}
- buf4++;
buf = (const unsigned char FAR *)buf4;
if (len) do {
diff --git a/src/Common/zlib/deflate.c b/src/Common/zlib/deflate.c
index 6969577..1ec7614 100644
--- a/src/Common/zlib/deflate.c
+++ b/src/Common/zlib/deflate.c
@@ -1,5 +1,5 @@
/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -52,7 +52,7 @@
#include "deflate.h"
const char deflate_copyright[] =
- " deflate 1.2.8 Copyright 1995-2013 Jean-loup Gailly and Mark Adler ";
+ " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
/*
If you use the zlib library in a product, an acknowledgment is welcome
in the documentation of your product. If for some reason you cannot
@@ -73,6 +73,8 @@ typedef enum {
typedef block_state (*compress_func) OF((deflate_state *s, int flush));
/* Compression function. Returns the block state after the call. */
+local int deflateStateCheck OF((z_streamp strm));
+local void slide_hash OF((deflate_state *s));
local void fill_window OF((deflate_state *s));
local block_state deflate_stored OF((deflate_state *s, int flush));
local block_state deflate_fast OF((deflate_state *s, int flush));
@@ -84,15 +86,16 @@ local block_state deflate_huff OF((deflate_state *s, int flush));
local void lm_init OF((deflate_state *s));
local void putShortMSB OF((deflate_state *s, uInt b));
local void flush_pending OF((z_streamp strm));
-local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
+local unsigned read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
#ifdef ASMV
+# pragma message("Assembler code may have bugs -- use at your own risk")
void match_init OF((void)); /* asm code initialization */
uInt longest_match OF((deflate_state *s, IPos cur_match));
#else
local uInt longest_match OF((deflate_state *s, IPos cur_match));
#endif
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
local void check_match OF((deflate_state *s, IPos start, IPos match,
int length));
#endif
@@ -148,21 +151,14 @@ local const config configuration_table[10] = {
* meaning.
*/
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
/* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
-#define RANK(f) (((f) << 1) - ((f) > 4 ? 9 : 0))
+#define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0))
/* ===========================================================================
* Update a hash value with the given input byte
- * IN assertion: all calls to to UPDATE_HASH are made with consecutive
- * input characters, so that a running hash key can be computed from the
- * previous key instead of complete recalculation each time.
+ * IN assertion: all calls to UPDATE_HASH are made with consecutive input
+ * characters, so that a running hash key can be computed from the previous
+ * key instead of complete recalculation each time.
*/
#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
@@ -173,9 +169,9 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
* the previous length of the hash chain.
* If this file is compiled with -DFASTEST, the compression level is forced
* to 1, and no hash chains are maintained.
- * IN assertion: all calls to to INSERT_STRING are made with consecutive
- * input characters and the first MIN_MATCH bytes of str are valid
- * (except for the last MIN_MATCH-1 bytes of the input file).
+ * IN assertion: all calls to INSERT_STRING are made with consecutive input
+ * characters and the first MIN_MATCH bytes of str are valid (except for
+ * the last MIN_MATCH-1 bytes of the input file).
*/
#ifdef FASTEST
#define INSERT_STRING(s, str, match_head) \
@@ -197,6 +193,37 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
s->head[s->hash_size-1] = NIL; \
zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
+/* ===========================================================================
+ * Slide the hash table when sliding the window down (could be avoided with 32
+ * bit values at the expense of memory usage). We slide even when level == 0 to
+ * keep the hash table consistent if we switch back to level > 0 later.
+ */
+local void slide_hash(s)
+ deflate_state *s;
+{
+ unsigned n, m;
+ Posf *p;
+ uInt wsize = s->w_size;
+
+ n = s->hash_size;
+ p = &s->head[n];
+ do {
+ m = *--p;
+ *p = (Pos)(m >= wsize ? m - wsize : NIL);
+ } while (--n);
+ n = wsize;
+#ifndef FASTEST
+ p = &s->prev[n];
+ do {
+ m = *--p;
+ *p = (Pos)(m >= wsize ? m - wsize : NIL);
+ /* If n is not on any hash chain, prev[n] is garbage but
+ * its value will never be used.
+ */
+ } while (--n);
+#endif
+}
+
/* ========================================================================= */
int ZEXPORT deflateInit_(strm, level, version, stream_size)
z_streamp strm;
@@ -270,7 +297,7 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
#endif
if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
- strategy < 0 || strategy > Z_FIXED) {
+ strategy < 0 || strategy > Z_FIXED || (windowBits == 8 && wrap != 1)) {
return Z_STREAM_ERROR;
}
if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */
@@ -278,14 +305,15 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
if (s == Z_NULL) return Z_MEM_ERROR;
strm->state = (struct internal_state FAR *)s;
s->strm = strm;
+ s->status = INIT_STATE; /* to pass state test in deflateReset() */
s->wrap = wrap;
s->gzhead = Z_NULL;
- s->w_bits = windowBits;
+ s->w_bits = (uInt)windowBits;
s->w_size = 1 << s->w_bits;
s->w_mask = s->w_size - 1;
- s->hash_bits = memLevel + 7;
+ s->hash_bits = (uInt)memLevel + 7;
s->hash_size = 1 << s->hash_bits;
s->hash_mask = s->hash_size - 1;
s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
@@ -319,6 +347,31 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
return deflateReset(strm);
}
+/* =========================================================================
+ * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
+ */
+local int deflateStateCheck (strm)
+ z_streamp strm;
+{
+ deflate_state *s;
+ if (strm == Z_NULL ||
+ strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+ return 1;
+ s = strm->state;
+ if (s == Z_NULL || s->strm != strm || (s->status != INIT_STATE &&
+#ifdef GZIP
+ s->status != GZIP_STATE &&
+#endif
+ s->status != EXTRA_STATE &&
+ s->status != NAME_STATE &&
+ s->status != COMMENT_STATE &&
+ s->status != HCRC_STATE &&
+ s->status != BUSY_STATE &&
+ s->status != FINISH_STATE))
+ return 1;
+ return 0;
+}
+
/* ========================================================================= */
int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
z_streamp strm;
@@ -331,7 +384,7 @@ int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
unsigned avail;
z_const unsigned char *next;
- if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL)
+ if (deflateStateCheck(strm) || dictionary == Z_NULL)
return Z_STREAM_ERROR;
s = strm->state;
wrap = s->wrap;
@@ -389,13 +442,34 @@ int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
}
/* ========================================================================= */
+int ZEXPORT deflateGetDictionary (strm, dictionary, dictLength)
+ z_streamp strm;
+ Bytef *dictionary;
+ uInt *dictLength;
+{
+ deflate_state *s;
+ uInt len;
+
+ if (deflateStateCheck(strm))
+ return Z_STREAM_ERROR;
+ s = strm->state;
+ len = s->strstart + s->lookahead;
+ if (len > s->w_size)
+ len = s->w_size;
+ if (dictionary != Z_NULL && len)
+ zmemcpy(dictionary, s->window + s->strstart + s->lookahead - len, len);
+ if (dictLength != Z_NULL)
+ *dictLength = len;
+ return Z_OK;
+}
+
+/* ========================================================================= */
int ZEXPORT deflateResetKeep (strm)
z_streamp strm;
{
deflate_state *s;
- if (strm == Z_NULL || strm->state == Z_NULL ||
- strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) {
+ if (deflateStateCheck(strm)) {
return Z_STREAM_ERROR;
}
@@ -410,7 +484,11 @@ int ZEXPORT deflateResetKeep (strm)
if (s->wrap < 0) {
s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
}
- s->status = s->wrap ? INIT_STATE : BUSY_STATE;
+ s->status =
+#ifdef GZIP
+ s->wrap == 2 ? GZIP_STATE :
+#endif
+ s->wrap ? INIT_STATE : BUSY_STATE;
strm->adler =
#ifdef GZIP
s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
@@ -440,8 +518,8 @@ int ZEXPORT deflateSetHeader (strm, head)
z_streamp strm;
gz_headerp head;
{
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
- if (strm->state->wrap != 2) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm) || strm->state->wrap != 2)
+ return Z_STREAM_ERROR;
strm->state->gzhead = head;
return Z_OK;
}
@@ -452,7 +530,7 @@ int ZEXPORT deflatePending (strm, pending, bits)
int *bits;
z_streamp strm;
{
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
if (pending != Z_NULL)
*pending = strm->state->pending;
if (bits != Z_NULL)
@@ -469,7 +547,7 @@ int ZEXPORT deflatePrime (strm, bits, value)
deflate_state *s;
int put;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
s = strm->state;
if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
return Z_BUF_ERROR;
@@ -494,9 +572,8 @@ int ZEXPORT deflateParams(strm, level, strategy)
{
deflate_state *s;
compress_func func;
- int err = Z_OK;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
s = strm->state;
#ifdef FASTEST
@@ -510,13 +587,22 @@ int ZEXPORT deflateParams(strm, level, strategy)
func = configuration_table[s->level].func;
if ((strategy != s->strategy || func != configuration_table[level].func) &&
- strm->total_in != 0) {
+ s->high_water) {
/* Flush the last buffer: */
- err = deflate(strm, Z_BLOCK);
- if (err == Z_BUF_ERROR && s->pending == 0)
- err = Z_OK;
+ int err = deflate(strm, Z_BLOCK);
+ if (err == Z_STREAM_ERROR)
+ return err;
+ if (strm->avail_out == 0)
+ return Z_BUF_ERROR;
}
if (s->level != level) {
+ if (s->level == 0 && s->matches != 0) {
+ if (s->matches == 1)
+ slide_hash(s);
+ else
+ CLEAR_HASH(s);
+ s->matches = 0;
+ }
s->level = level;
s->max_lazy_match = configuration_table[level].max_lazy;
s->good_match = configuration_table[level].good_length;
@@ -524,7 +610,7 @@ int ZEXPORT deflateParams(strm, level, strategy)
s->max_chain_length = configuration_table[level].max_chain;
}
s->strategy = strategy;
- return err;
+ return Z_OK;
}
/* ========================================================================= */
@@ -537,12 +623,12 @@ int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain)
{
deflate_state *s;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
s = strm->state;
- s->good_match = good_length;
- s->max_lazy_match = max_lazy;
+ s->good_match = (uInt)good_length;
+ s->max_lazy_match = (uInt)max_lazy;
s->nice_match = nice_length;
- s->max_chain_length = max_chain;
+ s->max_chain_length = (uInt)max_chain;
return Z_OK;
}
@@ -569,14 +655,13 @@ uLong ZEXPORT deflateBound(strm, sourceLen)
{
deflate_state *s;
uLong complen, wraplen;
- Bytef *str;
/* conservative upper bound for compressed data */
complen = sourceLen +
((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
/* if can't get parameters, return conservative bound plus zlib wrapper */
- if (strm == Z_NULL || strm->state == Z_NULL)
+ if (deflateStateCheck(strm))
return complen + 6;
/* compute wrapper length */
@@ -588,9 +673,11 @@ uLong ZEXPORT deflateBound(strm, sourceLen)
case 1: /* zlib wrapper */
wraplen = 6 + (s->strstart ? 4 : 0);
break;
+#ifdef GZIP
case 2: /* gzip wrapper */
wraplen = 18;
if (s->gzhead != Z_NULL) { /* user-supplied gzip header */
+ Bytef *str;
if (s->gzhead->extra != Z_NULL)
wraplen += 2 + s->gzhead->extra_len;
str = s->gzhead->name;
@@ -607,6 +694,7 @@ uLong ZEXPORT deflateBound(strm, sourceLen)
wraplen += 2;
}
break;
+#endif
default: /* for compiler happiness */
wraplen = 6;
}
@@ -634,10 +722,10 @@ local void putShortMSB (s, b)
}
/* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
+ * Flush as much pending output as possible. All deflate() output, except for
+ * some deflate_stored() output, goes through this function so some
+ * applications may wish to modify it to avoid allocating a large
+ * strm->next_out buffer and copying into it. (See also read_buf()).
*/
local void flush_pending(strm)
z_streamp strm;
@@ -654,13 +742,23 @@ local void flush_pending(strm)
strm->next_out += len;
s->pending_out += len;
strm->total_out += len;
- strm->avail_out -= len;
- s->pending -= len;
+ strm->avail_out -= len;
+ s->pending -= len;
if (s->pending == 0) {
s->pending_out = s->pending_buf;
}
}
+/* ===========================================================================
+ * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
+ */
+#define HCRC_UPDATE(beg) \
+ do { \
+ if (s->gzhead->hcrc && s->pending > (beg)) \
+ strm->adler = crc32(strm->adler, s->pending_buf + (beg), \
+ s->pending - (beg)); \
+ } while (0)
+
/* ========================================================================= */
int ZEXPORT deflate (strm, flush)
z_streamp strm;
@@ -669,230 +767,229 @@ int ZEXPORT deflate (strm, flush)
int old_flush; /* value of flush param for previous deflate call */
deflate_state *s;
- if (strm == Z_NULL || strm->state == Z_NULL ||
- flush > Z_BLOCK || flush < 0) {
+ if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {
return Z_STREAM_ERROR;
}
s = strm->state;
if (strm->next_out == Z_NULL ||
- (strm->next_in == Z_NULL && strm->avail_in != 0) ||
+ (strm->avail_in != 0 && strm->next_in == Z_NULL) ||
(s->status == FINISH_STATE && flush != Z_FINISH)) {
ERR_RETURN(strm, Z_STREAM_ERROR);
}
if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
- s->strm = strm; /* just in case */
old_flush = s->last_flush;
s->last_flush = flush;
+ /* Flush as much pending output as possible */
+ if (s->pending != 0) {
+ flush_pending(strm);
+ if (strm->avail_out == 0) {
+ /* Since avail_out is 0, deflate will be called again with
+ * more output space, but possibly with both pending and
+ * avail_in equal to zero. There won't be anything to do,
+ * but this is not an error situation so make sure we
+ * return OK instead of BUF_ERROR at next call of deflate:
+ */
+ s->last_flush = -1;
+ return Z_OK;
+ }
+
+ /* Make sure there is something to do and avoid duplicate consecutive
+ * flushes. For repeated and useless calls with Z_FINISH, we keep
+ * returning Z_STREAM_END instead of Z_BUF_ERROR.
+ */
+ } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
+ flush != Z_FINISH) {
+ ERR_RETURN(strm, Z_BUF_ERROR);
+ }
+
+ /* User must not provide more input after the first FINISH: */
+ if (s->status == FINISH_STATE && strm->avail_in != 0) {
+ ERR_RETURN(strm, Z_BUF_ERROR);
+ }
+
/* Write the header */
if (s->status == INIT_STATE) {
-#ifdef GZIP
- if (s->wrap == 2) {
- strm->adler = crc32(0L, Z_NULL, 0);
- put_byte(s, 31);
- put_byte(s, 139);
- put_byte(s, 8);
- if (s->gzhead == Z_NULL) {
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, s->level == 9 ? 2 :
- (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
- 4 : 0));
- put_byte(s, OS_CODE);
- s->status = BUSY_STATE;
- }
- else {
- put_byte(s, (s->gzhead->text ? 1 : 0) +
- (s->gzhead->hcrc ? 2 : 0) +
- (s->gzhead->extra == Z_NULL ? 0 : 4) +
- (s->gzhead->name == Z_NULL ? 0 : 8) +
- (s->gzhead->comment == Z_NULL ? 0 : 16)
- );
- put_byte(s, (Byte)(s->gzhead->time & 0xff));
- put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
- put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
- put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
- put_byte(s, s->level == 9 ? 2 :
- (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
- 4 : 0));
- put_byte(s, s->gzhead->os & 0xff);
- if (s->gzhead->extra != Z_NULL) {
- put_byte(s, s->gzhead->extra_len & 0xff);
- put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
- }
- if (s->gzhead->hcrc)
- strm->adler = crc32(strm->adler, s->pending_buf,
- s->pending);
- s->gzindex = 0;
- s->status = EXTRA_STATE;
- }
- }
+ /* zlib header */
+ uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
+ uInt level_flags;
+
+ if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
+ level_flags = 0;
+ else if (s->level < 6)
+ level_flags = 1;
+ else if (s->level == 6)
+ level_flags = 2;
else
-#endif
- {
- uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
- uInt level_flags;
-
- if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
- level_flags = 0;
- else if (s->level < 6)
- level_flags = 1;
- else if (s->level == 6)
- level_flags = 2;
- else
- level_flags = 3;
- header |= (level_flags << 6);
- if (s->strstart != 0) header |= PRESET_DICT;
- header += 31 - (header % 31);
+ level_flags = 3;
+ header |= (level_flags << 6);
+ if (s->strstart != 0) header |= PRESET_DICT;
+ header += 31 - (header % 31);
+
+ putShortMSB(s, header);
+ /* Save the adler32 of the preset dictionary: */
+ if (s->strstart != 0) {
+ putShortMSB(s, (uInt)(strm->adler >> 16));
+ putShortMSB(s, (uInt)(strm->adler & 0xffff));
+ }
+ strm->adler = adler32(0L, Z_NULL, 0);
+ s->status = BUSY_STATE;
+
+ /* Compression must start with an empty pending buffer */
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+#ifdef GZIP
+ if (s->status == GZIP_STATE) {
+ /* gzip header */
+ strm->adler = crc32(0L, Z_NULL, 0);
+ put_byte(s, 31);
+ put_byte(s, 139);
+ put_byte(s, 8);
+ if (s->gzhead == Z_NULL) {
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, s->level == 9 ? 2 :
+ (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+ 4 : 0));
+ put_byte(s, OS_CODE);
s->status = BUSY_STATE;
- putShortMSB(s, header);
- /* Save the adler32 of the preset dictionary: */
- if (s->strstart != 0) {
- putShortMSB(s, (uInt)(strm->adler >> 16));
- putShortMSB(s, (uInt)(strm->adler & 0xffff));
+ /* Compression must start with an empty pending buffer */
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+ else {
+ put_byte(s, (s->gzhead->text ? 1 : 0) +
+ (s->gzhead->hcrc ? 2 : 0) +
+ (s->gzhead->extra == Z_NULL ? 0 : 4) +
+ (s->gzhead->name == Z_NULL ? 0 : 8) +
+ (s->gzhead->comment == Z_NULL ? 0 : 16)
+ );
+ put_byte(s, (Byte)(s->gzhead->time & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
+ put_byte(s, s->level == 9 ? 2 :
+ (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+ 4 : 0));
+ put_byte(s, s->gzhead->os & 0xff);
+ if (s->gzhead->extra != Z_NULL) {
+ put_byte(s, s->gzhead->extra_len & 0xff);
+ put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
}
- strm->adler = adler32(0L, Z_NULL, 0);
+ if (s->gzhead->hcrc)
+ strm->adler = crc32(strm->adler, s->pending_buf,
+ s->pending);
+ s->gzindex = 0;
+ s->status = EXTRA_STATE;
}
}
-#ifdef GZIP
if (s->status == EXTRA_STATE) {
if (s->gzhead->extra != Z_NULL) {
- uInt beg = s->pending; /* start of bytes to update crc */
-
- while (s->gzindex < (s->gzhead->extra_len & 0xffff)) {
- if (s->pending == s->pending_buf_size) {
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- flush_pending(strm);
- beg = s->pending;
- if (s->pending == s->pending_buf_size)
- break;
+ ulg beg = s->pending; /* start of bytes to update crc */
+ uInt left = (s->gzhead->extra_len & 0xffff) - s->gzindex;
+ while (s->pending + left > s->pending_buf_size) {
+ uInt copy = s->pending_buf_size - s->pending;
+ zmemcpy(s->pending_buf + s->pending,
+ s->gzhead->extra + s->gzindex, copy);
+ s->pending = s->pending_buf_size;
+ HCRC_UPDATE(beg);
+ s->gzindex += copy;
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
}
- put_byte(s, s->gzhead->extra[s->gzindex]);
- s->gzindex++;
- }
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- if (s->gzindex == s->gzhead->extra_len) {
- s->gzindex = 0;
- s->status = NAME_STATE;
+ beg = 0;
+ left -= copy;
}
+ zmemcpy(s->pending_buf + s->pending,
+ s->gzhead->extra + s->gzindex, left);
+ s->pending += left;
+ HCRC_UPDATE(beg);
+ s->gzindex = 0;
}
- else
- s->status = NAME_STATE;
+ s->status = NAME_STATE;
}
if (s->status == NAME_STATE) {
if (s->gzhead->name != Z_NULL) {
- uInt beg = s->pending; /* start of bytes to update crc */
+ ulg beg = s->pending; /* start of bytes to update crc */
int val;
-
do {
if (s->pending == s->pending_buf_size) {
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
+ HCRC_UPDATE(beg);
flush_pending(strm);
- beg = s->pending;
- if (s->pending == s->pending_buf_size) {
- val = 1;
- break;
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
}
+ beg = 0;
}
val = s->gzhead->name[s->gzindex++];
put_byte(s, val);
} while (val != 0);
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- if (val == 0) {
- s->gzindex = 0;
- s->status = COMMENT_STATE;
- }
+ HCRC_UPDATE(beg);
+ s->gzindex = 0;
}
- else
- s->status = COMMENT_STATE;
+ s->status = COMMENT_STATE;
}
if (s->status == COMMENT_STATE) {
if (s->gzhead->comment != Z_NULL) {
- uInt beg = s->pending; /* start of bytes to update crc */
+ ulg beg = s->pending; /* start of bytes to update crc */
int val;
-
do {
if (s->pending == s->pending_buf_size) {
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
+ HCRC_UPDATE(beg);
flush_pending(strm);
- beg = s->pending;
- if (s->pending == s->pending_buf_size) {
- val = 1;
- break;
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
}
+ beg = 0;
}
val = s->gzhead->comment[s->gzindex++];
put_byte(s, val);
} while (val != 0);
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- if (val == 0)
- s->status = HCRC_STATE;
+ HCRC_UPDATE(beg);
}
- else
- s->status = HCRC_STATE;
+ s->status = HCRC_STATE;
}
if (s->status == HCRC_STATE) {
if (s->gzhead->hcrc) {
- if (s->pending + 2 > s->pending_buf_size)
+ if (s->pending + 2 > s->pending_buf_size) {
flush_pending(strm);
- if (s->pending + 2 <= s->pending_buf_size) {
- put_byte(s, (Byte)(strm->adler & 0xff));
- put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
- strm->adler = crc32(0L, Z_NULL, 0);
- s->status = BUSY_STATE;
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
}
+ put_byte(s, (Byte)(strm->adler & 0xff));
+ put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
+ strm->adler = crc32(0L, Z_NULL, 0);
}
- else
- s->status = BUSY_STATE;
- }
-#endif
+ s->status = BUSY_STATE;
- /* Flush as much pending output as possible */
- if (s->pending != 0) {
+ /* Compression must start with an empty pending buffer */
flush_pending(strm);
- if (strm->avail_out == 0) {
- /* Since avail_out is 0, deflate will be called again with
- * more output space, but possibly with both pending and
- * avail_in equal to zero. There won't be anything to do,
- * but this is not an error situation so make sure we
- * return OK instead of BUF_ERROR at next call of deflate:
- */
+ if (s->pending != 0) {
s->last_flush = -1;
return Z_OK;
}
-
- /* Make sure there is something to do and avoid duplicate consecutive
- * flushes. For repeated and useless calls with Z_FINISH, we keep
- * returning Z_STREAM_END instead of Z_BUF_ERROR.
- */
- } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
- flush != Z_FINISH) {
- ERR_RETURN(strm, Z_BUF_ERROR);
- }
-
- /* User must not provide more input after the first FINISH: */
- if (s->status == FINISH_STATE && strm->avail_in != 0) {
- ERR_RETURN(strm, Z_BUF_ERROR);
}
+#endif
/* Start a new block or continue the current one.
*/
@@ -900,9 +997,10 @@ int ZEXPORT deflate (strm, flush)
(flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
block_state bstate;
- bstate = s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :
- (s->strategy == Z_RLE ? deflate_rle(s, flush) :
- (*(configuration_table[s->level].func))(s, flush));
+ bstate = s->level == 0 ? deflate_stored(s, flush) :
+ s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :
+ s->strategy == Z_RLE ? deflate_rle(s, flush) :
+ (*(configuration_table[s->level].func))(s, flush);
if (bstate == finish_started || bstate == finish_done) {
s->status = FINISH_STATE;
@@ -944,7 +1042,6 @@ int ZEXPORT deflate (strm, flush)
}
}
}
- Assert(strm->avail_out > 0, "bug2");
if (flush != Z_FINISH) return Z_OK;
if (s->wrap <= 0) return Z_STREAM_END;
@@ -981,18 +1078,9 @@ int ZEXPORT deflateEnd (strm)
{
int status;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
status = strm->state->status;
- if (status != INIT_STATE &&
- status != EXTRA_STATE &&
- status != NAME_STATE &&
- status != COMMENT_STATE &&
- status != HCRC_STATE &&
- status != BUSY_STATE &&
- status != FINISH_STATE) {
- return Z_STREAM_ERROR;
- }
/* Deallocate in reverse order of allocations: */
TRY_FREE(strm, strm->state->pending_buf);
@@ -1023,7 +1111,7 @@ int ZEXPORT deflateCopy (dest, source)
ushf *overlay;
- if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) {
+ if (deflateStateCheck(source) || dest == Z_NULL) {
return Z_STREAM_ERROR;
}
@@ -1073,7 +1161,7 @@ int ZEXPORT deflateCopy (dest, source)
* allocating a large strm->next_in buffer and copying from it.
* (See also flush_pending()).
*/
-local int read_buf(strm, buf, size)
+local unsigned read_buf(strm, buf, size)
z_streamp strm;
Bytef *buf;
unsigned size;
@@ -1097,7 +1185,7 @@ local int read_buf(strm, buf, size)
strm->next_in += len;
strm->total_in += len;
- return (int)len;
+ return len;
}
/* ===========================================================================
@@ -1151,9 +1239,9 @@ local uInt longest_match(s, cur_match)
{
unsigned chain_length = s->max_chain_length;/* max hash chain length */
register Bytef *scan = s->window + s->strstart; /* current string */
- register Bytef *match; /* matched string */
+ register Bytef *match; /* matched string */
register int len; /* length of current match */
- int best_len = s->prev_length; /* best match length so far */
+ int best_len = (int)s->prev_length; /* best match length so far */
int nice_match = s->nice_match; /* stop if match long enough */
IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
s->strstart - (IPos)MAX_DIST(s) : NIL;
@@ -1188,7 +1276,7 @@ local uInt longest_match(s, cur_match)
/* Do not look for matches beyond the end of the input. This is necessary
* to make deflate deterministic.
*/
- if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
+ if ((uInt)nice_match > s->lookahead) nice_match = (int)s->lookahead;
Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
@@ -1349,7 +1437,11 @@ local uInt longest_match(s, cur_match)
#endif /* FASTEST */
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
+
+#define EQUAL 0
+/* result of memcmp for equal strings */
+
/* ===========================================================================
* Check that the match at match_start is indeed a match.
*/
@@ -1375,7 +1467,7 @@ local void check_match(s, start, match, length)
}
#else
# define check_match(s, start, match, length)
-#endif /* DEBUG */
+#endif /* ZLIB_DEBUG */
/* ===========================================================================
* Fill the window when the lookahead becomes insufficient.
@@ -1390,8 +1482,7 @@ local void check_match(s, start, match, length)
local void fill_window(s)
deflate_state *s;
{
- register unsigned n, m;
- register Posf *p;
+ unsigned n;
unsigned more; /* Amount of free space at the end of the window. */
uInt wsize = s->w_size;
@@ -1418,35 +1509,11 @@ local void fill_window(s)
*/
if (s->strstart >= wsize+MAX_DIST(s)) {
- zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
+ zmemcpy(s->window, s->window+wsize, (unsigned)wsize - more);
s->match_start -= wsize;
s->strstart -= wsize; /* we now have strstart >= MAX_DIST */
s->block_start -= (long) wsize;
-
- /* Slide the hash table (could be avoided with 32 bit values
- at the expense of memory usage). We slide even when level == 0
- to keep the hash table consistent if we switch back to level > 0
- later. (Using level 0 permanently is not an optimal usage of
- zlib, so we don't care about this pathological case.)
- */
- n = s->hash_size;
- p = &s->head[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- } while (--n);
-
- n = wsize;
-#ifndef FASTEST
- p = &s->prev[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- /* If n is not on any hash chain, prev[n] is garbage but
- * its value will never be used.
- */
- } while (--n);
-#endif
+ slide_hash(s);
more += wsize;
}
if (s->strm->avail_in == 0) break;
@@ -1552,70 +1619,199 @@ local void fill_window(s)
if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \
}
+/* Maximum stored block length in deflate format (not including header). */
+#define MAX_STORED 65535
+
+/* Minimum of a and b. */
+#define MIN(a, b) ((a) > (b) ? (b) : (a))
+
/* ===========================================================================
* Copy without compression as much as possible from the input stream, return
* the current block state.
- * This function does not insert new strings in the dictionary since
- * uncompressible data is probably not useful. This function is used
- * only for the level=0 compression option.
- * NOTE: this function should be optimized to avoid extra copying from
- * window to pending_buf.
+ *
+ * In case deflateParams() is used to later switch to a non-zero compression
+ * level, s->matches (otherwise unused when storing) keeps track of the number
+ * of hash table slides to perform. If s->matches is 1, then one hash table
+ * slide will be done when switching. If s->matches is 2, the maximum value
+ * allowed here, then the hash table will be cleared, since two or more slides
+ * is the same as a clear.
+ *
+ * deflate_stored() is written to minimize the number of times an input byte is
+ * copied. It is most efficient with large input and output buffers, which
+ * maximizes the opportunites to have a single copy from next_in to next_out.
*/
local block_state deflate_stored(s, flush)
deflate_state *s;
int flush;
{
- /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
- * to pending_buf_size, and each stored block has a 5 byte header:
+ /* Smallest worthy block size when not flushing or finishing. By default
+ * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
+ * large input and output buffers, the stored block size will be larger.
*/
- ulg max_block_size = 0xffff;
- ulg max_start;
-
- if (max_block_size > s->pending_buf_size - 5) {
- max_block_size = s->pending_buf_size - 5;
- }
+ unsigned min_block = MIN(s->pending_buf_size - 5, s->w_size);
- /* Copy as much as possible from input to output: */
- for (;;) {
- /* Fill the window as much as possible: */
- if (s->lookahead <= 1) {
-
- Assert(s->strstart < s->w_size+MAX_DIST(s) ||
- s->block_start >= (long)s->w_size, "slide too late");
+ /* Copy as many min_block or larger stored blocks directly to next_out as
+ * possible. If flushing, copy the remaining available input to next_out as
+ * stored blocks, if there is enough space.
+ */
+ unsigned len, left, have, last = 0;
+ unsigned used = s->strm->avail_in;
+ do {
+ /* Set len to the maximum size block that we can copy directly with the
+ * available input data and output space. Set left to how much of that
+ * would be copied from what's left in the window.
+ */
+ len = MAX_STORED; /* maximum deflate stored block length */
+ have = (s->bi_valid + 42) >> 3; /* number of header bytes */
+ if (s->strm->avail_out < have) /* need room for header */
+ break;
+ /* maximum stored block length that will fit in avail_out: */
+ have = s->strm->avail_out - have;
+ left = s->strstart - s->block_start; /* bytes left in window */
+ if (len > (ulg)left + s->strm->avail_in)
+ len = left + s->strm->avail_in; /* limit len to the input */
+ if (len > have)
+ len = have; /* limit len to the output */
+
+ /* If the stored block would be less than min_block in length, or if
+ * unable to copy all of the available input when flushing, then try
+ * copying to the window and the pending buffer instead. Also don't
+ * write an empty block when flushing -- deflate() does that.
+ */
+ if (len < min_block && ((len == 0 && flush != Z_FINISH) ||
+ flush == Z_NO_FLUSH ||
+ len != left + s->strm->avail_in))
+ break;
- fill_window(s);
- if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
+ /* Make a dummy stored block in pending to get the header bytes,
+ * including any pending bits. This also updates the debugging counts.
+ */
+ last = flush == Z_FINISH && len == left + s->strm->avail_in ? 1 : 0;
+ _tr_stored_block(s, (char *)0, 0L, last);
+
+ /* Replace the lengths in the dummy stored block with len. */
+ s->pending_buf[s->pending - 4] = len;
+ s->pending_buf[s->pending - 3] = len >> 8;
+ s->pending_buf[s->pending - 2] = ~len;
+ s->pending_buf[s->pending - 1] = ~len >> 8;
+
+ /* Write the stored block header bytes. */
+ flush_pending(s->strm);
+
+#ifdef ZLIB_DEBUG
+ /* Update debugging counts for the data about to be copied. */
+ s->compressed_len += len << 3;
+ s->bits_sent += len << 3;
+#endif
- if (s->lookahead == 0) break; /* flush the current block */
+ /* Copy uncompressed bytes from the window to next_out. */
+ if (left) {
+ if (left > len)
+ left = len;
+ zmemcpy(s->strm->next_out, s->window + s->block_start, left);
+ s->strm->next_out += left;
+ s->strm->avail_out -= left;
+ s->strm->total_out += left;
+ s->block_start += left;
+ len -= left;
}
- Assert(s->block_start >= 0L, "block gone");
-
- s->strstart += s->lookahead;
- s->lookahead = 0;
-
- /* Emit a stored block if pending_buf will be full: */
- max_start = s->block_start + max_block_size;
- if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
- /* strstart == 0 is possible when wraparound on 16-bit machine */
- s->lookahead = (uInt)(s->strstart - max_start);
- s->strstart = (uInt)max_start;
- FLUSH_BLOCK(s, 0);
+
+ /* Copy uncompressed bytes directly from next_in to next_out, updating
+ * the check value.
+ */
+ if (len) {
+ read_buf(s->strm, s->strm->next_out, len);
+ s->strm->next_out += len;
+ s->strm->avail_out -= len;
+ s->strm->total_out += len;
}
- /* Flush if we may have to slide, otherwise block_start may become
- * negative and the data will be gone:
+ } while (last == 0);
+
+ /* Update the sliding window with the last s->w_size bytes of the copied
+ * data, or append all of the copied data to the existing window if less
+ * than s->w_size bytes were copied. Also update the number of bytes to
+ * insert in the hash tables, in the event that deflateParams() switches to
+ * a non-zero compression level.
+ */
+ used -= s->strm->avail_in; /* number of input bytes directly copied */
+ if (used) {
+ /* If any input was used, then no unused input remains in the window,
+ * therefore s->block_start == s->strstart.
*/
- if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
- FLUSH_BLOCK(s, 0);
+ if (used >= s->w_size) { /* supplant the previous history */
+ s->matches = 2; /* clear hash */
+ zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);
+ s->strstart = s->w_size;
}
+ else {
+ if (s->window_size - s->strstart <= used) {
+ /* Slide the window down. */
+ s->strstart -= s->w_size;
+ zmemcpy(s->window, s->window + s->w_size, s->strstart);
+ if (s->matches < 2)
+ s->matches++; /* add a pending slide_hash() */
+ }
+ zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);
+ s->strstart += used;
+ }
+ s->block_start = s->strstart;
+ s->insert += MIN(used, s->w_size - s->insert);
}
- s->insert = 0;
- if (flush == Z_FINISH) {
- FLUSH_BLOCK(s, 1);
+ if (s->high_water < s->strstart)
+ s->high_water = s->strstart;
+
+ /* If the last block was written to next_out, then done. */
+ if (last)
return finish_done;
+
+ /* If flushing and all input has been consumed, then done. */
+ if (flush != Z_NO_FLUSH && flush != Z_FINISH &&
+ s->strm->avail_in == 0 && (long)s->strstart == s->block_start)
+ return block_done;
+
+ /* Fill the window with any remaining input. */
+ have = s->window_size - s->strstart - 1;
+ if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) {
+ /* Slide the window down. */
+ s->block_start -= s->w_size;
+ s->strstart -= s->w_size;
+ zmemcpy(s->window, s->window + s->w_size, s->strstart);
+ if (s->matches < 2)
+ s->matches++; /* add a pending slide_hash() */
+ have += s->w_size; /* more space now */
}
- if ((long)s->strstart > s->block_start)
- FLUSH_BLOCK(s, 0);
- return block_done;
+ if (have > s->strm->avail_in)
+ have = s->strm->avail_in;
+ if (have) {
+ read_buf(s->strm, s->window + s->strstart, have);
+ s->strstart += have;
+ }
+ if (s->high_water < s->strstart)
+ s->high_water = s->strstart;
+
+ /* There was not enough avail_out to write a complete worthy or flushed
+ * stored block to next_out. Write a stored block to pending instead, if we
+ * have enough input for a worthy block, or if flushing and there is enough
+ * room for the remaining input as a stored block in the pending buffer.
+ */
+ have = (s->bi_valid + 42) >> 3; /* number of header bytes */
+ /* maximum stored block length that will fit in pending: */
+ have = MIN(s->pending_buf_size - have, MAX_STORED);
+ min_block = MIN(have, s->w_size);
+ left = s->strstart - s->block_start;
+ if (left >= min_block ||
+ ((left || flush == Z_FINISH) && flush != Z_NO_FLUSH &&
+ s->strm->avail_in == 0 && left <= have)) {
+ len = MIN(left, have);
+ last = flush == Z_FINISH && s->strm->avail_in == 0 &&
+ len == left ? 1 : 0;
+ _tr_stored_block(s, (charf *)s->window + s->block_start, len, last);
+ s->block_start += len;
+ flush_pending(s->strm);
+ }
+
+ /* We've done all we can with the available input and output. */
+ return last ? finish_started : need_more;
}
/* ===========================================================================
@@ -1892,7 +2088,7 @@ local block_state deflate_rle(s, flush)
prev == *++scan && prev == *++scan &&
prev == *++scan && prev == *++scan &&
scan < strend);
- s->match_length = MAX_MATCH - (int)(strend - scan);
+ s->match_length = MAX_MATCH - (uInt)(strend - scan);
if (s->match_length > s->lookahead)
s->match_length = s->lookahead;
}
diff --git a/src/Common/zlib/deflate.h b/src/Common/zlib/deflate.h
index ce0299e..23ecdd3 100644
--- a/src/Common/zlib/deflate.h
+++ b/src/Common/zlib/deflate.h
@@ -1,5 +1,5 @@
/* deflate.h -- internal compression state
- * Copyright (C) 1995-2012 Jean-loup Gailly
+ * Copyright (C) 1995-2016 Jean-loup Gailly
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -51,13 +51,16 @@
#define Buf_size 16
/* size of bit buffer in bi_buf */
-#define INIT_STATE 42
-#define EXTRA_STATE 69
-#define NAME_STATE 73
-#define COMMENT_STATE 91
-#define HCRC_STATE 103
-#define BUSY_STATE 113
-#define FINISH_STATE 666
+#define INIT_STATE 42 /* zlib header -> BUSY_STATE */
+#ifdef GZIP
+# define GZIP_STATE 57 /* gzip header -> BUSY_STATE | EXTRA_STATE */
+#endif
+#define EXTRA_STATE 69 /* gzip extra block -> NAME_STATE */
+#define NAME_STATE 73 /* gzip file name -> COMMENT_STATE */
+#define COMMENT_STATE 91 /* gzip comment -> HCRC_STATE */
+#define HCRC_STATE 103 /* gzip header CRC -> BUSY_STATE */
+#define BUSY_STATE 113 /* deflate -> FINISH_STATE */
+#define FINISH_STATE 666 /* stream complete */
/* Stream status */
@@ -83,7 +86,7 @@ typedef struct static_tree_desc_s static_tree_desc;
typedef struct tree_desc_s {
ct_data *dyn_tree; /* the dynamic tree */
int max_code; /* largest code with non zero frequency */
- static_tree_desc *stat_desc; /* the corresponding static tree */
+ const static_tree_desc *stat_desc; /* the corresponding static tree */
} FAR tree_desc;
typedef ush Pos;
@@ -100,10 +103,10 @@ typedef struct internal_state {
Bytef *pending_buf; /* output still pending */
ulg pending_buf_size; /* size of pending_buf */
Bytef *pending_out; /* next pending byte to output to the stream */
- uInt pending; /* nb of bytes in the pending buffer */
+ ulg pending; /* nb of bytes in the pending buffer */
int wrap; /* bit 0 true for zlib, bit 1 true for gzip */
gz_headerp gzhead; /* gzip header information to write */
- uInt gzindex; /* where in extra, name, or comment */
+ ulg gzindex; /* where in extra, name, or comment */
Byte method; /* can only be DEFLATED */
int last_flush; /* value of flush param for previous deflate call */
@@ -249,7 +252,7 @@ typedef struct internal_state {
uInt matches; /* number of string matches in current block */
uInt insert; /* bytes at end of window left to insert */
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
ulg compressed_len; /* total bit length of compressed file mod 2^32 */
ulg bits_sent; /* bit length of compressed data sent mod 2^32 */
#endif
@@ -275,7 +278,7 @@ typedef struct internal_state {
/* Output a byte on the stream.
* IN assertion: there is enough room in pending_buf.
*/
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
+#define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);}
#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
@@ -309,7 +312,7 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
* used.
*/
-#ifndef DEBUG
+#ifndef ZLIB_DEBUG
/* Inline versions of _tr_tally for speed: */
#if defined(GEN_TREES_H) || !defined(STDC)
@@ -328,8 +331,8 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
flush = (s->last_lit == s->lit_bufsize-1); \
}
# define _tr_tally_dist(s, distance, length, flush) \
- { uch len = (length); \
- ush dist = (distance); \
+ { uch len = (uch)(length); \
+ ush dist = (ush)(distance); \
s->d_buf[s->last_lit] = dist; \
s->l_buf[s->last_lit++] = len; \
dist--; \
diff --git a/src/Common/zlib/gzguts.h b/src/Common/zlib/gzguts.h
index d87659d..990a4d2 100644
--- a/src/Common/zlib/gzguts.h
+++ b/src/Common/zlib/gzguts.h
@@ -1,5 +1,5 @@
/* gzguts.h -- zlib internal header definitions for gz* operations
- * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler
+ * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -25,6 +25,10 @@
# include <stdlib.h>
# include <limits.h>
#endif
+
+#ifndef _POSIX_SOURCE
+# define _POSIX_SOURCE
+#endif
#include <fcntl.h>
#ifdef _WIN32
@@ -35,6 +39,10 @@
# include <io.h>
#endif
+#if defined(_WIN32) || defined(__CYGWIN__)
+# define WIDECHAR
+#endif
+
#ifdef WINAPI_FAMILY
# define open _open
# define read _read
@@ -95,18 +103,19 @@
# endif
#endif
-/* unlike snprintf (which is required in C99, yet still not supported by
- Microsoft more than a decade later!), _snprintf does not guarantee null
- termination of the result -- however this is only used in gzlib.c where
+/* unlike snprintf (which is required in C99), _snprintf does not guarantee
+ null termination of the result -- however this is only used in gzlib.c where
the result is assured to fit in the space provided */
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && _MSC_VER < 1900
# define snprintf _snprintf
#endif
#ifndef local
# define local static
#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
+/* since "static" is used to mean two completely different things in C, we
+ define "local" for the non-static meaning of "static", for readability
+ (compile with -Dlocal if your debugger can't find static symbols) */
/* gz* functions always use library allocation functions */
#ifndef STDC
@@ -170,7 +179,7 @@ typedef struct {
char *path; /* path or fd for error messages */
unsigned size; /* buffer size, zero if not allocated yet */
unsigned want; /* requested buffer size, default is GZBUFSIZE */
- unsigned char *in; /* input buffer */
+ unsigned char *in; /* input buffer (double-sized when writing) */
unsigned char *out; /* output buffer (double-sized when reading) */
int direct; /* 0 if processing gzip, 1 if transparent */
/* just for reading */
diff --git a/src/Common/zlib/gzlib.c b/src/Common/zlib/gzlib.c
index fae202e..4105e6a 100644
--- a/src/Common/zlib/gzlib.c
+++ b/src/Common/zlib/gzlib.c
@@ -1,11 +1,11 @@
/* gzlib.c -- zlib functions common to reading and writing gzip files
- * Copyright (C) 2004, 2010, 2011, 2012, 2013 Mark Adler
+ * Copyright (C) 2004-2017 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
#include "gzguts.h"
-#if defined(_WIN32) && !defined(__BORLANDC__)
+#if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__)
# define LSEEK _lseeki64
#else
#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
@@ -94,7 +94,7 @@ local gzFile gz_open(path, fd, mode)
const char *mode;
{
gz_statep state;
- size_t len;
+ z_size_t len;
int oflag;
#ifdef O_CLOEXEC
int cloexec = 0;
@@ -188,10 +188,10 @@ local gzFile gz_open(path, fd, mode)
}
/* save the path name for error messages */
-#ifdef _WIN32
+#ifdef WIDECHAR
if (fd == -2) {
len = wcstombs(NULL, path, 0);
- if (len == (size_t)-1)
+ if (len == (z_size_t)-1)
len = 0;
}
else
@@ -202,7 +202,7 @@ local gzFile gz_open(path, fd, mode)
free(state);
return NULL;
}
-#ifdef _WIN32
+#ifdef WIDECHAR
if (fd == -2)
if (len)
wcstombs(state->path, path, len + 1);
@@ -211,7 +211,7 @@ local gzFile gz_open(path, fd, mode)
else
#endif
#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
- snprintf(state->path, len + 1, "%s", (const char *)path);
+ (void)snprintf(state->path, len + 1, "%s", (const char *)path);
#else
strcpy(state->path, path);
#endif
@@ -239,7 +239,7 @@ local gzFile gz_open(path, fd, mode)
/* open the file with the appropriate flags (or just use fd) */
state->fd = fd > -1 ? fd : (
-#ifdef _WIN32
+#ifdef WIDECHAR
fd == -2 ? _wopen(path, oflag, 0666) :
#endif
open((const char *)path, oflag, 0666));
@@ -248,8 +248,10 @@ local gzFile gz_open(path, fd, mode)
free(state);
return NULL;
}
- if (state->mode == GZ_APPEND)
+ if (state->mode == GZ_APPEND) {
+ LSEEK(state->fd, 0, SEEK_END); /* so gzoffset() is correct */
state->mode = GZ_WRITE; /* simplify later checks */
+ }
/* save the current position for rewinding (only if reading) */
if (state->mode == GZ_READ) {
@@ -291,7 +293,7 @@ gzFile ZEXPORT gzdopen(fd, mode)
if (fd == -1 || (path = (char *)malloc(7 + 3 * sizeof(int))) == NULL)
return NULL;
#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
- snprintf(path, 7 + 3 * sizeof(int), "<fd:%d>", fd); /* for debugging */
+ (void)snprintf(path, 7 + 3 * sizeof(int), "<fd:%d>", fd);
#else
sprintf(path, "<fd:%d>", fd); /* for debugging */
#endif
@@ -301,7 +303,7 @@ gzFile ZEXPORT gzdopen(fd, mode)
}
/* -- see zlib.h -- */
-#ifdef _WIN32
+#ifdef WIDECHAR
gzFile ZEXPORT gzopen_w(path, mode)
const wchar_t *path;
const char *mode;
@@ -329,6 +331,8 @@ int ZEXPORT gzbuffer(file, size)
return -1;
/* check and set requested size */
+ if ((size << 1) < size)
+ return -1; /* need to be able to double it */
if (size < 2)
size = 2; /* need two bytes to check magic header */
state->want = size;
@@ -604,14 +608,13 @@ void ZLIB_INTERNAL gz_error(state, err, msg)
return;
}
#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
- snprintf(state->msg, strlen(state->path) + strlen(msg) + 3,
- "%s%s%s", state->path, ": ", msg);
+ (void)snprintf(state->msg, strlen(state->path) + strlen(msg) + 3,
+ "%s%s%s", state->path, ": ", msg);
#else
strcpy(state->msg, state->path);
strcat(state->msg, ": ");
strcat(state->msg, msg);
#endif
- return;
}
#ifndef INT_MAX
diff --git a/src/Common/zlib/gzread.c b/src/Common/zlib/gzread.c
index bf4538e..956b91e 100644
--- a/src/Common/zlib/gzread.c
+++ b/src/Common/zlib/gzread.c
@@ -1,5 +1,5 @@
/* gzread.c -- zlib functions for reading gzip files
- * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler
+ * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -12,6 +12,7 @@ local int gz_look OF((gz_statep));
local int gz_decomp OF((gz_statep));
local int gz_fetch OF((gz_statep));
local int gz_skip OF((gz_statep, z_off64_t));
+local z_size_t gz_read OF((gz_statep, voidp, z_size_t));
/* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
state->fd, and update state->eof, state->err, and state->msg as appropriate.
@@ -24,13 +25,17 @@ local int gz_load(state, buf, len, have)
unsigned *have;
{
int ret;
+ unsigned get, max = ((unsigned)-1 >> 2) + 1;
*have = 0;
do {
- ret = read(state->fd, buf + *have, len - *have);
+ get = len - *have;
+ if (get > max)
+ get = max;
+ ret = read(state->fd, buf + *have, get);
if (ret <= 0)
break;
- *have += ret;
+ *have += (unsigned)ret;
} while (*have < len);
if (ret < 0) {
gz_error(state, Z_ERRNO, zstrerror());
@@ -94,10 +99,8 @@ local int gz_look(state)
state->in = (unsigned char *)malloc(state->want);
state->out = (unsigned char *)malloc(state->want << 1);
if (state->in == NULL || state->out == NULL) {
- if (state->out != NULL)
- free(state->out);
- if (state->in != NULL)
- free(state->in);
+ free(state->out);
+ free(state->in);
gz_error(state, Z_MEM_ERROR, "out of memory");
return -1;
}
@@ -284,33 +287,17 @@ local int gz_skip(state, len)
return 0;
}
-/* -- see zlib.h -- */
-int ZEXPORT gzread(file, buf, len)
- gzFile file;
+/* Read len bytes into buf from file, or less than len up to the end of the
+ input. Return the number of bytes read. If zero is returned, either the
+ end of file was reached, or there was an error. state->err must be
+ consulted in that case to determine which. */
+local z_size_t gz_read(state, buf, len)
+ gz_statep state;
voidp buf;
- unsigned len;
+ z_size_t len;
{
- unsigned got, n;
- gz_statep state;
- z_streamp strm;
-
- /* get internal structure */
- if (file == NULL)
- return -1;
- state = (gz_statep)file;
- strm = &(state->strm);
-
- /* check that we're reading and that there's no (serious) error */
- if (state->mode != GZ_READ ||
- (state->err != Z_OK && state->err != Z_BUF_ERROR))
- return -1;
-
- /* since an int is returned, make sure len fits in one, otherwise return
- with an error (this avoids the flaw in the interface) */
- if ((int)len < 0) {
- gz_error(state, Z_DATA_ERROR, "requested length does not fit in int");
- return -1;
- }
+ z_size_t got;
+ unsigned n;
/* if len is zero, avoid unnecessary operations */
if (len == 0)
@@ -320,32 +307,38 @@ int ZEXPORT gzread(file, buf, len)
if (state->seek) {
state->seek = 0;
if (gz_skip(state, state->skip) == -1)
- return -1;
+ return 0;
}
/* get len bytes to buf, or less than len if at the end */
got = 0;
do {
+ /* set n to the maximum amount of len that fits in an unsigned int */
+ n = -1;
+ if (n > len)
+ n = len;
+
/* first just try copying data from the output buffer */
if (state->x.have) {
- n = state->x.have > len ? len : state->x.have;
+ if (state->x.have < n)
+ n = state->x.have;
memcpy(buf, state->x.next, n);
state->x.next += n;
state->x.have -= n;
}
/* output buffer empty -- return if we're at the end of the input */
- else if (state->eof && strm->avail_in == 0) {
+ else if (state->eof && state->strm.avail_in == 0) {
state->past = 1; /* tried to read past end */
break;
}
/* need output data -- for small len or new stream load up our output
buffer */
- else if (state->how == LOOK || len < (state->size << 1)) {
+ else if (state->how == LOOK || n < (state->size << 1)) {
/* get more output, looking for header if required */
if (gz_fetch(state) == -1)
- return -1;
+ return 0;
continue; /* no progress yet -- go back to copy above */
/* the copy above assures that we will leave with space in the
output buffer, allowing at least one gzungetc() to succeed */
@@ -353,16 +346,16 @@ int ZEXPORT gzread(file, buf, len)
/* large len -- read directly into user buffer */
else if (state->how == COPY) { /* read directly */
- if (gz_load(state, (unsigned char *)buf, len, &n) == -1)
- return -1;
+ if (gz_load(state, (unsigned char *)buf, n, &n) == -1)
+ return 0;
}
/* large len -- decompress directly into user buffer */
else { /* state->how == GZIP */
- strm->avail_out = len;
- strm->next_out = (unsigned char *)buf;
+ state->strm.avail_out = n;
+ state->strm.next_out = (unsigned char *)buf;
if (gz_decomp(state) == -1)
- return -1;
+ return 0;
n = state->x.have;
state->x.have = 0;
}
@@ -374,8 +367,75 @@ int ZEXPORT gzread(file, buf, len)
state->x.pos += n;
} while (len);
- /* return number of bytes read into user buffer (will fit in int) */
- return (int)got;
+ /* return number of bytes read into user buffer */
+ return got;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzread(file, buf, len)
+ gzFile file;
+ voidp buf;
+ unsigned len;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no (serious) error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return -1;
+
+ /* since an int is returned, make sure len fits in one, otherwise return
+ with an error (this avoids a flaw in the interface) */
+ if ((int)len < 0) {
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in an int");
+ return -1;
+ }
+
+ /* read len or fewer bytes to buf */
+ len = gz_read(state, buf, len);
+
+ /* check for an error */
+ if (len == 0 && state->err != Z_OK && state->err != Z_BUF_ERROR)
+ return -1;
+
+ /* return the number of bytes read (this is assured to fit in an int) */
+ return (int)len;
+}
+
+/* -- see zlib.h -- */
+z_size_t ZEXPORT gzfread(buf, size, nitems, file)
+ voidp buf;
+ z_size_t size;
+ z_size_t nitems;
+ gzFile file;
+{
+ z_size_t len;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no (serious) error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return 0;
+
+ /* compute bytes to read -- error on overflow */
+ len = nitems * size;
+ if (size && len / size != nitems) {
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
+ return 0;
+ }
+
+ /* read len or fewer bytes to buf, return the number of full items read */
+ return len ? gz_read(state, buf, len) / size : 0;
}
/* -- see zlib.h -- */
@@ -408,8 +468,8 @@ int ZEXPORT gzgetc(file)
return *(state->x.next)++;
}
- /* nothing there -- try gzread() */
- ret = gzread(file, buf, 1);
+ /* nothing there -- try gz_read() */
+ ret = gz_read(state, buf, 1);
return ret < 1 ? -1 : buf[0];
}
@@ -451,7 +511,7 @@ int ZEXPORT gzungetc(c, file)
if (state->x.have == 0) {
state->x.have = 1;
state->x.next = state->out + (state->size << 1) - 1;
- state->x.next[0] = c;
+ state->x.next[0] = (unsigned char)c;
state->x.pos--;
state->past = 0;
return c;
@@ -473,7 +533,7 @@ int ZEXPORT gzungetc(c, file)
}
state->x.have++;
state->x.next--;
- state->x.next[0] = c;
+ state->x.next[0] = (unsigned char)c;
state->x.pos--;
state->past = 0;
return c;
diff --git a/src/Common/zlib/gzwrite.c b/src/Common/zlib/gzwrite.c
index aa767fb..c7b5651 100644
--- a/src/Common/zlib/gzwrite.c
+++ b/src/Common/zlib/gzwrite.c
@@ -1,5 +1,5 @@
/* gzwrite.c -- zlib functions for writing gzip files
- * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler
+ * Copyright (C) 2004-2017 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -9,17 +9,19 @@
local int gz_init OF((gz_statep));
local int gz_comp OF((gz_statep, int));
local int gz_zero OF((gz_statep, z_off64_t));
+local z_size_t gz_write OF((gz_statep, voidpc, z_size_t));
/* Initialize state for writing a gzip file. Mark initialization by setting
- state->size to non-zero. Return -1 on failure or 0 on success. */
+ state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
+ success. */
local int gz_init(state)
gz_statep state;
{
int ret;
z_streamp strm = &(state->strm);
- /* allocate input buffer */
- state->in = (unsigned char *)malloc(state->want);
+ /* allocate input buffer (double size for gzprintf) */
+ state->in = (unsigned char *)malloc(state->want << 1);
if (state->in == NULL) {
gz_error(state, Z_MEM_ERROR, "out of memory");
return -1;
@@ -47,6 +49,7 @@ local int gz_init(state)
gz_error(state, Z_MEM_ERROR, "out of memory");
return -1;
}
+ strm->next_in = NULL;
}
/* mark state as initialized */
@@ -62,17 +65,17 @@ local int gz_init(state)
}
/* Compress whatever is at avail_in and next_in and write to the output file.
- Return -1 if there is an error writing to the output file, otherwise 0.
- flush is assumed to be a valid deflate() flush value. If flush is Z_FINISH,
- then the deflate() state is reset to start a new gzip stream. If gz->direct
- is true, then simply write to the output file without compressing, and
- ignore flush. */
+ Return -1 if there is an error writing to the output file or if gz_init()
+ fails to allocate memory, otherwise 0. flush is assumed to be a valid
+ deflate() flush value. If flush is Z_FINISH, then the deflate() state is
+ reset to start a new gzip stream. If gz->direct is true, then simply write
+ to the output file without compressing, and ignore flush. */
local int gz_comp(state, flush)
gz_statep state;
int flush;
{
- int ret, got;
- unsigned have;
+ int ret, writ;
+ unsigned have, put, max = ((unsigned)-1 >> 2) + 1;
z_streamp strm = &(state->strm);
/* allocate memory if this is the first time through */
@@ -81,12 +84,16 @@ local int gz_comp(state, flush)
/* write directly if requested */
if (state->direct) {
- got = write(state->fd, strm->next_in, strm->avail_in);
- if (got < 0 || (unsigned)got != strm->avail_in) {
- gz_error(state, Z_ERRNO, zstrerror());
- return -1;
+ while (strm->avail_in) {
+ put = strm->avail_in > max ? max : strm->avail_in;
+ writ = write(state->fd, strm->next_in, put);
+ if (writ < 0) {
+ gz_error(state, Z_ERRNO, zstrerror());
+ return -1;
+ }
+ strm->avail_in -= (unsigned)writ;
+ strm->next_in += writ;
}
- strm->avail_in = 0;
return 0;
}
@@ -97,17 +104,21 @@ local int gz_comp(state, flush)
doing Z_FINISH then don't write until we get to Z_STREAM_END */
if (strm->avail_out == 0 || (flush != Z_NO_FLUSH &&
(flush != Z_FINISH || ret == Z_STREAM_END))) {
- have = (unsigned)(strm->next_out - state->x.next);
- if (have && ((got = write(state->fd, state->x.next, have)) < 0 ||
- (unsigned)got != have)) {
- gz_error(state, Z_ERRNO, zstrerror());
- return -1;
+ while (strm->next_out > state->x.next) {
+ put = strm->next_out - state->x.next > (int)max ? max :
+ (unsigned)(strm->next_out - state->x.next);
+ writ = write(state->fd, state->x.next, put);
+ if (writ < 0) {
+ gz_error(state, Z_ERRNO, zstrerror());
+ return -1;
+ }
+ state->x.next += writ;
}
if (strm->avail_out == 0) {
strm->avail_out = state->size;
strm->next_out = state->out;
+ state->x.next = state->out;
}
- state->x.next = strm->next_out;
}
/* compress */
@@ -129,7 +140,8 @@ local int gz_comp(state, flush)
return 0;
}
-/* Compress len zeros to output. Return -1 on error, 0 on success. */
+/* Compress len zeros to output. Return -1 on a write error or memory
+ allocation failure by gz_comp(), or 0 on success. */
local int gz_zero(state, len)
gz_statep state;
z_off64_t len;
@@ -161,32 +173,14 @@ local int gz_zero(state, len)
return 0;
}
-/* -- see zlib.h -- */
-int ZEXPORT gzwrite(file, buf, len)
- gzFile file;
+/* Write len bytes from buf to file. Return the number of bytes written. If
+ the returned value is less than len, then there was an error. */
+local z_size_t gz_write(state, buf, len)
+ gz_statep state;
voidpc buf;
- unsigned len;
+ z_size_t len;
{
- unsigned put = len;
- gz_statep state;
- z_streamp strm;
-
- /* get internal structure */
- if (file == NULL)
- return 0;
- state = (gz_statep)file;
- strm = &(state->strm);
-
- /* check that we're writing and that there's no error */
- if (state->mode != GZ_WRITE || state->err != Z_OK)
- return 0;
-
- /* since an int is returned, make sure len fits in one, otherwise return
- with an error (this avoids the flaw in the interface) */
- if ((int)len < 0) {
- gz_error(state, Z_DATA_ERROR, "requested length does not fit in int");
- return 0;
- }
+ z_size_t put = len;
/* if len is zero, avoid unnecessary operations */
if (len == 0)
@@ -209,14 +203,15 @@ int ZEXPORT gzwrite(file, buf, len)
do {
unsigned have, copy;
- if (strm->avail_in == 0)
- strm->next_in = state->in;
- have = (unsigned)((strm->next_in + strm->avail_in) - state->in);
+ if (state->strm.avail_in == 0)
+ state->strm.next_in = state->in;
+ have = (unsigned)((state->strm.next_in + state->strm.avail_in) -
+ state->in);
copy = state->size - have;
if (copy > len)
copy = len;
memcpy(state->in + have, buf, copy);
- strm->avail_in += copy;
+ state->strm.avail_in += copy;
state->x.pos += copy;
buf = (const char *)buf + copy;
len -= copy;
@@ -226,19 +221,83 @@ int ZEXPORT gzwrite(file, buf, len)
}
else {
/* consume whatever's left in the input buffer */
- if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
+ if (state->strm.avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
return 0;
/* directly compress user buffer to file */
- strm->avail_in = len;
- strm->next_in = (z_const Bytef *)buf;
- state->x.pos += len;
- if (gz_comp(state, Z_NO_FLUSH) == -1)
- return 0;
+ state->strm.next_in = (z_const Bytef *)buf;
+ do {
+ unsigned n = (unsigned)-1;
+ if (n > len)
+ n = len;
+ state->strm.avail_in = n;
+ state->x.pos += n;
+ if (gz_comp(state, Z_NO_FLUSH) == -1)
+ return 0;
+ len -= n;
+ } while (len);
+ }
+
+ /* input was all buffered or compressed */
+ return put;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzwrite(file, buf, len)
+ gzFile file;
+ voidpc buf;
+ unsigned len;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return 0;
+
+ /* since an int is returned, make sure len fits in one, otherwise return
+ with an error (this avoids a flaw in the interface) */
+ if ((int)len < 0) {
+ gz_error(state, Z_DATA_ERROR, "requested length does not fit in int");
+ return 0;
+ }
+
+ /* write len bytes from buf (the return value will fit in an int) */
+ return (int)gz_write(state, buf, len);
+}
+
+/* -- see zlib.h -- */
+z_size_t ZEXPORT gzfwrite(buf, size, nitems, file)
+ voidpc buf;
+ z_size_t size;
+ z_size_t nitems;
+ gzFile file;
+{
+ z_size_t len;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return 0;
+
+ /* compute bytes to read -- error on overflow */
+ len = nitems * size;
+ if (size && len / size != nitems) {
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
+ return 0;
}
- /* input was all buffered or compressed (put will fit in int) */
- return (int)put;
+ /* write len bytes to buf, return the number of full items written */
+ return len ? gz_write(state, buf, len) / size : 0;
}
/* -- see zlib.h -- */
@@ -275,7 +334,7 @@ int ZEXPORT gzputc(file, c)
strm->next_in = state->in;
have = (unsigned)((strm->next_in + strm->avail_in) - state->in);
if (have < state->size) {
- state->in[have] = c;
+ state->in[have] = (unsigned char)c;
strm->avail_in++;
state->x.pos++;
return c & 0xff;
@@ -283,8 +342,8 @@ int ZEXPORT gzputc(file, c)
}
/* no room in buffer or not initialized, use gz_write() */
- buf[0] = c;
- if (gzwrite(file, buf, 1) != 1)
+ buf[0] = (unsigned char)c;
+ if (gz_write(state, buf, 1) != 1)
return -1;
return c & 0xff;
}
@@ -295,11 +354,21 @@ int ZEXPORT gzputs(file, str)
const char *str;
{
int ret;
- unsigned len;
+ z_size_t len;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return -1;
/* write string */
- len = (unsigned)strlen(str);
- ret = gzwrite(file, str, len);
+ len = strlen(str);
+ ret = gz_write(state, str, len);
return ret == 0 && len != 0 ? -1 : ret;
}
@@ -309,63 +378,73 @@ int ZEXPORT gzputs(file, str)
/* -- see zlib.h -- */
int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va)
{
- int size, len;
+ int len;
+ unsigned left;
+ char *next;
gz_statep state;
z_streamp strm;
/* get internal structure */
if (file == NULL)
- return -1;
+ return Z_STREAM_ERROR;
state = (gz_statep)file;
strm = &(state->strm);
/* check that we're writing and that there's no error */
if (state->mode != GZ_WRITE || state->err != Z_OK)
- return 0;
+ return Z_STREAM_ERROR;
/* make sure we have some buffer space */
if (state->size == 0 && gz_init(state) == -1)
- return 0;
+ return state->err;
/* check for seek request */
if (state->seek) {
state->seek = 0;
if (gz_zero(state, state->skip) == -1)
- return 0;
+ return state->err;
}
- /* consume whatever's left in the input buffer */
- if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
- return 0;
-
- /* do the printf() into the input buffer, put length in len */
- size = (int)(state->size);
- state->in[size - 1] = 0;
+ /* do the printf() into the input buffer, put length in len -- the input
+ buffer is double-sized just for this function, so there is guaranteed to
+ be state->size bytes available after the current contents */
+ if (strm->avail_in == 0)
+ strm->next_in = state->in;
+ next = (char *)(state->in + (strm->next_in - state->in) + strm->avail_in);
+ next[state->size - 1] = 0;
#ifdef NO_vsnprintf
# ifdef HAS_vsprintf_void
- (void)vsprintf((char *)(state->in), format, va);
- for (len = 0; len < size; len++)
- if (state->in[len] == 0) break;
+ (void)vsprintf(next, format, va);
+ for (len = 0; len < state->size; len++)
+ if (next[len] == 0) break;
# else
- len = vsprintf((char *)(state->in), format, va);
+ len = vsprintf(next, format, va);
# endif
#else
# ifdef HAS_vsnprintf_void
- (void)vsnprintf((char *)(state->in), size, format, va);
- len = strlen((char *)(state->in));
+ (void)vsnprintf(next, state->size, format, va);
+ len = strlen(next);
# else
- len = vsnprintf((char *)(state->in), size, format, va);
+ len = vsnprintf(next, state->size, format, va);
# endif
#endif
/* check that printf() results fit in buffer */
- if (len <= 0 || len >= (int)size || state->in[size - 1] != 0)
+ if (len == 0 || (unsigned)len >= state->size || next[state->size - 1] != 0)
return 0;
- /* update buffer and position, defer compression until needed */
- strm->avail_in = (unsigned)len;
- strm->next_in = state->in;
+ /* update buffer and position, compress first half if past that */
+ strm->avail_in += (unsigned)len;
state->x.pos += len;
+ if (strm->avail_in >= state->size) {
+ left = strm->avail_in - state->size;
+ strm->avail_in = state->size;
+ if (gz_comp(state, Z_NO_FLUSH) == -1)
+ return state->err;
+ memcpy(state->in, state->in + state->size, left);
+ strm->next_in = state->in;
+ strm->avail_in = left;
+ }
return len;
}
@@ -390,73 +469,82 @@ int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
{
- int size, len;
+ unsigned len, left;
+ char *next;
gz_statep state;
z_streamp strm;
/* get internal structure */
if (file == NULL)
- return -1;
+ return Z_STREAM_ERROR;
state = (gz_statep)file;
strm = &(state->strm);
/* check that can really pass pointer in ints */
if (sizeof(int) != sizeof(void *))
- return 0;
+ return Z_STREAM_ERROR;
/* check that we're writing and that there's no error */
if (state->mode != GZ_WRITE || state->err != Z_OK)
- return 0;
+ return Z_STREAM_ERROR;
/* make sure we have some buffer space */
if (state->size == 0 && gz_init(state) == -1)
- return 0;
+ return state->error;
/* check for seek request */
if (state->seek) {
state->seek = 0;
if (gz_zero(state, state->skip) == -1)
- return 0;
+ return state->error;
}
- /* consume whatever's left in the input buffer */
- if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
- return 0;
-
- /* do the printf() into the input buffer, put length in len */
- size = (int)(state->size);
- state->in[size - 1] = 0;
+ /* do the printf() into the input buffer, put length in len -- the input
+ buffer is double-sized just for this function, so there is guaranteed to
+ be state->size bytes available after the current contents */
+ if (strm->avail_in == 0)
+ strm->next_in = state->in;
+ next = (char *)(strm->next_in + strm->avail_in);
+ next[state->size - 1] = 0;
#ifdef NO_snprintf
# ifdef HAS_sprintf_void
- sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8,
- a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+ sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
+ a13, a14, a15, a16, a17, a18, a19, a20);
for (len = 0; len < size; len++)
- if (state->in[len] == 0) break;
+ if (next[len] == 0)
+ break;
# else
- len = sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8,
- a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+ len = sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
+ a12, a13, a14, a15, a16, a17, a18, a19, a20);
# endif
#else
# ifdef HAS_snprintf_void
- snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6, a7, a8,
- a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
- len = strlen((char *)(state->in));
+ snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8, a9,
+ a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+ len = strlen(next);
# else
- len = snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6,
- a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18,
- a19, a20);
+ len = snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8,
+ a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
# endif
#endif
/* check that printf() results fit in buffer */
- if (len <= 0 || len >= (int)size || state->in[size - 1] != 0)
+ if (len == 0 || len >= state->size || next[state->size - 1] != 0)
return 0;
- /* update buffer and position, defer compression until needed */
- strm->avail_in = (unsigned)len;
- strm->next_in = state->in;
+ /* update buffer and position, compress first half if past that */
+ strm->avail_in += len;
state->x.pos += len;
- return len;
+ if (strm->avail_in >= state->size) {
+ left = strm->avail_in - state->size;
+ strm->avail_in = state->size;
+ if (gz_comp(state, Z_NO_FLUSH) == -1)
+ return state->err;
+ memcpy(state->in, state->in + state->size, left);
+ strm->next_in = state->in;
+ strm->avail_in = left;
+ }
+ return (int)len;
}
#endif
@@ -470,7 +558,7 @@ int ZEXPORT gzflush(file, flush)
/* get internal structure */
if (file == NULL)
- return -1;
+ return Z_STREAM_ERROR;
state = (gz_statep)file;
/* check that we're writing and that there's no error */
@@ -485,11 +573,11 @@ int ZEXPORT gzflush(file, flush)
if (state->seek) {
state->seek = 0;
if (gz_zero(state, state->skip) == -1)
- return -1;
+ return state->err;
}
/* compress remaining data with requested flush */
- gz_comp(state, flush);
+ (void)gz_comp(state, flush);
return state->err;
}
@@ -520,13 +608,13 @@ int ZEXPORT gzsetparams(file, level, strategy)
if (state->seek) {
state->seek = 0;
if (gz_zero(state, state->skip) == -1)
- return -1;
+ return state->err;
}
/* change compression parameters for subsequent input */
if (state->size) {
/* flush previous input with previous parameters before changing */
- if (strm->avail_in && gz_comp(state, Z_PARTIAL_FLUSH) == -1)
+ if (strm->avail_in && gz_comp(state, Z_BLOCK) == -1)
return state->err;
deflateParams(strm, level, strategy);
}
diff --git a/src/Common/zlib/infback.c b/src/Common/zlib/infback.c
index f3833c2..59679ec 100644
--- a/src/Common/zlib/infback.c
+++ b/src/Common/zlib/infback.c
@@ -1,5 +1,5 @@
/* infback.c -- inflate using a call-back interface
- * Copyright (C) 1995-2011 Mark Adler
+ * Copyright (C) 1995-2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -61,7 +61,7 @@ int stream_size;
Tracev((stderr, "inflate: allocated\n"));
strm->state = (struct internal_state FAR *)state;
state->dmax = 32768U;
- state->wbits = windowBits;
+ state->wbits = (uInt)windowBits;
state->wsize = 1U << windowBits;
state->window = window;
state->wnext = 0;
diff --git a/src/Common/zlib/inffast.c b/src/Common/zlib/inffast.c
index bda59ce..0dbd1db 100644
--- a/src/Common/zlib/inffast.c
+++ b/src/Common/zlib/inffast.c
@@ -1,5 +1,5 @@
/* inffast.c -- fast decoding
- * Copyright (C) 1995-2008, 2010, 2013 Mark Adler
+ * Copyright (C) 1995-2017 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -8,26 +8,9 @@
#include "inflate.h"
#include "inffast.h"
-#ifndef ASMINF
-
-/* Allow machine dependent optimization for post-increment or pre-increment.
- Based on testing to date,
- Pre-increment preferred for:
- - PowerPC G3 (Adler)
- - MIPS R5000 (Randers-Pehrson)
- Post-increment preferred for:
- - none
- No measurable difference:
- - Pentium III (Anderson)
- - M68060 (Nikl)
- */
-#ifdef POSTINC
-# define OFF 0
-# define PUP(a) *(a)++
+#ifdef ASMINF
+# pragma message("Assembler code may have bugs -- use at your own risk")
#else
-# define OFF 1
-# define PUP(a) *++(a)
-#endif
/*
Decode literal, length, and distance codes and write out the resulting
@@ -96,9 +79,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
/* copy state to local variables */
state = (struct inflate_state FAR *)strm->state;
- in = strm->next_in - OFF;
+ in = strm->next_in;
last = in + (strm->avail_in - 5);
- out = strm->next_out - OFF;
+ out = strm->next_out;
beg = out - (start - strm->avail_out);
end = out + (strm->avail_out - 257);
#ifdef INFLATE_STRICT
@@ -119,9 +102,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
input data or output space */
do {
if (bits < 15) {
- hold += (unsigned long)(PUP(in)) << bits;
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
- hold += (unsigned long)(PUP(in)) << bits;
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
}
here = lcode[hold & lmask];
@@ -134,14 +117,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
"inflate: literal '%c'\n" :
"inflate: literal 0x%02x\n", here.val));
- PUP(out) = (unsigned char)(here.val);
+ *out++ = (unsigned char)(here.val);
}
else if (op & 16) { /* length base */
len = (unsigned)(here.val);
op &= 15; /* number of extra bits */
if (op) {
if (bits < op) {
- hold += (unsigned long)(PUP(in)) << bits;
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
}
len += (unsigned)hold & ((1U << op) - 1);
@@ -150,9 +133,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
}
Tracevv((stderr, "inflate: length %u\n", len));
if (bits < 15) {
- hold += (unsigned long)(PUP(in)) << bits;
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
- hold += (unsigned long)(PUP(in)) << bits;
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
}
here = dcode[hold & dmask];
@@ -165,10 +148,10 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
dist = (unsigned)(here.val);
op &= 15; /* number of extra bits */
if (bits < op) {
- hold += (unsigned long)(PUP(in)) << bits;
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
if (bits < op) {
- hold += (unsigned long)(PUP(in)) << bits;
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
}
}
@@ -196,30 +179,30 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
if (len <= op - whave) {
do {
- PUP(out) = 0;
+ *out++ = 0;
} while (--len);
continue;
}
len -= op - whave;
do {
- PUP(out) = 0;
+ *out++ = 0;
} while (--op > whave);
if (op == 0) {
from = out - dist;
do {
- PUP(out) = PUP(from);
+ *out++ = *from++;
} while (--len);
continue;
}
#endif
}
- from = window - OFF;
+ from = window;
if (wnext == 0) { /* very common case */
from += wsize - op;
if (op < len) { /* some from window */
len -= op;
do {
- PUP(out) = PUP(from);
+ *out++ = *from++;
} while (--op);
from = out - dist; /* rest from output */
}
@@ -230,14 +213,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
if (op < len) { /* some from end of window */
len -= op;
do {
- PUP(out) = PUP(from);
+ *out++ = *from++;
} while (--op);
- from = window - OFF;
+ from = window;
if (wnext < len) { /* some from start of window */
op = wnext;
len -= op;
do {
- PUP(out) = PUP(from);
+ *out++ = *from++;
} while (--op);
from = out - dist; /* rest from output */
}
@@ -248,35 +231,35 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
if (op < len) { /* some from window */
len -= op;
do {
- PUP(out) = PUP(from);
+ *out++ = *from++;
} while (--op);
from = out - dist; /* rest from output */
}
}
while (len > 2) {
- PUP(out) = PUP(from);
- PUP(out) = PUP(from);
- PUP(out) = PUP(from);
+ *out++ = *from++;
+ *out++ = *from++;
+ *out++ = *from++;
len -= 3;
}
if (len) {
- PUP(out) = PUP(from);
+ *out++ = *from++;
if (len > 1)
- PUP(out) = PUP(from);
+ *out++ = *from++;
}
}
else {
from = out - dist; /* copy direct from output */
do { /* minimum length is three */
- PUP(out) = PUP(from);
- PUP(out) = PUP(from);
- PUP(out) = PUP(from);
+ *out++ = *from++;
+ *out++ = *from++;
+ *out++ = *from++;
len -= 3;
} while (len > 2);
if (len) {
- PUP(out) = PUP(from);
+ *out++ = *from++;
if (len > 1)
- PUP(out) = PUP(from);
+ *out++ = *from++;
}
}
}
@@ -313,8 +296,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
hold &= (1U << bits) - 1;
/* update state and return */
- strm->next_in = in + OFF;
- strm->next_out = out + OFF;
+ strm->next_in = in;
+ strm->next_out = out;
strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
strm->avail_out = (unsigned)(out < end ?
257 + (end - out) : 257 - (out - end));
diff --git a/src/Common/zlib/inflate.c b/src/Common/zlib/inflate.c
index 870f89b..ac333e8 100644
--- a/src/Common/zlib/inflate.c
+++ b/src/Common/zlib/inflate.c
@@ -1,5 +1,5 @@
/* inflate.c -- zlib decompression
- * Copyright (C) 1995-2012 Mark Adler
+ * Copyright (C) 1995-2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -92,6 +92,7 @@
#endif
/* function prototypes */
+local int inflateStateCheck OF((z_streamp strm));
local void fixedtables OF((struct inflate_state FAR *state));
local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
unsigned copy));
@@ -101,12 +102,26 @@ local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf,
unsigned len));
+local int inflateStateCheck(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+ if (strm == Z_NULL ||
+ strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+ return 1;
+ state = (struct inflate_state FAR *)strm->state;
+ if (state == Z_NULL || state->strm != strm ||
+ state->mode < HEAD || state->mode > SYNC)
+ return 1;
+ return 0;
+}
+
int ZEXPORT inflateResetKeep(strm)
z_streamp strm;
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
strm->total_in = strm->total_out = state->total = 0;
strm->msg = Z_NULL;
@@ -131,7 +146,7 @@ z_streamp strm;
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
state->wsize = 0;
state->whave = 0;
@@ -147,7 +162,7 @@ int windowBits;
struct inflate_state FAR *state;
/* get the state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
/* extract wrap request from windowBits parameter */
@@ -156,7 +171,7 @@ int windowBits;
windowBits = -windowBits;
}
else {
- wrap = (windowBits >> 4) + 1;
+ wrap = (windowBits >> 4) + 5;
#ifdef GUNZIP
if (windowBits < 48)
windowBits &= 15;
@@ -210,7 +225,9 @@ int stream_size;
if (state == Z_NULL) return Z_MEM_ERROR;
Tracev((stderr, "inflate: allocated\n"));
strm->state = (struct internal_state FAR *)state;
+ state->strm = strm;
state->window = Z_NULL;
+ state->mode = HEAD; /* to pass state test in inflateReset2() */
ret = inflateReset2(strm, windowBits);
if (ret != Z_OK) {
ZFREE(strm, state);
@@ -234,17 +251,17 @@ int value;
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (bits < 0) {
state->hold = 0;
state->bits = 0;
return Z_OK;
}
- if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR;
+ if (bits > 16 || state->bits + (uInt)bits > 32) return Z_STREAM_ERROR;
value &= (1L << bits) - 1;
- state->hold += value << state->bits;
- state->bits += bits;
+ state->hold += (unsigned)value << state->bits;
+ state->bits += (uInt)bits;
return Z_OK;
}
@@ -625,7 +642,7 @@ int flush;
static const unsigned short order[19] = /* permutation of code lengths */
{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
- if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL ||
+ if (inflateStateCheck(strm) || strm->next_out == Z_NULL ||
(strm->next_in == Z_NULL && strm->avail_in != 0))
return Z_STREAM_ERROR;
@@ -645,6 +662,8 @@ int flush;
NEEDBITS(16);
#ifdef GUNZIP
if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */
+ if (state->wbits == 0)
+ state->wbits = 15;
state->check = crc32(0L, Z_NULL, 0);
CRC2(state->check, hold);
INITBITS();
@@ -672,7 +691,7 @@ int flush;
len = BITS(4) + 8;
if (state->wbits == 0)
state->wbits = len;
- else if (len > state->wbits) {
+ if (len > 15 || len > state->wbits) {
strm->msg = (char *)"invalid window size";
state->mode = BAD;
break;
@@ -699,14 +718,16 @@ int flush;
}
if (state->head != Z_NULL)
state->head->text = (int)((hold >> 8) & 1);
- if (state->flags & 0x0200) CRC2(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
INITBITS();
state->mode = TIME;
case TIME:
NEEDBITS(32);
if (state->head != Z_NULL)
state->head->time = hold;
- if (state->flags & 0x0200) CRC4(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC4(state->check, hold);
INITBITS();
state->mode = OS;
case OS:
@@ -715,7 +736,8 @@ int flush;
state->head->xflags = (int)(hold & 0xff);
state->head->os = (int)(hold >> 8);
}
- if (state->flags & 0x0200) CRC2(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
INITBITS();
state->mode = EXLEN;
case EXLEN:
@@ -724,7 +746,8 @@ int flush;
state->length = (unsigned)(hold);
if (state->head != Z_NULL)
state->head->extra_len = (unsigned)hold;
- if (state->flags & 0x0200) CRC2(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
INITBITS();
}
else if (state->head != Z_NULL)
@@ -742,7 +765,7 @@ int flush;
len + copy > state->head->extra_max ?
state->head->extra_max - len : copy);
}
- if (state->flags & 0x0200)
+ if ((state->flags & 0x0200) && (state->wrap & 4))
state->check = crc32(state->check, next, copy);
have -= copy;
next += copy;
@@ -761,9 +784,9 @@ int flush;
if (state->head != Z_NULL &&
state->head->name != Z_NULL &&
state->length < state->head->name_max)
- state->head->name[state->length++] = len;
+ state->head->name[state->length++] = (Bytef)len;
} while (len && copy < have);
- if (state->flags & 0x0200)
+ if ((state->flags & 0x0200) && (state->wrap & 4))
state->check = crc32(state->check, next, copy);
have -= copy;
next += copy;
@@ -782,9 +805,9 @@ int flush;
if (state->head != Z_NULL &&
state->head->comment != Z_NULL &&
state->length < state->head->comm_max)
- state->head->comment[state->length++] = len;
+ state->head->comment[state->length++] = (Bytef)len;
} while (len && copy < have);
- if (state->flags & 0x0200)
+ if ((state->flags & 0x0200) && (state->wrap & 4))
state->check = crc32(state->check, next, copy);
have -= copy;
next += copy;
@@ -796,7 +819,7 @@ int flush;
case HCRC:
if (state->flags & 0x0200) {
NEEDBITS(16);
- if (hold != (state->check & 0xffff)) {
+ if ((state->wrap & 4) && hold != (state->check & 0xffff)) {
strm->msg = (char *)"header crc mismatch";
state->mode = BAD;
break;
@@ -1177,11 +1200,11 @@ int flush;
out -= left;
strm->total_out += out;
state->total += out;
- if (out)
+ if ((state->wrap & 4) && out)
strm->adler = state->check =
UPDATE(state->check, put - out, out);
out = left;
- if ((
+ if ((state->wrap & 4) && (
#ifdef GUNZIP
state->flags ? hold :
#endif
@@ -1240,10 +1263,10 @@ int flush;
strm->total_in += in;
strm->total_out += out;
state->total += out;
- if (state->wrap && out)
+ if ((state->wrap & 4) && out)
strm->adler = state->check =
UPDATE(state->check, strm->next_out - out, out);
- strm->data_type = state->bits + (state->last ? 64 : 0) +
+ strm->data_type = (int)state->bits + (state->last ? 64 : 0) +
(state->mode == TYPE ? 128 : 0) +
(state->mode == LEN_ || state->mode == COPY_ ? 256 : 0);
if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)
@@ -1255,7 +1278,7 @@ int ZEXPORT inflateEnd(strm)
z_streamp strm;
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
+ if (inflateStateCheck(strm))
return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (state->window != Z_NULL) ZFREE(strm, state->window);
@@ -1273,7 +1296,7 @@ uInt *dictLength;
struct inflate_state FAR *state;
/* check state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
/* copy dictionary */
@@ -1298,7 +1321,7 @@ uInt dictLength;
int ret;
/* check state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (state->wrap != 0 && state->mode != DICT)
return Z_STREAM_ERROR;
@@ -1330,7 +1353,7 @@ gz_headerp head;
struct inflate_state FAR *state;
/* check state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if ((state->wrap & 2) == 0) return Z_STREAM_ERROR;
@@ -1383,7 +1406,7 @@ z_streamp strm;
struct inflate_state FAR *state;
/* check parameters */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;
@@ -1430,7 +1453,7 @@ z_streamp strm;
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
return state->mode == STORED && state->bits == 0;
}
@@ -1445,8 +1468,7 @@ z_streamp source;
unsigned wsize;
/* check input */
- if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||
- source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)
+ if (inflateStateCheck(source) || dest == Z_NULL)
return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)source->state;
@@ -1467,6 +1489,7 @@ z_streamp source;
/* copy state */
zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));
zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state));
+ copy->strm = dest;
if (state->lencode >= state->codes &&
state->lencode <= state->codes + ENOUGH - 1) {
copy->lencode = copy->codes + (state->lencode - state->codes);
@@ -1488,25 +1511,51 @@ int subvert;
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
- state->sane = !subvert;
#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+ state->sane = !subvert;
return Z_OK;
#else
+ (void)subvert;
state->sane = 1;
return Z_DATA_ERROR;
#endif
}
+int ZEXPORT inflateValidate(strm, check)
+z_streamp strm;
+int check;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if (check)
+ state->wrap |= 4;
+ else
+ state->wrap &= ~4;
+ return Z_OK;
+}
+
long ZEXPORT inflateMark(strm)
z_streamp strm;
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
+ if (inflateStateCheck(strm))
+ return -(1L << 16);
state = (struct inflate_state FAR *)strm->state;
- return ((long)(state->back) << 16) +
+ return (long)(((unsigned long)((long)state->back)) << 16) +
(state->mode == COPY ? state->length :
(state->mode == MATCH ? state->was - state->length : 0));
}
+
+unsigned long ZEXPORT inflateCodesUsed(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+ if (inflateStateCheck(strm)) return (unsigned long)-1;
+ state = (struct inflate_state FAR *)strm->state;
+ return (unsigned long)(state->next - state->codes);
+}
diff --git a/src/Common/zlib/inflate.h b/src/Common/zlib/inflate.h
index 95f4986..a46cce6 100644
--- a/src/Common/zlib/inflate.h
+++ b/src/Common/zlib/inflate.h
@@ -1,5 +1,5 @@
/* inflate.h -- internal inflate state definition
- * Copyright (C) 1995-2009 Mark Adler
+ * Copyright (C) 1995-2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -18,7 +18,7 @@
/* Possible inflate modes between inflate() calls */
typedef enum {
- HEAD, /* i: waiting for magic header */
+ HEAD = 16180, /* i: waiting for magic header */
FLAGS, /* i: waiting for method and flags (gzip) */
TIME, /* i: waiting for modification time (gzip) */
OS, /* i: waiting for extra flags and operating system (gzip) */
@@ -77,11 +77,14 @@ typedef enum {
CHECK -> LENGTH -> DONE
*/
-/* state maintained between inflate() calls. Approximately 10K bytes. */
+/* State maintained between inflate() calls -- approximately 7K bytes, not
+ including the allocated sliding window, which is up to 32K bytes. */
struct inflate_state {
+ z_streamp strm; /* pointer back to this zlib stream */
inflate_mode mode; /* current inflate mode */
int last; /* true if processing last block */
- int wrap; /* bit 0 true for zlib, bit 1 true for gzip */
+ int wrap; /* bit 0 true for zlib, bit 1 true for gzip,
+ bit 2 true to validate check value */
int havedict; /* true if dictionary provided */
int flags; /* gzip header method and flags (0 if zlib) */
unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */
diff --git a/src/Common/zlib/inftrees.c b/src/Common/zlib/inftrees.c
index 44d89cf..2ea08fc 100644
--- a/src/Common/zlib/inftrees.c
+++ b/src/Common/zlib/inftrees.c
@@ -1,5 +1,5 @@
/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2013 Mark Adler
+ * Copyright (C) 1995-2017 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -9,7 +9,7 @@
#define MAXBITS 15
const char inflate_copyright[] =
- " inflate 1.2.8 Copyright 1995-2013 Mark Adler ";
+ " inflate 1.2.11 Copyright 1995-2017 Mark Adler ";
/*
If you use the zlib library in a product, an acknowledgment is welcome
in the documentation of your product. If for some reason you cannot
@@ -54,7 +54,7 @@ unsigned short FAR *work;
code FAR *next; /* next available space in table */
const unsigned short FAR *base; /* base value table to use */
const unsigned short FAR *extra; /* extra bits table to use */
- int end; /* use base and extra for symbol > end */
+ unsigned match; /* use base and extra for symbol >= match */
unsigned short count[MAXBITS+1]; /* number of codes of each length */
unsigned short offs[MAXBITS+1]; /* offsets in table for each length */
static const unsigned short lbase[31] = { /* Length codes 257..285 base */
@@ -62,7 +62,7 @@ unsigned short FAR *work;
35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
static const unsigned short lext[31] = { /* Length codes 257..285 extra */
16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
- 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78};
+ 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202};
static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
@@ -181,19 +181,17 @@ unsigned short FAR *work;
switch (type) {
case CODES:
base = extra = work; /* dummy value--not used */
- end = 19;
+ match = 20;
break;
case LENS:
base = lbase;
- base -= 257;
extra = lext;
- extra -= 257;
- end = 256;
+ match = 257;
break;
- default: /* DISTS */
+ default: /* DISTS */
base = dbase;
extra = dext;
- end = -1;
+ match = 0;
}
/* initialize state for loop */
@@ -216,13 +214,13 @@ unsigned short FAR *work;
for (;;) {
/* create table entry */
here.bits = (unsigned char)(len - drop);
- if ((int)(work[sym]) < end) {
+ if (work[sym] + 1U < match) {
here.op = (unsigned char)0;
here.val = work[sym];
}
- else if ((int)(work[sym]) > end) {
- here.op = (unsigned char)(extra[work[sym]]);
- here.val = base[work[sym]];
+ else if (work[sym] >= match) {
+ here.op = (unsigned char)(extra[work[sym] - match]);
+ here.val = base[work[sym] - match];
}
else {
here.op = (unsigned char)(32 + 64); /* end of block */
diff --git a/src/Common/zlib/trees.c b/src/Common/zlib/trees.c
index 1fd7759..50cf4b4 100644
--- a/src/Common/zlib/trees.c
+++ b/src/Common/zlib/trees.c
@@ -1,5 +1,5 @@
/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-2012 Jean-loup Gailly
+ * Copyright (C) 1995-2017 Jean-loup Gailly
* detect_data_type() function provided freely by Cosmin Truta, 2006
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -36,7 +36,7 @@
#include "deflate.h"
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
# include <ctype.h>
#endif
@@ -122,13 +122,13 @@ struct static_tree_desc_s {
int max_length; /* max bit length for the codes */
};
-local static_tree_desc static_l_desc =
+local const static_tree_desc static_l_desc =
{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
-local static_tree_desc static_d_desc =
+local const static_tree_desc static_d_desc =
{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
-local static_tree_desc static_bl_desc =
+local const static_tree_desc static_bl_desc =
{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
/* ===========================================================================
@@ -152,18 +152,16 @@ local int detect_data_type OF((deflate_state *s));
local unsigned bi_reverse OF((unsigned value, int length));
local void bi_windup OF((deflate_state *s));
local void bi_flush OF((deflate_state *s));
-local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
- int header));
#ifdef GEN_TREES_H
local void gen_trees_header OF((void));
#endif
-#ifndef DEBUG
+#ifndef ZLIB_DEBUG
# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
/* Send a code of the given tree. c and tree must not have side effects */
-#else /* DEBUG */
+#else /* !ZLIB_DEBUG */
# define send_code(s, c, tree) \
{ if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
send_bits(s, tree[c].Code, tree[c].Len); }
@@ -182,7 +180,7 @@ local void gen_trees_header OF((void));
* Send a value on a given number of bits.
* IN assertion: length <= 16 and value fits in length bits.
*/
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
local void send_bits OF((deflate_state *s, int value, int length));
local void send_bits(s, value, length)
@@ -208,12 +206,12 @@ local void send_bits(s, value, length)
s->bi_valid += length;
}
}
-#else /* !DEBUG */
+#else /* !ZLIB_DEBUG */
#define send_bits(s, value, length) \
{ int len = length;\
if (s->bi_valid > (int)Buf_size - len) {\
- int val = value;\
+ int val = (int)value;\
s->bi_buf |= (ush)val << s->bi_valid;\
put_short(s, s->bi_buf);\
s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
@@ -223,7 +221,7 @@ local void send_bits(s, value, length)
s->bi_valid += len;\
}\
}
-#endif /* DEBUG */
+#endif /* ZLIB_DEBUG */
/* the arguments must not have side effects */
@@ -317,7 +315,7 @@ local void tr_static_init()
* Genererate the file trees.h describing the static trees.
*/
#ifdef GEN_TREES_H
-# ifndef DEBUG
+# ifndef ZLIB_DEBUG
# include <stdio.h>
# endif
@@ -394,7 +392,7 @@ void ZLIB_INTERNAL _tr_init(s)
s->bi_buf = 0;
s->bi_valid = 0;
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len = 0L;
s->bits_sent = 0L;
#endif
@@ -522,12 +520,12 @@ local void gen_bitlen(s, desc)
xbits = 0;
if (n >= base) xbits = extra[n-base];
f = tree[n].Freq;
- s->opt_len += (ulg)f * (bits + xbits);
- if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
+ s->opt_len += (ulg)f * (unsigned)(bits + xbits);
+ if (stree) s->static_len += (ulg)f * (unsigned)(stree[n].Len + xbits);
}
if (overflow == 0) return;
- Trace((stderr,"\nbit length overflow\n"));
+ Tracev((stderr,"\nbit length overflow\n"));
/* This happens for example on obj2 and pic of the Calgary corpus */
/* Find the first bit length which could increase: */
@@ -554,9 +552,8 @@ local void gen_bitlen(s, desc)
m = s->heap[--h];
if (m > max_code) continue;
if ((unsigned) tree[m].Len != (unsigned) bits) {
- Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
- s->opt_len += ((long)bits - (long)tree[m].Len)
- *(long)tree[m].Freq;
+ Tracev((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
+ s->opt_len += ((ulg)bits - tree[m].Len) * tree[m].Freq;
tree[m].Len = (ush)bits;
}
n--;
@@ -578,7 +575,7 @@ local void gen_codes (tree, max_code, bl_count)
ushf *bl_count; /* number of codes at each bit length */
{
ush next_code[MAX_BITS+1]; /* next code value for each bit length */
- ush code = 0; /* running code value */
+ unsigned code = 0; /* running code value */
int bits; /* bit index */
int n; /* code index */
@@ -586,7 +583,8 @@ local void gen_codes (tree, max_code, bl_count)
* without bit reversal.
*/
for (bits = 1; bits <= MAX_BITS; bits++) {
- next_code[bits] = code = (code + bl_count[bits-1]) << 1;
+ code = (code + bl_count[bits-1]) << 1;
+ next_code[bits] = (ush)code;
}
/* Check that the bit counts in bl_count are consistent. The last code
* must be all ones.
@@ -599,7 +597,7 @@ local void gen_codes (tree, max_code, bl_count)
int len = tree[n].Len;
if (len == 0) continue;
/* Now reverse the bits */
- tree[n].Code = bi_reverse(next_code[len]++, len);
+ tree[n].Code = (ush)bi_reverse(next_code[len]++, len);
Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
@@ -821,7 +819,7 @@ local int build_bl_tree(s)
if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
}
/* Update opt_len to include the bit length tree and counts */
- s->opt_len += 3*(max_blindex+1) + 5+5+4;
+ s->opt_len += 3*((ulg)max_blindex+1) + 5+5+4;
Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
s->opt_len, s->static_len));
@@ -869,11 +867,17 @@ void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last)
int last; /* one if this is the last block for a file */
{
send_bits(s, (STORED_BLOCK<<1)+last, 3); /* send block type */
-#ifdef DEBUG
+ bi_windup(s); /* align on byte boundary */
+ put_short(s, (ush)stored_len);
+ put_short(s, (ush)~stored_len);
+ zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len);
+ s->pending += stored_len;
+#ifdef ZLIB_DEBUG
s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
s->compressed_len += (stored_len + 4) << 3;
+ s->bits_sent += 2*16;
+ s->bits_sent += stored_len<<3;
#endif
- copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
}
/* ===========================================================================
@@ -894,7 +898,7 @@ void ZLIB_INTERNAL _tr_align(s)
{
send_bits(s, STATIC_TREES<<1, 3);
send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
#endif
bi_flush(s);
@@ -902,7 +906,7 @@ void ZLIB_INTERNAL _tr_align(s)
/* ===========================================================================
* Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
+ * trees or store, and write out the encoded block.
*/
void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
deflate_state *s;
@@ -974,7 +978,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
send_bits(s, (STATIC_TREES<<1)+last, 3);
compress_block(s, (const ct_data *)static_ltree,
(const ct_data *)static_dtree);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 3 + s->static_len;
#endif
} else {
@@ -983,7 +987,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
max_blindex+1);
compress_block(s, (const ct_data *)s->dyn_ltree,
(const ct_data *)s->dyn_dtree);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 3 + s->opt_len;
#endif
}
@@ -995,7 +999,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
if (last) {
bi_windup(s);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 7; /* align on byte boundary */
#endif
}
@@ -1090,7 +1094,7 @@ local void compress_block(s, ltree, dtree)
send_code(s, code, dtree); /* send the distance code */
extra = extra_dbits[code];
if (extra != 0) {
- dist -= base_dist[code];
+ dist -= (unsigned)base_dist[code];
send_bits(s, dist, extra); /* send the extra distance bits */
}
} /* literal or match pair ? */
@@ -1193,34 +1197,7 @@ local void bi_windup(s)
}
s->bi_buf = 0;
s->bi_valid = 0;
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->bits_sent = (s->bits_sent+7) & ~7;
#endif
}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(s, buf, len, header)
- deflate_state *s;
- charf *buf; /* the input data */
- unsigned len; /* its length */
- int header; /* true if block header must be written */
-{
- bi_windup(s); /* align on byte boundary */
-
- if (header) {
- put_short(s, (ush)len);
- put_short(s, (ush)~len);
-#ifdef DEBUG
- s->bits_sent += 2*16;
-#endif
- }
-#ifdef DEBUG
- s->bits_sent += (ulg)len<<3;
-#endif
- while (len--) {
- put_byte(s, *buf++);
- }
-}
diff --git a/src/Common/zlib/uncompr.c b/src/Common/zlib/uncompr.c
index 242e949..f03a1a8 100644
--- a/src/Common/zlib/uncompr.c
+++ b/src/Common/zlib/uncompr.c
@@ -1,5 +1,5 @@
/* uncompr.c -- decompress a memory buffer
- * Copyright (C) 1995-2003, 2010 Jean-loup Gailly.
+ * Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -9,51 +9,85 @@
#include "zlib.h"
/* ===========================================================================
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be large enough to hold the
- entire uncompressed data. (The size of the uncompressed data must have
- been saved previously by the compressor and transmitted to the decompressor
- by some mechanism outside the scope of this compression library.)
- Upon exit, destLen is the actual size of the compressed buffer.
-
- uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer, or Z_DATA_ERROR if the input data was corrupted.
+ Decompresses the source buffer into the destination buffer. *sourceLen is
+ the byte length of the source buffer. Upon entry, *destLen is the total size
+ of the destination buffer, which must be large enough to hold the entire
+ uncompressed data. (The size of the uncompressed data must have been saved
+ previously by the compressor and transmitted to the decompressor by some
+ mechanism outside the scope of this compression library.) Upon exit,
+ *destLen is the size of the decompressed data and *sourceLen is the number
+ of source bytes consumed. Upon return, source + *sourceLen points to the
+ first unused input byte.
+
+ uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
+ Z_DATA_ERROR if the input data was corrupted, including if the input data is
+ an incomplete zlib stream.
*/
-int ZEXPORT uncompress (dest, destLen, source, sourceLen)
+int ZEXPORT uncompress2 (dest, destLen, source, sourceLen)
Bytef *dest;
uLongf *destLen;
const Bytef *source;
- uLong sourceLen;
+ uLong *sourceLen;
{
z_stream stream;
int err;
+ const uInt max = (uInt)-1;
+ uLong len, left;
+ Byte buf[1]; /* for detection of incomplete stream when *destLen == 0 */
- stream.next_in = (z_const Bytef *)source;
- stream.avail_in = (uInt)sourceLen;
- /* Check for source > 64K on 16-bit machine: */
- if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-
- stream.next_out = dest;
- stream.avail_out = (uInt)*destLen;
- if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+ len = *sourceLen;
+ if (*destLen) {
+ left = *destLen;
+ *destLen = 0;
+ }
+ else {
+ left = 1;
+ dest = buf;
+ }
+ stream.next_in = (z_const Bytef *)source;
+ stream.avail_in = 0;
stream.zalloc = (alloc_func)0;
stream.zfree = (free_func)0;
+ stream.opaque = (voidpf)0;
err = inflateInit(&stream);
if (err != Z_OK) return err;
- err = inflate(&stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- inflateEnd(&stream);
- if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0))
- return Z_DATA_ERROR;
- return err;
- }
- *destLen = stream.total_out;
+ stream.next_out = dest;
+ stream.avail_out = 0;
- err = inflateEnd(&stream);
- return err;
+ do {
+ if (stream.avail_out == 0) {
+ stream.avail_out = left > (uLong)max ? max : (uInt)left;
+ left -= stream.avail_out;
+ }
+ if (stream.avail_in == 0) {
+ stream.avail_in = len > (uLong)max ? max : (uInt)len;
+ len -= stream.avail_in;
+ }
+ err = inflate(&stream, Z_NO_FLUSH);
+ } while (err == Z_OK);
+
+ *sourceLen -= len + stream.avail_in;
+ if (dest != buf)
+ *destLen = stream.total_out;
+ else if (stream.total_out && err == Z_BUF_ERROR)
+ left = 1;
+
+ inflateEnd(&stream);
+ return err == Z_STREAM_END ? Z_OK :
+ err == Z_NEED_DICT ? Z_DATA_ERROR :
+ err == Z_BUF_ERROR && left + stream.avail_out ? Z_DATA_ERROR :
+ err;
+}
+
+int ZEXPORT uncompress (dest, destLen, source, sourceLen)
+ Bytef *dest;
+ uLongf *destLen;
+ const Bytef *source;
+ uLong sourceLen;
+{
+ return uncompress2(dest, destLen, source, &sourceLen);
}
diff --git a/src/Common/zlib/zconf.h b/src/Common/zlib/zconf.h
index 9987a77..5e1d68a 100644
--- a/src/Common/zlib/zconf.h
+++ b/src/Common/zlib/zconf.h
@@ -1,5 +1,5 @@
/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2013 Jean-loup Gailly.
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -17,7 +17,7 @@
#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
# define Z_PREFIX_SET
-/* all linked symbols */
+/* all linked symbols and init macros */
# define _dist_code z__dist_code
# define _length_code z__length_code
# define _tr_align z__tr_align
@@ -29,6 +29,7 @@
# define adler32 z_adler32
# define adler32_combine z_adler32_combine
# define adler32_combine64 z_adler32_combine64
+# define adler32_z z_adler32_z
# ifndef Z_SOLO
# define compress z_compress
# define compress2 z_compress2
@@ -37,10 +38,14 @@
# define crc32 z_crc32
# define crc32_combine z_crc32_combine
# define crc32_combine64 z_crc32_combine64
+# define crc32_z z_crc32_z
# define deflate z_deflate
# define deflateBound z_deflateBound
# define deflateCopy z_deflateCopy
# define deflateEnd z_deflateEnd
+# define deflateGetDictionary z_deflateGetDictionary
+# define deflateInit z_deflateInit
+# define deflateInit2 z_deflateInit2
# define deflateInit2_ z_deflateInit2_
# define deflateInit_ z_deflateInit_
# define deflateParams z_deflateParams
@@ -67,6 +72,8 @@
# define gzeof z_gzeof
# define gzerror z_gzerror
# define gzflush z_gzflush
+# define gzfread z_gzfread
+# define gzfwrite z_gzfwrite
# define gzgetc z_gzgetc
# define gzgetc_ z_gzgetc_
# define gzgets z_gzgets
@@ -78,7 +85,6 @@
# define gzopen_w z_gzopen_w
# endif
# define gzprintf z_gzprintf
-# define gzvprintf z_gzvprintf
# define gzputc z_gzputc
# define gzputs z_gzputs
# define gzread z_gzread
@@ -89,32 +95,39 @@
# define gztell z_gztell
# define gztell64 z_gztell64
# define gzungetc z_gzungetc
+# define gzvprintf z_gzvprintf
# define gzwrite z_gzwrite
# endif
# define inflate z_inflate
# define inflateBack z_inflateBack
# define inflateBackEnd z_inflateBackEnd
+# define inflateBackInit z_inflateBackInit
# define inflateBackInit_ z_inflateBackInit_
+# define inflateCodesUsed z_inflateCodesUsed
# define inflateCopy z_inflateCopy
# define inflateEnd z_inflateEnd
+# define inflateGetDictionary z_inflateGetDictionary
# define inflateGetHeader z_inflateGetHeader
+# define inflateInit z_inflateInit
+# define inflateInit2 z_inflateInit2
# define inflateInit2_ z_inflateInit2_
# define inflateInit_ z_inflateInit_
# define inflateMark z_inflateMark
# define inflatePrime z_inflatePrime
# define inflateReset z_inflateReset
# define inflateReset2 z_inflateReset2
+# define inflateResetKeep z_inflateResetKeep
# define inflateSetDictionary z_inflateSetDictionary
-# define inflateGetDictionary z_inflateGetDictionary
# define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint
# define inflateUndermine z_inflateUndermine
-# define inflateResetKeep z_inflateResetKeep
+# define inflateValidate z_inflateValidate
# define inflate_copyright z_inflate_copyright
# define inflate_fast z_inflate_fast
# define inflate_table z_inflate_table
# ifndef Z_SOLO
# define uncompress z_uncompress
+# define uncompress2 z_uncompress2
# endif
# define zError z_zError
# ifndef Z_SOLO
@@ -224,9 +237,19 @@
# define z_const
#endif
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-# define NO_DUMMY_DECL
+#ifdef Z_SOLO
+ typedef unsigned long z_size_t;
+#else
+# define z_longlong long long
+# if defined(NO_SIZE_T)
+ typedef unsigned NO_SIZE_T z_size_t;
+# elif defined(STDC)
+# include <stddef.h>
+ typedef size_t z_size_t;
+# else
+ typedef unsigned long z_size_t;
+# endif
+# undef z_longlong
#endif
/* Maximum value for memLevel in deflateInit2 */
@@ -256,7 +279,7 @@
Of course this will generally degrade compression (there's no free lunch).
The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
+ that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
for small objects.
*/
diff --git a/src/Common/zlib/zlib.h b/src/Common/zlib/zlib.h
index 3e0c767..f09cdaf 100644
--- a/src/Common/zlib/zlib.h
+++ b/src/Common/zlib/zlib.h
@@ -1,7 +1,7 @@
/* zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.2.8, April 28th, 2013
+ version 1.2.11, January 15th, 2017
- Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -37,11 +37,11 @@
extern "C" {
#endif
-#define ZLIB_VERSION "1.2.8"
-#define ZLIB_VERNUM 0x1280
+#define ZLIB_VERSION "1.2.11"
+#define ZLIB_VERNUM 0x12b0
#define ZLIB_VER_MAJOR 1
#define ZLIB_VER_MINOR 2
-#define ZLIB_VER_REVISION 8
+#define ZLIB_VER_REVISION 11
#define ZLIB_VER_SUBREVISION 0
/*
@@ -65,7 +65,8 @@ extern "C" {
with "gz". The gzip format is different from the zlib format. gzip is a
gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
- This library can optionally read and write gzip streams in memory as well.
+ This library can optionally read and write gzip and raw deflate streams in
+ memory as well.
The zlib format was designed to be compact and fast for use in memory
and on communications channels. The gzip format was designed for single-
@@ -74,7 +75,7 @@ extern "C" {
The library does not install any signal handler. The decoder checks
the consistency of the compressed data, so the library should never crash
- even in case of corrupted input.
+ even in the case of corrupted input.
*/
typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
@@ -87,7 +88,7 @@ typedef struct z_stream_s {
uInt avail_in; /* number of bytes available at next_in */
uLong total_in; /* total number of input bytes read so far */
- Bytef *next_out; /* next output byte should be put there */
+ Bytef *next_out; /* next output byte will go here */
uInt avail_out; /* remaining free space at next_out */
uLong total_out; /* total number of bytes output so far */
@@ -98,8 +99,9 @@ typedef struct z_stream_s {
free_func zfree; /* used to free the internal state */
voidpf opaque; /* private data object passed to zalloc and zfree */
- int data_type; /* best guess about the data type: binary or text */
- uLong adler; /* adler32 value of the uncompressed data */
+ int data_type; /* best guess about the data type: binary or text
+ for deflate, or the decoding state for inflate */
+ uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */
uLong reserved; /* reserved for future use */
} z_stream;
@@ -142,7 +144,9 @@ typedef gz_header FAR *gz_headerp;
zalloc must return Z_NULL if there is not enough memory for the object.
If zlib is used in a multi-threaded application, zalloc and zfree must be
- thread safe.
+ thread safe. In that case, zlib is thread-safe. When zalloc and zfree are
+ Z_NULL on entry to the initialization function, they are set to internal
+ routines that use the standard library functions malloc() and free().
On 16-bit systems, the functions zalloc and zfree must be able to allocate
exactly 65536 bytes, but will not be required to allocate more than this if
@@ -155,7 +159,7 @@ typedef gz_header FAR *gz_headerp;
The fields total_in and total_out can be used for statistics or progress
reports. After compression, total_in holds the total size of the
- uncompressed data and may be saved for use in the decompressor (particularly
+ uncompressed data and may be saved for use by the decompressor (particularly
if the decompressor wants to decompress everything in a single step).
*/
@@ -200,7 +204,7 @@ typedef gz_header FAR *gz_headerp;
#define Z_TEXT 1
#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */
#define Z_UNKNOWN 2
-/* Possible values of the data_type field (though see inflate()) */
+/* Possible values of the data_type field for deflate() */
#define Z_DEFLATED 8
/* The deflate compression method (the only one supported in this version) */
@@ -258,11 +262,11 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
enough room in the output buffer), next_in and avail_in are updated and
processing will resume at this point for the next call of deflate().
- - Provide more output starting at next_out and update next_out and avail_out
+ - Generate more output starting at next_out and update next_out and avail_out
accordingly. This action is forced if the parameter flush is non zero.
Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary (in interactive applications). Some
- output may be provided even if flush is not set.
+ should be set only when necessary. Some output may be provided even if
+ flush is zero.
Before the call of deflate(), the application should ensure that at least
one of the actions is possible, by providing more input and/or consuming more
@@ -271,7 +275,9 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
output when it wants, for example when the output buffer is full (avail_out
== 0), or after each call of deflate(). If deflate returns Z_OK and with
zero avail_out, it must be called again after making room in the output
- buffer because there might be more output pending.
+ buffer because there might be more output pending. See deflatePending(),
+ which can be used if desired to determine whether or not there is more ouput
+ in that case.
Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
decide how much data to accumulate before producing output, in order to
@@ -292,8 +298,8 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.
This completes the current deflate block and follows it with an empty fixed
codes block that is 10 bits long. This assures that enough bytes are output
- in order for the decompressor to finish the block before the empty fixed code
- block.
+ in order for the decompressor to finish the block before the empty fixed
+ codes block.
If flush is set to Z_BLOCK, a deflate block is completed and emitted, as
for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
@@ -319,34 +325,38 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
If the parameter flush is set to Z_FINISH, pending input is processed,
pending output is flushed and deflate returns with Z_STREAM_END if there was
- enough output space; if deflate returns with Z_OK, this function must be
- called again with Z_FINISH and more output space (updated avail_out) but no
- more input data, until it returns with Z_STREAM_END or an error. After
- deflate has returned Z_STREAM_END, the only possible operations on the stream
- are deflateReset or deflateEnd.
-
- Z_FINISH can be used immediately after deflateInit if all the compression
- is to be done in a single step. In this case, avail_out must be at least the
- value returned by deflateBound (see below). Then deflate is guaranteed to
- return Z_STREAM_END. If not enough output space is provided, deflate will
- not return Z_STREAM_END, and it must be called again as described above.
-
- deflate() sets strm->adler to the adler32 checksum of all input read
- so far (that is, total_in bytes).
+ enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this
+ function must be called again with Z_FINISH and more output space (updated
+ avail_out) but no more input data, until it returns with Z_STREAM_END or an
+ error. After deflate has returned Z_STREAM_END, the only possible operations
+ on the stream are deflateReset or deflateEnd.
+
+ Z_FINISH can be used in the first deflate call after deflateInit if all the
+ compression is to be done in a single step. In order to complete in one
+ call, avail_out must be at least the value returned by deflateBound (see
+ below). Then deflate is guaranteed to return Z_STREAM_END. If not enough
+ output space is provided, deflate will not return Z_STREAM_END, and it must
+ be called again as described above.
+
+ deflate() sets strm->adler to the Adler-32 checksum of all input read
+ so far (that is, total_in bytes). If a gzip stream is being generated, then
+ strm->adler will be the CRC-32 checksum of the input read so far. (See
+ deflateInit2 below.)
deflate() may update strm->data_type if it can make a good guess about
- the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered
- binary. This field is only for information purposes and does not affect the
- compression algorithm in any manner.
+ the input data type (Z_BINARY or Z_TEXT). If in doubt, the data is
+ considered binary. This field is only for information purposes and does not
+ affect the compression algorithm in any manner.
deflate() returns Z_OK if some progress has been made (more input
processed or more output produced), Z_STREAM_END if all input has been
consumed and all output has been produced (only when flush is set to
Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
- if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible
- (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not
- fatal, and deflate() can be called again with more input and more output
- space to continue compressing.
+ if next_in or next_out was Z_NULL or the state was inadvertently written over
+ by the application), or Z_BUF_ERROR if no progress is possible (for example
+ avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and
+ deflate() can be called again with more input and more output space to
+ continue compressing.
*/
@@ -369,23 +379,21 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
Initializes the internal stream state for decompression. The fields
next_in, avail_in, zalloc, zfree and opaque must be initialized before by
- the caller. If next_in is not Z_NULL and avail_in is large enough (the
- exact value depends on the compression method), inflateInit determines the
- compression method from the zlib header and allocates all data structures
- accordingly; otherwise the allocation will be deferred to the first call of
- inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to
- use default allocation functions.
+ the caller. In the current version of inflate, the provided input is not
+ read or consumed. The allocation of a sliding window will be deferred to
+ the first call of inflate (if the decompression does not complete on the
+ first call). If zalloc and zfree are set to Z_NULL, inflateInit updates
+ them to use default allocation functions.
inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
version assumed by the caller, or Z_STREAM_ERROR if the parameters are
invalid, such as a null pointer to the structure. msg is set to null if
- there is no error message. inflateInit does not perform any decompression
- apart from possibly reading the zlib header if present: actual decompression
- will be done by inflate(). (So next_in and avail_in may be modified, but
- next_out and avail_out are unused and unchanged.) The current implementation
- of inflateInit() does not process any header information -- that is deferred
- until inflate() is called.
+ there is no error message. inflateInit does not perform any decompression.
+ Actual decompression will be done by inflate(). So next_in, and avail_in,
+ next_out, and avail_out are unused and unchanged. The current
+ implementation of inflateInit() does not process any header information --
+ that is deferred until inflate() is called.
*/
@@ -401,17 +409,20 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
- Decompress more input starting at next_in and update next_in and avail_in
accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in is updated and processing will
- resume at this point for the next call of inflate().
+ enough room in the output buffer), then next_in and avail_in are updated
+ accordingly, and processing will resume at this point for the next call of
+ inflate().
- - Provide more output starting at next_out and update next_out and avail_out
+ - Generate more output starting at next_out and update next_out and avail_out
accordingly. inflate() provides as much output as possible, until there is
no more input data or no more space in the output buffer (see below about
the flush parameter).
Before the call of inflate(), the application should ensure that at least
one of the actions is possible, by providing more input and/or consuming more
- output, and updating the next_* and avail_* values accordingly. The
+ output, and updating the next_* and avail_* values accordingly. If the
+ caller of inflate() does not provide both available input and available
+ output space, it is possible that there will be no progress made. The
application can consume the uncompressed output when it wants, for example
when the output buffer is full (avail_out == 0), or after each call of
inflate(). If inflate returns Z_OK and with zero avail_out, it must be
@@ -428,7 +439,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
gets to the end of that block, or when it runs out of data.
The Z_BLOCK option assists in appending to or combining deflate streams.
- Also to assist in this, on return inflate() will set strm->data_type to the
+ To assist in this, on return inflate() always sets strm->data_type to the
number of unused bits in the last byte taken from strm->next_in, plus 64 if
inflate() is currently decoding the last block in the deflate stream, plus
128 if inflate() returned immediately after decoding an end-of-block code or
@@ -454,7 +465,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
this case all pending input is processed and all pending output is flushed;
avail_out must be large enough to hold all of the uncompressed data for the
operation to complete. (The size of the uncompressed data may have been
- saved by the compressor for this purpose.) The use of Z_FINISH is not
+ saved by the compressor for this purpose.) The use of Z_FINISH is not
required to perform an inflation in one step. However it may be used to
inform inflate that a faster approach can be used for the single inflate()
call. Z_FINISH also informs inflate to not maintain a sliding window if the
@@ -476,32 +487,33 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
strm->adler to the Adler-32 checksum of all output produced so far (that is,
total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
- below. At the end of the stream, inflate() checks that its computed adler32
+ below. At the end of the stream, inflate() checks that its computed Adler-32
checksum is equal to that saved by the compressor and returns Z_STREAM_END
only if the checksum is correct.
inflate() can decompress and check either zlib-wrapped or gzip-wrapped
deflate data. The header type is detected automatically, if requested when
initializing with inflateInit2(). Any information contained in the gzip
- header is not retained, so applications that need that information should
- instead use raw inflate, see inflateInit2() below, or inflateBack() and
- perform their own processing of the gzip header and trailer. When processing
+ header is not retained unless inflateGetHeader() is used. When processing
gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
- producted so far. The CRC-32 is checked against the gzip trailer.
+ produced so far. The CRC-32 is checked against the gzip trailer, as is the
+ uncompressed length, modulo 2^32.
inflate() returns Z_OK if some progress has been made (more input processed
or more output produced), Z_STREAM_END if the end of the compressed data has
been reached and all uncompressed output has been produced, Z_NEED_DICT if a
preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
corrupted (input stream not conforming to the zlib format or incorrect check
- value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
- next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory,
- Z_BUF_ERROR if no progress is possible or if there was not enough room in the
- output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and
+ value, in which case strm->msg points to a string with a more specific
+ error), Z_STREAM_ERROR if the stream structure was inconsistent (for example
+ next_in or next_out was Z_NULL, or the state was inadvertently written over
+ by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR
+ if no progress was possible or if there was not enough room in the output
+ buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and
inflate() can be called again with more input and more output space to
continue decompressing. If Z_DATA_ERROR is returned, the application may
then call inflateSync() to look for a good compression block if a partial
- recovery of the data is desired.
+ recovery of the data is to be attempted.
*/
@@ -511,9 +523,8 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
This function discards any unprocessed input and does not flush any pending
output.
- inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
- was inconsistent. In the error case, msg may be set but then points to a
- static string (which must not be deallocated).
+ inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state
+ was inconsistent.
*/
@@ -544,16 +555,29 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
compression at the expense of memory usage. The default value is 15 if
deflateInit is used instead.
+ For the current implementation of deflate(), a windowBits value of 8 (a
+ window size of 256 bytes) is not supported. As a result, a request for 8
+ will result in 9 (a 512-byte window). In that case, providing 8 to
+ inflateInit2() will result in an error when the zlib header with 9 is
+ checked against the initialization of inflate(). The remedy is to not use 8
+ with deflateInit2() with this initialization, or at least in that case use 9
+ with inflateInit2().
+
windowBits can also be -8..-15 for raw deflate. In this case, -windowBits
determines the window size. deflate() will then generate raw deflate data
- with no zlib header or trailer, and will not compute an adler32 check value.
+ with no zlib header or trailer, and will not compute a check value.
windowBits can also be greater than 15 for optional gzip encoding. Add
16 to windowBits to write a simple gzip header and trailer around the
compressed data instead of a zlib wrapper. The gzip header will have no
file name, no extra data, no comment, no modification time (set to zero), no
- header crc, and the operating system will be set to 255 (unknown). If a
- gzip stream is being written, strm->adler is a crc32 instead of an adler32.
+ header crc, and the operating system will be set to the appropriate value,
+ if the operating system was determined at compile time. If a gzip stream is
+ being written, strm->adler is a CRC-32 instead of an Adler-32.
+
+ For raw deflate or gzip encoding, a request for a 256-byte window is
+ rejected as invalid, since only the zlib header provides a means of
+ transmitting the window size to the decompressor.
The memLevel parameter specifies how much memory should be allocated
for the internal compression state. memLevel=1 uses minimum memory but is
@@ -614,12 +638,12 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
addition, the current implementation of deflate will use at most the window
size minus 262 bytes of the provided dictionary.
- Upon return of this function, strm->adler is set to the adler32 value
+ Upon return of this function, strm->adler is set to the Adler-32 value
of the dictionary; the decompressor may later use this value to determine
- which dictionary has been used by the compressor. (The adler32 value
+ which dictionary has been used by the compressor. (The Adler-32 value
applies to the whole dictionary even if only a subset of the dictionary is
actually used by the compressor.) If a raw deflate was requested, then the
- adler32 value is not computed and strm->adler is not set.
+ Adler-32 value is not computed and strm->adler is not set.
deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is
@@ -628,6 +652,28 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
not perform any compression: this will be done by deflate().
*/
+ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm,
+ Bytef *dictionary,
+ uInt *dictLength));
+/*
+ Returns the sliding dictionary being maintained by deflate. dictLength is
+ set to the number of bytes in the dictionary, and that many bytes are copied
+ to dictionary. dictionary must have enough space, where 32768 bytes is
+ always enough. If deflateGetDictionary() is called with dictionary equal to
+ Z_NULL, then only the dictionary length is returned, and nothing is copied.
+ Similary, if dictLength is Z_NULL, then it is not set.
+
+ deflateGetDictionary() may return a length less than the window size, even
+ when more than the window size in input has been provided. It may return up
+ to 258 bytes less in that case, due to how zlib's implementation of deflate
+ manages the sliding window and lookahead for matches, where matches can be
+ up to 258 bytes long. If the application needs the last window-size bytes of
+ input, then that would need to be saved by the application outside of zlib.
+
+ deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
+ stream state is inconsistent.
+*/
+
ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
z_streamp source));
/*
@@ -648,10 +694,10 @@ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
/*
- This function is equivalent to deflateEnd followed by deflateInit,
- but does not free and reallocate all the internal compression state. The
- stream will keep the same compression level and any other attributes that
- may have been set by deflateInit2.
+ This function is equivalent to deflateEnd followed by deflateInit, but
+ does not free and reallocate the internal compression state. The stream
+ will leave the compression level and any other attributes that may have been
+ set unchanged.
deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
stream state was inconsistent (such as zalloc or state being Z_NULL).
@@ -662,20 +708,36 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
int strategy));
/*
Dynamically update the compression level and compression strategy. The
- interpretation of level and strategy is as in deflateInit2. This can be
+ interpretation of level and strategy is as in deflateInit2(). This can be
used to switch between compression and straight copy of the input data, or
to switch to a different kind of input data requiring a different strategy.
- If the compression level is changed, the input available so far is
- compressed with the old level (and may be flushed); the new level will take
- effect only at the next call of deflate().
-
- Before the call of deflateParams, the stream state must be set as for
- a call of deflate(), since the currently available input may have to be
- compressed and flushed. In particular, strm->avail_out must be non-zero.
-
- deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
- stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if
- strm->avail_out was zero.
+ If the compression approach (which is a function of the level) or the
+ strategy is changed, and if any input has been consumed in a previous
+ deflate() call, then the input available so far is compressed with the old
+ level and strategy using deflate(strm, Z_BLOCK). There are three approaches
+ for the compression levels 0, 1..3, and 4..9 respectively. The new level
+ and strategy will take effect at the next call of deflate().
+
+ If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
+ not have enough output space to complete, then the parameter change will not
+ take effect. In this case, deflateParams() can be called again with the
+ same parameters and more output space to try again.
+
+ In order to assure a change in the parameters on the first try, the
+ deflate stream should be flushed using deflate() with Z_BLOCK or other flush
+ request until strm.avail_out is not zero, before calling deflateParams().
+ Then no more input data should be provided before the deflateParams() call.
+ If this is done, the old level and strategy will be applied to the data
+ compressed before deflateParams(), and the new level and strategy will be
+ applied to the the data compressed after deflateParams().
+
+ deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream
+ state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if
+ there was not enough output space to complete the compression of the
+ available input data before a change in the strategy or approach. Note that
+ in the case of a Z_BUF_ERROR, the parameters are not changed. A return
+ value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be
+ retried with more output space.
*/
ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
@@ -793,7 +855,7 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
is for use with other formats that use the deflate compressed data format
such as zip. Those formats provide their own check values. If a custom
format is developed using the raw deflate format for compressed data, it is
- recommended that a check value such as an adler32 or a crc32 be applied to
+ recommended that a check value such as an Adler-32 or a CRC-32 be applied to
the uncompressed data as is done in the zlib, gzip, and zip formats. For
most applications, the zlib format should be used as is. Note that comments
above on the use in deflateInit2() applies to the magnitude of windowBits.
@@ -802,7 +864,10 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
32 to windowBits to enable zlib and gzip decoding with automatic header
detection, or add 16 to decode only the gzip format (the zlib format will
return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a
- crc32 instead of an adler32.
+ CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see
+ below), inflate() will not automatically decode concatenated gzip streams.
+ inflate() will return Z_STREAM_END at the end of the gzip stream. The state
+ would need to be reset to continue decoding a subsequent gzip stream.
inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
@@ -823,7 +888,7 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
Initializes the decompression dictionary from the given uncompressed byte
sequence. This function must be called immediately after a call of inflate,
if that call returned Z_NEED_DICT. The dictionary chosen by the compressor
- can be determined from the adler32 value returned by that call of inflate.
+ can be determined from the Adler-32 value returned by that call of inflate.
The compressor and decompressor must use exactly the same dictionary (see
deflateSetDictionary). For raw inflate, this function can be called at any
time to set the dictionary. If the provided dictionary is smaller than the
@@ -834,7 +899,7 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is
inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
- expected one (incorrect adler32 value). inflateSetDictionary does not
+ expected one (incorrect Adler-32 value). inflateSetDictionary does not
perform any decompression: this will be done by subsequent calls of
inflate().
*/
@@ -892,7 +957,7 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
/*
This function is equivalent to inflateEnd followed by inflateInit,
- but does not free and reallocate all the internal decompression state. The
+ but does not free and reallocate the internal decompression state. The
stream will keep attributes that may have been set by inflateInit2.
inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
@@ -904,7 +969,9 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
/*
This function is the same as inflateReset, but it also permits changing
the wrap and window size requests. The windowBits parameter is interpreted
- the same as it is for inflateInit2.
+ the same as it is for inflateInit2. If the window size is changed, then the
+ memory allocated for the window is freed, and the window will be reallocated
+ by inflate() if needed.
inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
stream state was inconsistent (such as zalloc or state being Z_NULL), or if
@@ -956,7 +1023,7 @@ ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));
location in the input stream can be determined from avail_in and data_type
as noted in the description for the Z_BLOCK flush parameter for inflate.
- inflateMark returns the value noted above or -1 << 16 if the provided
+ inflateMark returns the value noted above, or -65536 if the provided
source stream state was inconsistent.
*/
@@ -1048,9 +1115,9 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
This routine would normally be used in a utility that reads zip or gzip
files and writes out uncompressed files. The utility would decode the
header and process the trailer on its own, hence this routine expects only
- the raw deflate stream to decompress. This is different from the normal
- behavior of inflate(), which expects either a zlib or gzip header and
- trailer around the deflate stream.
+ the raw deflate stream to decompress. This is different from the default
+ behavior of inflate(), which expects a zlib header and trailer around the
+ deflate stream.
inflateBack() uses two subroutines supplied by the caller that are then
called by inflateBack() for input and output. inflateBack() calls those
@@ -1059,12 +1126,12 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
parameters and return types are defined above in the in_func and out_func
typedefs. inflateBack() will call in(in_desc, &buf) which should return the
number of bytes of provided input, and a pointer to that input in buf. If
- there is no input available, in() must return zero--buf is ignored in that
- case--and inflateBack() will return a buffer error. inflateBack() will call
- out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out()
- should return zero on success, or non-zero on failure. If out() returns
- non-zero, inflateBack() will return with an error. Neither in() nor out()
- are permitted to change the contents of the window provided to
+ there is no input available, in() must return zero -- buf is ignored in that
+ case -- and inflateBack() will return a buffer error. inflateBack() will
+ call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].
+ out() should return zero on success, or non-zero on failure. If out()
+ returns non-zero, inflateBack() will return with an error. Neither in() nor
+ out() are permitted to change the contents of the window provided to
inflateBackInit(), which is also the buffer that out() uses to write from.
The length written by out() will be at most the window size. Any non-zero
amount of input may be provided by in().
@@ -1092,7 +1159,7 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
using strm->next_in which will be Z_NULL only if in() returned an error. If
strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
non-zero. (in() will always be called before out(), so strm->next_in is
- assured to be defined if out() returns non-zero.) Note that inflateBack()
+ assured to be defined if out() returns non-zero.) Note that inflateBack()
cannot return Z_OK.
*/
@@ -1114,7 +1181,7 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
7.6: size of z_off_t
Compiler, assembler, and debug options:
- 8: DEBUG
+ 8: ZLIB_DEBUG
9: ASMV or ASMINF -- use ASM code
10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
11: 0 (reserved)
@@ -1164,7 +1231,8 @@ ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
the byte length of the source buffer. Upon entry, destLen is the total size
of the destination buffer, which must be at least the value returned by
compressBound(sourceLen). Upon exit, destLen is the actual size of the
- compressed buffer.
+ compressed data. compress() is equivalent to compress2() with a level
+ parameter of Z_DEFAULT_COMPRESSION.
compress returns Z_OK if success, Z_MEM_ERROR if there was not
enough memory, Z_BUF_ERROR if there was not enough room in the output
@@ -1180,7 +1248,7 @@ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
length of the source buffer. Upon entry, destLen is the total size of the
destination buffer, which must be at least the value returned by
compressBound(sourceLen). Upon exit, destLen is the actual size of the
- compressed buffer.
+ compressed data.
compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
memory, Z_BUF_ERROR if there was not enough room in the output buffer,
@@ -1203,7 +1271,7 @@ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
uncompressed data. (The size of the uncompressed data must have been saved
previously by the compressor and transmitted to the decompressor by some
mechanism outside the scope of this compression library.) Upon exit, destLen
- is the actual size of the uncompressed buffer.
+ is the actual size of the uncompressed data.
uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
enough memory, Z_BUF_ERROR if there was not enough room in the output
@@ -1212,6 +1280,14 @@ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
buffer with the uncompressed data up to that point.
*/
+ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen,
+ const Bytef *source, uLong *sourceLen));
+/*
+ Same as uncompress, except that sourceLen is a pointer, where the
+ length of the source is *sourceLen. On return, *sourceLen is the number of
+ source bytes consumed.
+*/
+
/* gzip file access functions */
/*
@@ -1290,10 +1366,9 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
default buffer size is 8192 bytes. This function must be called after
gzopen() or gzdopen(), and before any other calls that read or write the
file. The buffer memory allocation is always deferred to the first read or
- write. Two buffers are allocated, either both of the specified size when
- writing, or one of the specified size and the other twice that size when
- reading. A larger buffer size of, for example, 64K or 128K bytes will
- noticeably increase the speed of decompression (reading).
+ write. Three times that size in buffer space is allocated. A larger buffer
+ size of, for example, 64K or 128K bytes will noticeably increase the speed
+ of decompression (reading).
The new buffer size also affects the maximum length for gzprintf().
@@ -1304,10 +1379,12 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
/*
Dynamically update the compression level or strategy. See the description
- of deflateInit2 for the meaning of these parameters.
+ of deflateInit2 for the meaning of these parameters. Previously provided
+ data is flushed before the parameter change.
- gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
- opened for writing.
+ gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not
+ opened for writing, Z_ERRNO if there is an error writing the flushed data,
+ or Z_MEM_ERROR if there is a memory allocation error.
*/
ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
@@ -1335,7 +1412,35 @@ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
case.
gzread returns the number of uncompressed bytes actually read, less than
- len for end of file, or -1 for error.
+ len for end of file, or -1 for error. If len is too large to fit in an int,
+ then nothing is read, -1 is returned, and the error state is set to
+ Z_STREAM_ERROR.
+*/
+
+ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems,
+ gzFile file));
+/*
+ Read up to nitems items of size size from file to buf, otherwise operating
+ as gzread() does. This duplicates the interface of stdio's fread(), with
+ size_t request and return types. If the library defines size_t, then
+ z_size_t is identical to size_t. If not, then z_size_t is an unsigned
+ integer type that can contain a pointer.
+
+ gzfread() returns the number of full items read of size size, or zero if
+ the end of the file was reached and a full item could not be read, or if
+ there was an error. gzerror() must be consulted if zero is returned in
+ order to determine if there was an error. If the multiplication of size and
+ nitems overflows, i.e. the product does not fit in a z_size_t, then nothing
+ is read, zero is returned, and the error state is set to Z_STREAM_ERROR.
+
+ In the event that the end of file is reached and only a partial item is
+ available at the end, i.e. the remaining uncompressed data length is not a
+ multiple of size, then the final partial item is nevetheless read into buf
+ and the end-of-file flag is set. The length of the partial item read is not
+ provided, but could be inferred from the result of gztell(). This behavior
+ is the same as the behavior of fread() implementations in common libraries,
+ but it prevents the direct use of gzfread() to read a concurrently written
+ file, reseting and retrying on end-of-file, when size is not 1.
*/
ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
@@ -1346,19 +1451,33 @@ ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
error.
*/
+ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size,
+ z_size_t nitems, gzFile file));
+/*
+ gzfwrite() writes nitems items of size size from buf to file, duplicating
+ the interface of stdio's fwrite(), with size_t request and return types. If
+ the library defines size_t, then z_size_t is identical to size_t. If not,
+ then z_size_t is an unsigned integer type that can contain a pointer.
+
+ gzfwrite() returns the number of full items written of size size, or zero
+ if there was an error. If the multiplication of size and nitems overflows,
+ i.e. the product does not fit in a z_size_t, then nothing is written, zero
+ is returned, and the error state is set to Z_STREAM_ERROR.
+*/
+
ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));
/*
Converts, formats, and writes the arguments to the compressed file under
control of the format string, as in fprintf. gzprintf returns the number of
- uncompressed bytes actually written, or 0 in case of error. The number of
- uncompressed bytes written is limited to 8191, or one less than the buffer
- size given to gzbuffer(). The caller should assure that this limit is not
- exceeded. If it is exceeded, then gzprintf() will return an error (0) with
- nothing written. In this case, there may also be a buffer overflow with
- unpredictable consequences, which is possible only if zlib was compiled with
- the insecure functions sprintf() or vsprintf() because the secure snprintf()
- or vsnprintf() functions were not available. This can be determined using
- zlibCompileFlags().
+ uncompressed bytes actually written, or a negative zlib error code in case
+ of error. The number of uncompressed bytes written is limited to 8191, or
+ one less than the buffer size given to gzbuffer(). The caller should assure
+ that this limit is not exceeded. If it is exceeded, then gzprintf() will
+ return an error (0) with nothing written. In this case, there may also be a
+ buffer overflow with unpredictable consequences, which is possible only if
+ zlib was compiled with the insecure functions sprintf() or vsprintf()
+ because the secure snprintf() or vsnprintf() functions were not available.
+ This can be determined using zlibCompileFlags().
*/
ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
@@ -1418,7 +1537,7 @@ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
If the flush parameter is Z_FINISH, the remaining data is written and the
gzip stream is completed in the output. If gzwrite() is called again, a new
gzip stream will be started in the output. gzread() is able to read such
- concatented gzip streams.
+ concatenated gzip streams.
gzflush should be called only when strictly necessary because it will
degrade compression if called too often.
@@ -1572,7 +1691,7 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
return the updated checksum. If buf is Z_NULL, this function returns the
required initial value for the checksum.
- An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
+ An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed
much faster.
Usage example:
@@ -1585,6 +1704,12 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
if (adler != original_adler) error();
*/
+ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf,
+ z_size_t len));
+/*
+ Same as adler32(), but with a size_t length.
+*/
+
/*
ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
z_off_t len2));
@@ -1614,6 +1739,12 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
if (crc != original_crc) error();
*/
+ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf,
+ z_size_t len));
+/*
+ Same as crc32(), but with a size_t length.
+*/
+
/*
ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
@@ -1644,19 +1775,35 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
unsigned char FAR *window,
const char *version,
int stream_size));
-#define deflateInit(strm, level) \
- deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit(strm) \
- inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
- deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
- (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
- inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
- (int)sizeof(z_stream))
-#define inflateBackInit(strm, windowBits, window) \
- inflateBackInit_((strm), (windowBits), (window), \
- ZLIB_VERSION, (int)sizeof(z_stream))
+#ifdef Z_PREFIX_SET
+# define z_deflateInit(strm, level) \
+ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
+# define z_inflateInit(strm) \
+ inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
+# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
+ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
+ (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
+# define z_inflateInit2(strm, windowBits) \
+ inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
+ (int)sizeof(z_stream))
+# define z_inflateBackInit(strm, windowBits, window) \
+ inflateBackInit_((strm), (windowBits), (window), \
+ ZLIB_VERSION, (int)sizeof(z_stream))
+#else
+# define deflateInit(strm, level) \
+ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
+# define inflateInit(strm) \
+ inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
+# define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
+ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
+ (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
+# define inflateInit2(strm, windowBits) \
+ inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
+ (int)sizeof(z_stream))
+# define inflateBackInit(strm, windowBits, window) \
+ inflateBackInit_((strm), (windowBits), (window), \
+ ZLIB_VERSION, (int)sizeof(z_stream))
+#endif
#ifndef Z_SOLO
@@ -1676,10 +1823,10 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */
#ifdef Z_PREFIX_SET
# undef z_gzgetc
# define z_gzgetc(g) \
- ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
+ ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
#else
# define gzgetc(g) \
- ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
+ ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
#endif
/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
@@ -1737,19 +1884,16 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */
#endif /* !Z_SOLO */
-/* hack for buggy compilers */
-#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
- struct internal_state {int dummy;};
-#endif
-
/* undocumented functions */
ZEXTERN const char * ZEXPORT zError OF((int));
ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp));
ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void));
ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int));
+ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int));
+ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp));
ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp));
ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp));
-#if defined(_WIN32) && !defined(Z_SOLO)
+#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO)
ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path,
const char *mode));
#endif
diff --git a/src/Common/zlib/zutil.c b/src/Common/zlib/zutil.c
index 23d2ebe..a76c6b0 100644
--- a/src/Common/zlib/zutil.c
+++ b/src/Common/zlib/zutil.c
@@ -1,5 +1,5 @@
/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly.
+ * Copyright (C) 1995-2017 Jean-loup Gailly
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -10,21 +10,18 @@
# include "gzguts.h"
#endif
-#ifndef NO_DUMMY_DECL
-struct internal_state {int dummy;}; /* for buggy compilers */
-#endif
-
z_const char * const z_errmsg[10] = {
-"need dictionary", /* Z_NEED_DICT 2 */
-"stream end", /* Z_STREAM_END 1 */
-"", /* Z_OK 0 */
-"file error", /* Z_ERRNO (-1) */
-"stream error", /* Z_STREAM_ERROR (-2) */
-"data error", /* Z_DATA_ERROR (-3) */
-"insufficient memory", /* Z_MEM_ERROR (-4) */
-"buffer error", /* Z_BUF_ERROR (-5) */
-"incompatible version",/* Z_VERSION_ERROR (-6) */
-""};
+ (z_const char *)"need dictionary", /* Z_NEED_DICT 2 */
+ (z_const char *)"stream end", /* Z_STREAM_END 1 */
+ (z_const char *)"", /* Z_OK 0 */
+ (z_const char *)"file error", /* Z_ERRNO (-1) */
+ (z_const char *)"stream error", /* Z_STREAM_ERROR (-2) */
+ (z_const char *)"data error", /* Z_DATA_ERROR (-3) */
+ (z_const char *)"insufficient memory", /* Z_MEM_ERROR (-4) */
+ (z_const char *)"buffer error", /* Z_BUF_ERROR (-5) */
+ (z_const char *)"incompatible version",/* Z_VERSION_ERROR (-6) */
+ (z_const char *)""
+};
const char * ZEXPORT zlibVersion()
@@ -61,7 +58,7 @@ uLong ZEXPORT zlibCompileFlags()
case 8: flags += 2 << 6; break;
default: flags += 3 << 6;
}
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
flags += 1 << 8;
#endif
#if defined(ASMV) || defined(ASMINF)
@@ -115,8 +112,8 @@ uLong ZEXPORT zlibCompileFlags()
return flags;
}
-#ifdef DEBUG
-
+#ifdef ZLIB_DEBUG
+#include <stdlib.h>
# ifndef verbose
# define verbose 0
# endif
@@ -219,9 +216,11 @@ local ptr_table table[MAX_PTR];
voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
{
- voidpf buf = opaque; /* just to make some compilers happy */
+ voidpf buf;
ulg bsize = (ulg)items*size;
+ (void)opaque;
+
/* If we allocate less than 65520 bytes, we assume that farmalloc
* will return a usable pointer which doesn't have to be normalized.
*/
@@ -244,6 +243,9 @@ voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
{
int n;
+
+ (void)opaque;
+
if (*(ush*)&ptr != 0) { /* object < 64K */
farfree(ptr);
return;
@@ -259,7 +261,6 @@ void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
next_ptr--;
return;
}
- ptr = opaque; /* just to make some compilers happy */
Assert(0, "zcfree: ptr not found");
}
@@ -278,13 +279,13 @@ void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
{
- if (opaque) opaque = 0; /* to make compiler happy */
+ (void)opaque;
return _halloc((long)items, size);
}
void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
{
- if (opaque) opaque = 0; /* to make compiler happy */
+ (void)opaque;
_hfree(ptr);
}
@@ -306,7 +307,7 @@ voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
unsigned items;
unsigned size;
{
- if (opaque) items += size - size; /* make compiler happy */
+ (void)opaque;
return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
(voidpf)calloc(items, size);
}
@@ -315,8 +316,8 @@ void ZLIB_INTERNAL zcfree (opaque, ptr)
voidpf opaque;
voidpf ptr;
{
+ (void)opaque;
free(ptr);
- if (opaque) return; /* make compiler happy */
}
#endif /* MY_ZCALLOC */
diff --git a/src/Common/zlib/zutil.h b/src/Common/zlib/zutil.h
index 24ab06b..b079ea6 100644
--- a/src/Common/zlib/zutil.h
+++ b/src/Common/zlib/zutil.h
@@ -1,5 +1,5 @@
/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2013 Jean-loup Gailly.
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -36,7 +36,9 @@
#ifndef local
# define local static
#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
+/* since "static" is used to mean two completely different things in C, we
+ define "local" for the non-static meaning of "static", for readability
+ (compile with -Dlocal if your debugger can't find static symbols) */
typedef unsigned char uch;
typedef uch FAR uchf;
@@ -98,28 +100,38 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
#endif
#ifdef AMIGA
-# define OS_CODE 0x01
+# define OS_CODE 1
#endif
#if defined(VAXC) || defined(VMS)
-# define OS_CODE 0x02
+# define OS_CODE 2
# define F_OPEN(name, mode) \
fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
#endif
+#ifdef __370__
+# if __TARGET_LIB__ < 0x20000000
+# define OS_CODE 4
+# elif __TARGET_LIB__ < 0x40000000
+# define OS_CODE 11
+# else
+# define OS_CODE 8
+# endif
+#endif
+
#if defined(ATARI) || defined(atarist)
-# define OS_CODE 0x05
+# define OS_CODE 5
#endif
#ifdef OS2
-# define OS_CODE 0x06
+# define OS_CODE 6
# if defined(M_I86) && !defined(Z_SOLO)
# include <malloc.h>
# endif
#endif
#if defined(MACOS) || defined(TARGET_OS_MAC)
-# define OS_CODE 0x07
+# define OS_CODE 7
# ifndef Z_SOLO
# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
# include <unix.h> /* for fdopen */
@@ -131,18 +143,24 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
# endif
#endif
-#ifdef TOPS20
-# define OS_CODE 0x0a
+#ifdef __acorn
+# define OS_CODE 13
#endif
-#ifdef WIN32
-# ifndef __CYGWIN__ /* Cygwin is Unix, not Win32 */
-# define OS_CODE 0x0b
-# endif
+#if defined(WIN32) && !defined(__CYGWIN__)
+# define OS_CODE 10
+#endif
+
+#ifdef _BEOS_
+# define OS_CODE 16
+#endif
+
+#ifdef __TOS_OS400__
+# define OS_CODE 18
#endif
-#ifdef __50SERIES /* Prime/PRIMOS */
-# define OS_CODE 0x0f
+#ifdef __APPLE__
+# define OS_CODE 19
#endif
#if defined(_BEOS_) || defined(RISCOS)
@@ -177,7 +195,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
/* common defaults */
#ifndef OS_CODE
-# define OS_CODE 0x03 /* assume Unix */
+# define OS_CODE 3 /* assume Unix */
#endif
#ifndef F_OPEN
@@ -216,7 +234,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
#endif
/* Diagnostic functions */
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
# include <stdio.h>
extern int ZLIB_INTERNAL z_verbose;
extern void ZLIB_INTERNAL z_error OF((char *m));
diff --git a/src/Core/Core.h b/src/Core/Core.h
index 50c00e9..97e35b2 100644
--- a/src/Core/Core.h
+++ b/src/Core/Core.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Core.make b/src/Core/Core.make
index f3fc340..66aba90 100644
--- a/src/Core/Core.make
+++ b/src/Core/Core.make
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
diff --git a/src/Core/CoreBase.cpp b/src/Core/CoreBase.cpp
index 1703fee..c22a50c 100644
--- a/src/Core/CoreBase.cpp
+++ b/src/Core/CoreBase.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/CoreBase.h b/src/Core/CoreBase.h
index 34ce9b4..eb830ba 100644
--- a/src/Core/CoreBase.h
+++ b/src/Core/CoreBase.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/CoreException.cpp b/src/Core/CoreException.cpp
index 9f0bf04..9284d71 100644
--- a/src/Core/CoreException.cpp
+++ b/src/Core/CoreException.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/CoreException.h b/src/Core/CoreException.h
index 36dc182..8eab1b8 100644
--- a/src/Core/CoreException.h
+++ b/src/Core/CoreException.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/FatFormatter.cpp b/src/Core/FatFormatter.cpp
index 9fb54ff..fa32783 100644
--- a/src/Core/FatFormatter.cpp
+++ b/src/Core/FatFormatter.cpp
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -153,8 +153,8 @@ namespace VeraCrypt
{
int cnt = 0;
- boot[cnt++] = 0xeb; /* boot jump */
- boot[cnt++] = 0x3c;
+ boot[cnt++] = 0xeb; /* boot jump */
+ boot[cnt++] = (ft->size_fat == 32)? 0x58: 0x3c;
boot[cnt++] = 0x90;
memcpy (boot + cnt, "MSDOS5.0", 8); /* system id */
cnt += 8;
diff --git a/src/Core/FatFormatter.h b/src/Core/FatFormatter.h
index 3b12952..17f4dd3 100644
--- a/src/Core/FatFormatter.h
+++ b/src/Core/FatFormatter.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/HostDevice.cpp b/src/Core/HostDevice.cpp
index 6978809..f48d84d 100644
--- a/src/Core/HostDevice.cpp
+++ b/src/Core/HostDevice.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/HostDevice.h b/src/Core/HostDevice.h
index a790878..48adf32 100644
--- a/src/Core/HostDevice.h
+++ b/src/Core/HostDevice.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/MountOptions.cpp b/src/Core/MountOptions.cpp
index 29f554e..52e1239 100644
--- a/src/Core/MountOptions.cpp
+++ b/src/Core/MountOptions.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/MountOptions.h b/src/Core/MountOptions.h
index 2dcc5e1..83a8bff 100644
--- a/src/Core/MountOptions.h
+++ b/src/Core/MountOptions.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/RandomNumberGenerator.cpp b/src/Core/RandomNumberGenerator.cpp
index ea05fe6..fffd948 100644
--- a/src/Core/RandomNumberGenerator.cpp
+++ b/src/Core/RandomNumberGenerator.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/RandomNumberGenerator.h b/src/Core/RandomNumberGenerator.h
index 5348230..2d1d314 100644
--- a/src/Core/RandomNumberGenerator.h
+++ b/src/Core/RandomNumberGenerator.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreService.cpp b/src/Core/Unix/CoreService.cpp
index caa8c2b..77d55b2 100644
--- a/src/Core/Unix/CoreService.cpp
+++ b/src/Core/Unix/CoreService.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreService.h b/src/Core/Unix/CoreService.h
index 4dce35a..e25b856 100644
--- a/src/Core/Unix/CoreService.h
+++ b/src/Core/Unix/CoreService.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreServiceProxy.h b/src/Core/Unix/CoreServiceProxy.h
index 33b2be0..f5bbae3 100644
--- a/src/Core/Unix/CoreServiceProxy.h
+++ b/src/Core/Unix/CoreServiceProxy.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreServiceRequest.cpp b/src/Core/Unix/CoreServiceRequest.cpp
index 51e26c0..98101ba 100644
--- a/src/Core/Unix/CoreServiceRequest.cpp
+++ b/src/Core/Unix/CoreServiceRequest.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreServiceRequest.h b/src/Core/Unix/CoreServiceRequest.h
index b6798e4..5b12cc1 100644
--- a/src/Core/Unix/CoreServiceRequest.h
+++ b/src/Core/Unix/CoreServiceRequest.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreServiceResponse.cpp b/src/Core/Unix/CoreServiceResponse.cpp
index e56ac12..b53b8a3 100644
--- a/src/Core/Unix/CoreServiceResponse.cpp
+++ b/src/Core/Unix/CoreServiceResponse.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreServiceResponse.h b/src/Core/Unix/CoreServiceResponse.h
index 24c7b64..1f4c675 100644
--- a/src/Core/Unix/CoreServiceResponse.h
+++ b/src/Core/Unix/CoreServiceResponse.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreUnix.cpp b/src/Core/Unix/CoreUnix.cpp
index 1228703..0fc69ee 100644
--- a/src/Core/Unix/CoreUnix.cpp
+++ b/src/Core/Unix/CoreUnix.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/CoreUnix.h b/src/Core/Unix/CoreUnix.h
index 4d12d4b..586d4df 100644
--- a/src/Core/Unix/CoreUnix.h
+++ b/src/Core/Unix/CoreUnix.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/FreeBSD/CoreFreeBSD.cpp b/src/Core/Unix/FreeBSD/CoreFreeBSD.cpp
index 2dd6be0..ff3e04b 100644
--- a/src/Core/Unix/FreeBSD/CoreFreeBSD.cpp
+++ b/src/Core/Unix/FreeBSD/CoreFreeBSD.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/FreeBSD/CoreFreeBSD.h b/src/Core/Unix/FreeBSD/CoreFreeBSD.h
index c7d496f..453f644 100644
--- a/src/Core/Unix/FreeBSD/CoreFreeBSD.h
+++ b/src/Core/Unix/FreeBSD/CoreFreeBSD.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/FreeBSD/System.h b/src/Core/Unix/FreeBSD/System.h
index 26daade..b5e28f3 100644
--- a/src/Core/Unix/FreeBSD/System.h
+++ b/src/Core/Unix/FreeBSD/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/Linux/CoreLinux.cpp b/src/Core/Unix/Linux/CoreLinux.cpp
index 5ae29e5..0840d24 100644
--- a/src/Core/Unix/Linux/CoreLinux.cpp
+++ b/src/Core/Unix/Linux/CoreLinux.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/Linux/CoreLinux.h b/src/Core/Unix/Linux/CoreLinux.h
index d31ba57..9af801e 100644
--- a/src/Core/Unix/Linux/CoreLinux.h
+++ b/src/Core/Unix/Linux/CoreLinux.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/Linux/System.h b/src/Core/Unix/Linux/System.h
index 3acfa16..0ec1daf 100644
--- a/src/Core/Unix/Linux/System.h
+++ b/src/Core/Unix/Linux/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/MacOSX/CoreMacOSX.cpp b/src/Core/Unix/MacOSX/CoreMacOSX.cpp
index 5088c94..251e4c6 100644
--- a/src/Core/Unix/MacOSX/CoreMacOSX.cpp
+++ b/src/Core/Unix/MacOSX/CoreMacOSX.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/MacOSX/CoreMacOSX.h b/src/Core/Unix/MacOSX/CoreMacOSX.h
index 5b190e4..d2c70a8 100644
--- a/src/Core/Unix/MacOSX/CoreMacOSX.h
+++ b/src/Core/Unix/MacOSX/CoreMacOSX.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/MacOSX/System.h b/src/Core/Unix/MacOSX/System.h
index 5931628..d187877 100644
--- a/src/Core/Unix/MacOSX/System.h
+++ b/src/Core/Unix/MacOSX/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/MountedFilesystem.h b/src/Core/Unix/MountedFilesystem.h
index f47fc94..3f6bd3e 100644
--- a/src/Core/Unix/MountedFilesystem.h
+++ b/src/Core/Unix/MountedFilesystem.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/Solaris/CoreSolaris.cpp b/src/Core/Unix/Solaris/CoreSolaris.cpp
index 1e99d98..5705e1c 100644
--- a/src/Core/Unix/Solaris/CoreSolaris.cpp
+++ b/src/Core/Unix/Solaris/CoreSolaris.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/Solaris/CoreSolaris.h b/src/Core/Unix/Solaris/CoreSolaris.h
index 2e9dbc1..d36f03f 100644
--- a/src/Core/Unix/Solaris/CoreSolaris.h
+++ b/src/Core/Unix/Solaris/CoreSolaris.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/Solaris/System.h b/src/Core/Unix/Solaris/System.h
index e8b05da..7351346 100644
--- a/src/Core/Unix/Solaris/System.h
+++ b/src/Core/Unix/Solaris/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/Unix/System.h b/src/Core/Unix/System.h
index 3038490..7225dae 100644
--- a/src/Core/Unix/System.h
+++ b/src/Core/Unix/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/VolumeCreator.cpp b/src/Core/VolumeCreator.cpp
index 403e0c6..1cc45b2 100644
--- a/src/Core/VolumeCreator.cpp
+++ b/src/Core/VolumeCreator.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Core/VolumeCreator.h b/src/Core/VolumeCreator.h
index 55f51e5..4f56308 100644
--- a/src/Core/VolumeCreator.h
+++ b/src/Core/VolumeCreator.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Crypto/Aes_hw_cpu.asm b/src/Crypto/Aes_hw_cpu.asm
index edc20b2..c8df89f 100644
--- a/src/Crypto/Aes_hw_cpu.asm
+++ b/src/Crypto/Aes_hw_cpu.asm
@@ -8,11 +8,11 @@
%ifidn __BITS__, 16
- %define R e
+ %define R(x) e %+ x
%elifidn __BITS__, 32
- %define R e
+ %define R(x) e %+ x
%elifidn __BITS__, 64
- %define R r
+ %define R(x) r %+ x
%endif
@@ -105,25 +105,25 @@
; Load data blocks
%assign block 1
%rep BLOCK_COUNT
- movdqu xmm%[block], [%[R]dx + 16 * (block - 1)]
+ movdqu xmm %+ block, [R(dx) + 16 * (block - 1)]
%assign block block+1
%endrep
; Encrypt/decrypt data blocks
%assign round 0
%rep 15
- movdqu xmm0, [%[R]cx + 16 * round]
+ movdqu xmm0, [R(cx) + 16 * round]
%assign block 1
%rep BLOCK_COUNT
%if round = 0
- pxor xmm%[block], xmm0
+ pxor xmm %+ block, xmm0
%else
%if round < 14
- aes%[OPERATION] xmm%[block], xmm0
+ aes %+ OPERATION xmm %+ block, xmm0
%else
- aes%[OPERATION]last xmm%[block], xmm0
+ aes %+ OPERATION %+ last xmm %+ block, xmm0
%endif
%endif
@@ -136,7 +136,7 @@
; Store data blocks
%assign block 1
%rep BLOCK_COUNT
- movdqu [%[R]dx + 16 * (block - 1)], xmm%[block]
+ movdqu [R(dx) + 16 * (block - 1)], xmm %+ block
%assign block block+1
%endrep
@@ -162,14 +162,14 @@
mov eax, 32 / MAX_REG_BLOCK_COUNT
.1:
- aes_hw_cpu %[OPERATION_32_BLOCKS], MAX_REG_BLOCK_COUNT
+ aes_hw_cpu OPERATION_32_BLOCKS, MAX_REG_BLOCK_COUNT
- add %[R]dx, 16 * MAX_REG_BLOCK_COUNT
+ add R(dx), 16 * MAX_REG_BLOCK_COUNT
dec eax
jnz .1
%if (32 % MAX_REG_BLOCK_COUNT) != 0
- aes_hw_cpu %[OPERATION_32_BLOCKS], (32 % MAX_REG_BLOCK_COUNT)
+ aes_hw_cpu OPERATION_32_BLOCKS, (32 % MAX_REG_BLOCK_COUNT)
%endif
%ifidn __OUTPUT_FORMAT__, win64
@@ -201,9 +201,9 @@
; void aes_hw_cpu_enable_sse ();
export_function aes_hw_cpu_enable_sse
- mov %[R]ax, cr4
+ mov R(ax), cr4
or ax, 1 << 9
- mov cr4, %[R]ax
+ mov cr4, R(ax)
ret
@@ -290,7 +290,7 @@
; that supports Hyper-V detection workaround
;
; export_function is_aes_hw_cpu_supported
-; push %[R]bx
+; push R(bx)
;
; mov eax, 1
; cpuid
@@ -298,7 +298,7 @@
; shr eax, 25
; and eax, 1
;
-; pop %[R]bx
+; pop R(bx)
; ret
@@ -331,3 +331,14 @@
%endif ; __BITS__ != 16
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+
diff --git a/src/Crypto/Aes_hw_cpu.h b/src/Crypto/Aes_hw_cpu.h
index 1265ac4..8977cbc 100644
--- a/src/Crypto/Aes_hw_cpu.h
+++ b/src/Crypto/Aes_hw_cpu.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Crypto/Aes_x64.asm b/src/Crypto/Aes_x64.asm
index f74d032..65965af 100644
--- a/src/Crypto/Aes_x64.asm
+++ b/src/Crypto/Aes_x64.asm
@@ -905,3 +905,14 @@ end_prologue
%endif
%endif
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+
diff --git a/src/Crypto/Aes_x86.asm b/src/Crypto/Aes_x86.asm
index 484e31a..c45f790 100644
--- a/src/Crypto/Aes_x86.asm
+++ b/src/Crypto/Aes_x86.asm
@@ -644,3 +644,14 @@ stk_spc equ 20 ; stack space
do_exit
%endif
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+
diff --git a/src/Crypto/Camellia.c b/src/Crypto/Camellia.c
index c9f1e56..49bc767 100644
--- a/src/Crypto/Camellia.c
+++ b/src/Crypto/Camellia.c
@@ -1,16 +1,1178 @@
+#include "Camellia.h"
+#include "Common/Endian.h"
+#include "Crypto/cpu.h"
+#include "Crypto/misc.h"
+
+#if CRYPTOPP_BOOL_X64
+
+/* camellia.c ver 1.2.0-x86_64_asm1.1
+ *
+ * Copyright (c) 2006,2007
+ * NTT (Nippon Telegraph and Telephone Corporation) . All rights reserved.
+ *
+ * SuperCop integration:
+ * Copyright © 2013 Jussi Kivilinna <jussi.kivilinna@iki.fi>
+ *
+ * VeraCrypt integration:
+ * Copyright © 2017 Mounir IDRASSI <mounir.idrassi@idrix.fr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer as
+ * the first lines of this file unmodified.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NTT ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL NTT BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
/*
-This code is written by kerukuro for cppcrypto library (http://cppcrypto.sourceforge.net/)
-and released into public domain.
-*/
+ * Algorithm Specification
+ * http://info.isl.ntt.co.jp/crypt/eng/camellia/specifications.html
+ */
/* Adapted for VeraCrypt */
+#include "Common/Crypto.h"
-#include "Camellia.h"
-#include "Common/Endian.h"
-#include "Crypto/misc.h"
+#ifndef _WIN32
+extern int IsAesHwCpuSupported ();
+#endif
+void camellia_encrypt_asm(const byte *ctx, void *dst, const void *src);
+void camellia_decrypt_asm(const byte *ctx, void *dst, const void *src);
+void camellia_enc_blk2(const byte *ctx, byte *dst, const byte *src);
+void camellia_dec_blk2(const byte *ctx, byte *dst, const byte *src);
+void camellia_ecb_enc_16way(const byte *ctx, byte *dst, const byte *src);
+void camellia_ecb_dec_16way(const byte *ctx, byte *dst, const byte *src);
+
+/* key constants */
+
+#define CAMELLIA_SIGMA1L (0xA09E667FL)
+#define CAMELLIA_SIGMA1R (0x3BCC908BL)
+#define CAMELLIA_SIGMA2L (0xB67AE858L)
+#define CAMELLIA_SIGMA2R (0x4CAA73B2L)
+#define CAMELLIA_SIGMA3L (0xC6EF372FL)
+#define CAMELLIA_SIGMA3R (0xE94F82BEL)
+#define CAMELLIA_SIGMA4L (0x54FF53A5L)
+#define CAMELLIA_SIGMA4R (0xF1D36F1CL)
+#define CAMELLIA_SIGMA5L (0x10E527FAL)
+#define CAMELLIA_SIGMA5R (0xDE682D1DL)
+#define CAMELLIA_SIGMA6L (0xB05688C2L)
+#define CAMELLIA_SIGMA6R (0xB3E6C1FDL)
+/*
+ * macros
+ */
+
+
+# define GETU32(p) bswap_32(*((uint32 *)(p)))
+# define PUTU32(ct, st) {*((uint32 *)(ct)) = bswap_32((st));}
+
+#define CamelliaSubkeyL(INDEX) (subkey[(INDEX)*2])
+#define CamelliaSubkeyR(INDEX) (subkey[(INDEX)*2 + 1])
+
+/* rotation right shift 1byte */
+#define CAMELLIA_RR8(x) (((x) >> 8) + ((x) << 24))
+/* rotation left shift 1bit */
+#define CAMELLIA_RL1(x) (((x) << 1) + ((x) >> 31))
+/* rotation left shift 1byte */
+#define CAMELLIA_RL8(x) (((x) << 8) + ((x) >> 24))
+
+#define CAMELLIA_ROLDQ(ll, lr, rl, rr, w0, w1, bits) \
+ do { \
+ w0 = ll; \
+ ll = (ll << bits) + (lr >> (32 - bits)); \
+ lr = (lr << bits) + (rl >> (32 - bits)); \
+ rl = (rl << bits) + (rr >> (32 - bits)); \
+ rr = (rr << bits) + (w0 >> (32 - bits)); \
+ } while(0)
+
+#define CAMELLIA_ROLDQo32(ll, lr, rl, rr, w0, w1, bits) \
+ do { \
+ w0 = ll; \
+ w1 = lr; \
+ ll = (lr << (bits - 32)) + (rl >> (64 - bits)); \
+ lr = (rl << (bits - 32)) + (rr >> (64 - bits)); \
+ rl = (rr << (bits - 32)) + (w0 >> (64 - bits)); \
+ rr = (w0 << (bits - 32)) + (w1 >> (64 - bits)); \
+ } while(0)
+
+#define CAMELLIA_SP11101110(INDEX) (camellia_sp11101110[(INDEX)])
+#define CAMELLIA_SP02220222(INDEX) (camellia_sp02220222[(INDEX)])
+#define CAMELLIA_SP30333033(INDEX) (camellia_sp30333033[(INDEX)])
+#define CAMELLIA_SP44044404(INDEX) (camellia_sp44044404[(INDEX)])
+
+#define CAMELLIA_SP10011110(INDEX) (camellia_sp10011110[(INDEX)])
+#define CAMELLIA_SP22000222(INDEX) (camellia_sp22000222[(INDEX)])
+#define CAMELLIA_SP03303033(INDEX) (camellia_sp03303033[(INDEX)])
+#define CAMELLIA_SP00444404(INDEX) (camellia_sp00444404[(INDEX)])
+
+#define CAMELLIA_F(xl, xr, kl, kr, yl, yr, il, ir, t0, t1) \
+ do { \
+ uint64 __tmp; \
+ il = xl ^ kl; \
+ ir = xr ^ kr; \
+ t0 = il >> 16; \
+ t1 = ir >> 16; \
+ __tmp = CAMELLIA_SP11101110(ir & 0xff) \
+ ^ CAMELLIA_SP02220222((t1 >> 8) & 0xff) \
+ ^ CAMELLIA_SP30333033(t1 & 0xff) \
+ ^ CAMELLIA_SP44044404((ir >> 8) & 0xff) \
+ ^ CAMELLIA_SP10011110((t0 >> 8) & 0xff) \
+ ^ CAMELLIA_SP22000222(t0 & 0xff) \
+ ^ CAMELLIA_SP03303033((il >> 8) & 0xff) \
+ ^ CAMELLIA_SP00444404(il & 0xff); \
+ yl = (uint32) __tmp; \
+ yr = (uint32) (__tmp >> 32); \
+ } while(0)
+
+const uint64 camellia_sp10011110[256] = {
+ 0x7000007070707000ULL, 0x8200008282828200ULL, 0x2c00002c2c2c2c00ULL,
+ 0xec0000ecececec00ULL, 0xb30000b3b3b3b300ULL, 0x2700002727272700ULL,
+ 0xc00000c0c0c0c000ULL, 0xe50000e5e5e5e500ULL, 0xe40000e4e4e4e400ULL,
+ 0x8500008585858500ULL, 0x5700005757575700ULL, 0x3500003535353500ULL,
+ 0xea0000eaeaeaea00ULL, 0x0c00000c0c0c0c00ULL, 0xae0000aeaeaeae00ULL,
+ 0x4100004141414100ULL, 0x2300002323232300ULL, 0xef0000efefefef00ULL,
+ 0x6b00006b6b6b6b00ULL, 0x9300009393939300ULL, 0x4500004545454500ULL,
+ 0x1900001919191900ULL, 0xa50000a5a5a5a500ULL, 0x2100002121212100ULL,
+ 0xed0000edededed00ULL, 0x0e00000e0e0e0e00ULL, 0x4f00004f4f4f4f00ULL,
+ 0x4e00004e4e4e4e00ULL, 0x1d00001d1d1d1d00ULL, 0x6500006565656500ULL,
+ 0x9200009292929200ULL, 0xbd0000bdbdbdbd00ULL, 0x8600008686868600ULL,
+ 0xb80000b8b8b8b800ULL, 0xaf0000afafafaf00ULL, 0x8f00008f8f8f8f00ULL,
+ 0x7c00007c7c7c7c00ULL, 0xeb0000ebebebeb00ULL, 0x1f00001f1f1f1f00ULL,
+ 0xce0000cececece00ULL, 0x3e00003e3e3e3e00ULL, 0x3000003030303000ULL,
+ 0xdc0000dcdcdcdc00ULL, 0x5f00005f5f5f5f00ULL, 0x5e00005e5e5e5e00ULL,
+ 0xc50000c5c5c5c500ULL, 0x0b00000b0b0b0b00ULL, 0x1a00001a1a1a1a00ULL,
+ 0xa60000a6a6a6a600ULL, 0xe10000e1e1e1e100ULL, 0x3900003939393900ULL,
+ 0xca0000cacacaca00ULL, 0xd50000d5d5d5d500ULL, 0x4700004747474700ULL,
+ 0x5d00005d5d5d5d00ULL, 0x3d00003d3d3d3d00ULL, 0xd90000d9d9d9d900ULL,
+ 0x0100000101010100ULL, 0x5a00005a5a5a5a00ULL, 0xd60000d6d6d6d600ULL,
+ 0x5100005151515100ULL, 0x5600005656565600ULL, 0x6c00006c6c6c6c00ULL,
+ 0x4d00004d4d4d4d00ULL, 0x8b00008b8b8b8b00ULL, 0x0d00000d0d0d0d00ULL,
+ 0x9a00009a9a9a9a00ULL, 0x6600006666666600ULL, 0xfb0000fbfbfbfb00ULL,
+ 0xcc0000cccccccc00ULL, 0xb00000b0b0b0b000ULL, 0x2d00002d2d2d2d00ULL,
+ 0x7400007474747400ULL, 0x1200001212121200ULL, 0x2b00002b2b2b2b00ULL,
+ 0x2000002020202000ULL, 0xf00000f0f0f0f000ULL, 0xb10000b1b1b1b100ULL,
+ 0x8400008484848400ULL, 0x9900009999999900ULL, 0xdf0000dfdfdfdf00ULL,
+ 0x4c00004c4c4c4c00ULL, 0xcb0000cbcbcbcb00ULL, 0xc20000c2c2c2c200ULL,
+ 0x3400003434343400ULL, 0x7e00007e7e7e7e00ULL, 0x7600007676767600ULL,
+ 0x0500000505050500ULL, 0x6d00006d6d6d6d00ULL, 0xb70000b7b7b7b700ULL,
+ 0xa90000a9a9a9a900ULL, 0x3100003131313100ULL, 0xd10000d1d1d1d100ULL,
+ 0x1700001717171700ULL, 0x0400000404040400ULL, 0xd70000d7d7d7d700ULL,
+ 0x1400001414141400ULL, 0x5800005858585800ULL, 0x3a00003a3a3a3a00ULL,
+ 0x6100006161616100ULL, 0xde0000dededede00ULL, 0x1b00001b1b1b1b00ULL,
+ 0x1100001111111100ULL, 0x1c00001c1c1c1c00ULL, 0x3200003232323200ULL,
+ 0x0f00000f0f0f0f00ULL, 0x9c00009c9c9c9c00ULL, 0x1600001616161600ULL,
+ 0x5300005353535300ULL, 0x1800001818181800ULL, 0xf20000f2f2f2f200ULL,
+ 0x2200002222222200ULL, 0xfe0000fefefefe00ULL, 0x4400004444444400ULL,
+ 0xcf0000cfcfcfcf00ULL, 0xb20000b2b2b2b200ULL, 0xc30000c3c3c3c300ULL,
+ 0xb50000b5b5b5b500ULL, 0x7a00007a7a7a7a00ULL, 0x9100009191919100ULL,
+ 0x2400002424242400ULL, 0x0800000808080800ULL, 0xe80000e8e8e8e800ULL,
+ 0xa80000a8a8a8a800ULL, 0x6000006060606000ULL, 0xfc0000fcfcfcfc00ULL,
+ 0x6900006969696900ULL, 0x5000005050505000ULL, 0xaa0000aaaaaaaa00ULL,
+ 0xd00000d0d0d0d000ULL, 0xa00000a0a0a0a000ULL, 0x7d00007d7d7d7d00ULL,
+ 0xa10000a1a1a1a100ULL, 0x8900008989898900ULL, 0x6200006262626200ULL,
+ 0x9700009797979700ULL, 0x5400005454545400ULL, 0x5b00005b5b5b5b00ULL,
+ 0x1e00001e1e1e1e00ULL, 0x9500009595959500ULL, 0xe00000e0e0e0e000ULL,
+ 0xff0000ffffffff00ULL, 0x6400006464646400ULL, 0xd20000d2d2d2d200ULL,
+ 0x1000001010101000ULL, 0xc40000c4c4c4c400ULL, 0x0000000000000000ULL,
+ 0x4800004848484800ULL, 0xa30000a3a3a3a300ULL, 0xf70000f7f7f7f700ULL,
+ 0x7500007575757500ULL, 0xdb0000dbdbdbdb00ULL, 0x8a00008a8a8a8a00ULL,
+ 0x0300000303030300ULL, 0xe60000e6e6e6e600ULL, 0xda0000dadadada00ULL,
+ 0x0900000909090900ULL, 0x3f00003f3f3f3f00ULL, 0xdd0000dddddddd00ULL,
+ 0x9400009494949400ULL, 0x8700008787878700ULL, 0x5c00005c5c5c5c00ULL,
+ 0x8300008383838300ULL, 0x0200000202020200ULL, 0xcd0000cdcdcdcd00ULL,
+ 0x4a00004a4a4a4a00ULL, 0x9000009090909000ULL, 0x3300003333333300ULL,
+ 0x7300007373737300ULL, 0x6700006767676700ULL, 0xf60000f6f6f6f600ULL,
+ 0xf30000f3f3f3f300ULL, 0x9d00009d9d9d9d00ULL, 0x7f00007f7f7f7f00ULL,
+ 0xbf0000bfbfbfbf00ULL, 0xe20000e2e2e2e200ULL, 0x5200005252525200ULL,
+ 0x9b00009b9b9b9b00ULL, 0xd80000d8d8d8d800ULL, 0x2600002626262600ULL,
+ 0xc80000c8c8c8c800ULL, 0x3700003737373700ULL, 0xc60000c6c6c6c600ULL,
+ 0x3b00003b3b3b3b00ULL, 0x8100008181818100ULL, 0x9600009696969600ULL,
+ 0x6f00006f6f6f6f00ULL, 0x4b00004b4b4b4b00ULL, 0x1300001313131300ULL,
+ 0xbe0000bebebebe00ULL, 0x6300006363636300ULL, 0x2e00002e2e2e2e00ULL,
+ 0xe90000e9e9e9e900ULL, 0x7900007979797900ULL, 0xa70000a7a7a7a700ULL,
+ 0x8c00008c8c8c8c00ULL, 0x9f00009f9f9f9f00ULL, 0x6e00006e6e6e6e00ULL,
+ 0xbc0000bcbcbcbc00ULL, 0x8e00008e8e8e8e00ULL, 0x2900002929292900ULL,
+ 0xf50000f5f5f5f500ULL, 0xf90000f9f9f9f900ULL, 0xb60000b6b6b6b600ULL,
+ 0x2f00002f2f2f2f00ULL, 0xfd0000fdfdfdfd00ULL, 0xb40000b4b4b4b400ULL,
+ 0x5900005959595900ULL, 0x7800007878787800ULL, 0x9800009898989800ULL,
+ 0x0600000606060600ULL, 0x6a00006a6a6a6a00ULL, 0xe70000e7e7e7e700ULL,
+ 0x4600004646464600ULL, 0x7100007171717100ULL, 0xba0000babababa00ULL,
+ 0xd40000d4d4d4d400ULL, 0x2500002525252500ULL, 0xab0000abababab00ULL,
+ 0x4200004242424200ULL, 0x8800008888888800ULL, 0xa20000a2a2a2a200ULL,
+ 0x8d00008d8d8d8d00ULL, 0xfa0000fafafafa00ULL, 0x7200007272727200ULL,
+ 0x0700000707070700ULL, 0xb90000b9b9b9b900ULL, 0x5500005555555500ULL,
+ 0xf80000f8f8f8f800ULL, 0xee0000eeeeeeee00ULL, 0xac0000acacacac00ULL,
+ 0x0a00000a0a0a0a00ULL, 0x3600003636363600ULL, 0x4900004949494900ULL,
+ 0x2a00002a2a2a2a00ULL, 0x6800006868686800ULL, 0x3c00003c3c3c3c00ULL,
+ 0x3800003838383800ULL, 0xf10000f1f1f1f100ULL, 0xa40000a4a4a4a400ULL,
+ 0x4000004040404000ULL, 0x2800002828282800ULL, 0xd30000d3d3d3d300ULL,
+ 0x7b00007b7b7b7b00ULL, 0xbb0000bbbbbbbb00ULL, 0xc90000c9c9c9c900ULL,
+ 0x4300004343434300ULL, 0xc10000c1c1c1c100ULL, 0x1500001515151500ULL,
+ 0xe30000e3e3e3e300ULL, 0xad0000adadadad00ULL, 0xf40000f4f4f4f400ULL,
+ 0x7700007777777700ULL, 0xc70000c7c7c7c700ULL, 0x8000008080808000ULL,
+ 0x9e00009e9e9e9e00ULL,
+};
+
+const uint64 camellia_sp22000222[256] = {
+ 0xe0e0000000e0e0e0ULL, 0x0505000000050505ULL, 0x5858000000585858ULL,
+ 0xd9d9000000d9d9d9ULL, 0x6767000000676767ULL, 0x4e4e0000004e4e4eULL,
+ 0x8181000000818181ULL, 0xcbcb000000cbcbcbULL, 0xc9c9000000c9c9c9ULL,
+ 0x0b0b0000000b0b0bULL, 0xaeae000000aeaeaeULL, 0x6a6a0000006a6a6aULL,
+ 0xd5d5000000d5d5d5ULL, 0x1818000000181818ULL, 0x5d5d0000005d5d5dULL,
+ 0x8282000000828282ULL, 0x4646000000464646ULL, 0xdfdf000000dfdfdfULL,
+ 0xd6d6000000d6d6d6ULL, 0x2727000000272727ULL, 0x8a8a0000008a8a8aULL,
+ 0x3232000000323232ULL, 0x4b4b0000004b4b4bULL, 0x4242000000424242ULL,
+ 0xdbdb000000dbdbdbULL, 0x1c1c0000001c1c1cULL, 0x9e9e0000009e9e9eULL,
+ 0x9c9c0000009c9c9cULL, 0x3a3a0000003a3a3aULL, 0xcaca000000cacacaULL,
+ 0x2525000000252525ULL, 0x7b7b0000007b7b7bULL, 0x0d0d0000000d0d0dULL,
+ 0x7171000000717171ULL, 0x5f5f0000005f5f5fULL, 0x1f1f0000001f1f1fULL,
+ 0xf8f8000000f8f8f8ULL, 0xd7d7000000d7d7d7ULL, 0x3e3e0000003e3e3eULL,
+ 0x9d9d0000009d9d9dULL, 0x7c7c0000007c7c7cULL, 0x6060000000606060ULL,
+ 0xb9b9000000b9b9b9ULL, 0xbebe000000bebebeULL, 0xbcbc000000bcbcbcULL,
+ 0x8b8b0000008b8b8bULL, 0x1616000000161616ULL, 0x3434000000343434ULL,
+ 0x4d4d0000004d4d4dULL, 0xc3c3000000c3c3c3ULL, 0x7272000000727272ULL,
+ 0x9595000000959595ULL, 0xabab000000abababULL, 0x8e8e0000008e8e8eULL,
+ 0xbaba000000bababaULL, 0x7a7a0000007a7a7aULL, 0xb3b3000000b3b3b3ULL,
+ 0x0202000000020202ULL, 0xb4b4000000b4b4b4ULL, 0xadad000000adadadULL,
+ 0xa2a2000000a2a2a2ULL, 0xacac000000acacacULL, 0xd8d8000000d8d8d8ULL,
+ 0x9a9a0000009a9a9aULL, 0x1717000000171717ULL, 0x1a1a0000001a1a1aULL,
+ 0x3535000000353535ULL, 0xcccc000000ccccccULL, 0xf7f7000000f7f7f7ULL,
+ 0x9999000000999999ULL, 0x6161000000616161ULL, 0x5a5a0000005a5a5aULL,
+ 0xe8e8000000e8e8e8ULL, 0x2424000000242424ULL, 0x5656000000565656ULL,
+ 0x4040000000404040ULL, 0xe1e1000000e1e1e1ULL, 0x6363000000636363ULL,
+ 0x0909000000090909ULL, 0x3333000000333333ULL, 0xbfbf000000bfbfbfULL,
+ 0x9898000000989898ULL, 0x9797000000979797ULL, 0x8585000000858585ULL,
+ 0x6868000000686868ULL, 0xfcfc000000fcfcfcULL, 0xecec000000ecececULL,
+ 0x0a0a0000000a0a0aULL, 0xdada000000dadadaULL, 0x6f6f0000006f6f6fULL,
+ 0x5353000000535353ULL, 0x6262000000626262ULL, 0xa3a3000000a3a3a3ULL,
+ 0x2e2e0000002e2e2eULL, 0x0808000000080808ULL, 0xafaf000000afafafULL,
+ 0x2828000000282828ULL, 0xb0b0000000b0b0b0ULL, 0x7474000000747474ULL,
+ 0xc2c2000000c2c2c2ULL, 0xbdbd000000bdbdbdULL, 0x3636000000363636ULL,
+ 0x2222000000222222ULL, 0x3838000000383838ULL, 0x6464000000646464ULL,
+ 0x1e1e0000001e1e1eULL, 0x3939000000393939ULL, 0x2c2c0000002c2c2cULL,
+ 0xa6a6000000a6a6a6ULL, 0x3030000000303030ULL, 0xe5e5000000e5e5e5ULL,
+ 0x4444000000444444ULL, 0xfdfd000000fdfdfdULL, 0x8888000000888888ULL,
+ 0x9f9f0000009f9f9fULL, 0x6565000000656565ULL, 0x8787000000878787ULL,
+ 0x6b6b0000006b6b6bULL, 0xf4f4000000f4f4f4ULL, 0x2323000000232323ULL,
+ 0x4848000000484848ULL, 0x1010000000101010ULL, 0xd1d1000000d1d1d1ULL,
+ 0x5151000000515151ULL, 0xc0c0000000c0c0c0ULL, 0xf9f9000000f9f9f9ULL,
+ 0xd2d2000000d2d2d2ULL, 0xa0a0000000a0a0a0ULL, 0x5555000000555555ULL,
+ 0xa1a1000000a1a1a1ULL, 0x4141000000414141ULL, 0xfafa000000fafafaULL,
+ 0x4343000000434343ULL, 0x1313000000131313ULL, 0xc4c4000000c4c4c4ULL,
+ 0x2f2f0000002f2f2fULL, 0xa8a8000000a8a8a8ULL, 0xb6b6000000b6b6b6ULL,
+ 0x3c3c0000003c3c3cULL, 0x2b2b0000002b2b2bULL, 0xc1c1000000c1c1c1ULL,
+ 0xffff000000ffffffULL, 0xc8c8000000c8c8c8ULL, 0xa5a5000000a5a5a5ULL,
+ 0x2020000000202020ULL, 0x8989000000898989ULL, 0x0000000000000000ULL,
+ 0x9090000000909090ULL, 0x4747000000474747ULL, 0xefef000000efefefULL,
+ 0xeaea000000eaeaeaULL, 0xb7b7000000b7b7b7ULL, 0x1515000000151515ULL,
+ 0x0606000000060606ULL, 0xcdcd000000cdcdcdULL, 0xb5b5000000b5b5b5ULL,
+ 0x1212000000121212ULL, 0x7e7e0000007e7e7eULL, 0xbbbb000000bbbbbbULL,
+ 0x2929000000292929ULL, 0x0f0f0000000f0f0fULL, 0xb8b8000000b8b8b8ULL,
+ 0x0707000000070707ULL, 0x0404000000040404ULL, 0x9b9b0000009b9b9bULL,
+ 0x9494000000949494ULL, 0x2121000000212121ULL, 0x6666000000666666ULL,
+ 0xe6e6000000e6e6e6ULL, 0xcece000000cececeULL, 0xeded000000edededULL,
+ 0xe7e7000000e7e7e7ULL, 0x3b3b0000003b3b3bULL, 0xfefe000000fefefeULL,
+ 0x7f7f0000007f7f7fULL, 0xc5c5000000c5c5c5ULL, 0xa4a4000000a4a4a4ULL,
+ 0x3737000000373737ULL, 0xb1b1000000b1b1b1ULL, 0x4c4c0000004c4c4cULL,
+ 0x9191000000919191ULL, 0x6e6e0000006e6e6eULL, 0x8d8d0000008d8d8dULL,
+ 0x7676000000767676ULL, 0x0303000000030303ULL, 0x2d2d0000002d2d2dULL,
+ 0xdede000000dededeULL, 0x9696000000969696ULL, 0x2626000000262626ULL,
+ 0x7d7d0000007d7d7dULL, 0xc6c6000000c6c6c6ULL, 0x5c5c0000005c5c5cULL,
+ 0xd3d3000000d3d3d3ULL, 0xf2f2000000f2f2f2ULL, 0x4f4f0000004f4f4fULL,
+ 0x1919000000191919ULL, 0x3f3f0000003f3f3fULL, 0xdcdc000000dcdcdcULL,
+ 0x7979000000797979ULL, 0x1d1d0000001d1d1dULL, 0x5252000000525252ULL,
+ 0xebeb000000ebebebULL, 0xf3f3000000f3f3f3ULL, 0x6d6d0000006d6d6dULL,
+ 0x5e5e0000005e5e5eULL, 0xfbfb000000fbfbfbULL, 0x6969000000696969ULL,
+ 0xb2b2000000b2b2b2ULL, 0xf0f0000000f0f0f0ULL, 0x3131000000313131ULL,
+ 0x0c0c0000000c0c0cULL, 0xd4d4000000d4d4d4ULL, 0xcfcf000000cfcfcfULL,
+ 0x8c8c0000008c8c8cULL, 0xe2e2000000e2e2e2ULL, 0x7575000000757575ULL,
+ 0xa9a9000000a9a9a9ULL, 0x4a4a0000004a4a4aULL, 0x5757000000575757ULL,
+ 0x8484000000848484ULL, 0x1111000000111111ULL, 0x4545000000454545ULL,
+ 0x1b1b0000001b1b1bULL, 0xf5f5000000f5f5f5ULL, 0xe4e4000000e4e4e4ULL,
+ 0x0e0e0000000e0e0eULL, 0x7373000000737373ULL, 0xaaaa000000aaaaaaULL,
+ 0xf1f1000000f1f1f1ULL, 0xdddd000000ddddddULL, 0x5959000000595959ULL,
+ 0x1414000000141414ULL, 0x6c6c0000006c6c6cULL, 0x9292000000929292ULL,
+ 0x5454000000545454ULL, 0xd0d0000000d0d0d0ULL, 0x7878000000787878ULL,
+ 0x7070000000707070ULL, 0xe3e3000000e3e3e3ULL, 0x4949000000494949ULL,
+ 0x8080000000808080ULL, 0x5050000000505050ULL, 0xa7a7000000a7a7a7ULL,
+ 0xf6f6000000f6f6f6ULL, 0x7777000000777777ULL, 0x9393000000939393ULL,
+ 0x8686000000868686ULL, 0x8383000000838383ULL, 0x2a2a0000002a2a2aULL,
+ 0xc7c7000000c7c7c7ULL, 0x5b5b0000005b5b5bULL, 0xe9e9000000e9e9e9ULL,
+ 0xeeee000000eeeeeeULL, 0x8f8f0000008f8f8fULL, 0x0101000000010101ULL,
+ 0x3d3d0000003d3d3dULL,
+};
+
+const uint64 camellia_sp03303033[256] = {
+ 0x0038380038003838ULL, 0x0041410041004141ULL, 0x0016160016001616ULL,
+ 0x0076760076007676ULL, 0x00d9d900d900d9d9ULL, 0x0093930093009393ULL,
+ 0x0060600060006060ULL, 0x00f2f200f200f2f2ULL, 0x0072720072007272ULL,
+ 0x00c2c200c200c2c2ULL, 0x00abab00ab00ababULL, 0x009a9a009a009a9aULL,
+ 0x0075750075007575ULL, 0x0006060006000606ULL, 0x0057570057005757ULL,
+ 0x00a0a000a000a0a0ULL, 0x0091910091009191ULL, 0x00f7f700f700f7f7ULL,
+ 0x00b5b500b500b5b5ULL, 0x00c9c900c900c9c9ULL, 0x00a2a200a200a2a2ULL,
+ 0x008c8c008c008c8cULL, 0x00d2d200d200d2d2ULL, 0x0090900090009090ULL,
+ 0x00f6f600f600f6f6ULL, 0x0007070007000707ULL, 0x00a7a700a700a7a7ULL,
+ 0x0027270027002727ULL, 0x008e8e008e008e8eULL, 0x00b2b200b200b2b2ULL,
+ 0x0049490049004949ULL, 0x00dede00de00dedeULL, 0x0043430043004343ULL,
+ 0x005c5c005c005c5cULL, 0x00d7d700d700d7d7ULL, 0x00c7c700c700c7c7ULL,
+ 0x003e3e003e003e3eULL, 0x00f5f500f500f5f5ULL, 0x008f8f008f008f8fULL,
+ 0x0067670067006767ULL, 0x001f1f001f001f1fULL, 0x0018180018001818ULL,
+ 0x006e6e006e006e6eULL, 0x00afaf00af00afafULL, 0x002f2f002f002f2fULL,
+ 0x00e2e200e200e2e2ULL, 0x0085850085008585ULL, 0x000d0d000d000d0dULL,
+ 0x0053530053005353ULL, 0x00f0f000f000f0f0ULL, 0x009c9c009c009c9cULL,
+ 0x0065650065006565ULL, 0x00eaea00ea00eaeaULL, 0x00a3a300a300a3a3ULL,
+ 0x00aeae00ae00aeaeULL, 0x009e9e009e009e9eULL, 0x00ecec00ec00ececULL,
+ 0x0080800080008080ULL, 0x002d2d002d002d2dULL, 0x006b6b006b006b6bULL,
+ 0x00a8a800a800a8a8ULL, 0x002b2b002b002b2bULL, 0x0036360036003636ULL,
+ 0x00a6a600a600a6a6ULL, 0x00c5c500c500c5c5ULL, 0x0086860086008686ULL,
+ 0x004d4d004d004d4dULL, 0x0033330033003333ULL, 0x00fdfd00fd00fdfdULL,
+ 0x0066660066006666ULL, 0x0058580058005858ULL, 0x0096960096009696ULL,
+ 0x003a3a003a003a3aULL, 0x0009090009000909ULL, 0x0095950095009595ULL,
+ 0x0010100010001010ULL, 0x0078780078007878ULL, 0x00d8d800d800d8d8ULL,
+ 0x0042420042004242ULL, 0x00cccc00cc00ccccULL, 0x00efef00ef00efefULL,
+ 0x0026260026002626ULL, 0x00e5e500e500e5e5ULL, 0x0061610061006161ULL,
+ 0x001a1a001a001a1aULL, 0x003f3f003f003f3fULL, 0x003b3b003b003b3bULL,
+ 0x0082820082008282ULL, 0x00b6b600b600b6b6ULL, 0x00dbdb00db00dbdbULL,
+ 0x00d4d400d400d4d4ULL, 0x0098980098009898ULL, 0x00e8e800e800e8e8ULL,
+ 0x008b8b008b008b8bULL, 0x0002020002000202ULL, 0x00ebeb00eb00ebebULL,
+ 0x000a0a000a000a0aULL, 0x002c2c002c002c2cULL, 0x001d1d001d001d1dULL,
+ 0x00b0b000b000b0b0ULL, 0x006f6f006f006f6fULL, 0x008d8d008d008d8dULL,
+ 0x0088880088008888ULL, 0x000e0e000e000e0eULL, 0x0019190019001919ULL,
+ 0x0087870087008787ULL, 0x004e4e004e004e4eULL, 0x000b0b000b000b0bULL,
+ 0x00a9a900a900a9a9ULL, 0x000c0c000c000c0cULL, 0x0079790079007979ULL,
+ 0x0011110011001111ULL, 0x007f7f007f007f7fULL, 0x0022220022002222ULL,
+ 0x00e7e700e700e7e7ULL, 0x0059590059005959ULL, 0x00e1e100e100e1e1ULL,
+ 0x00dada00da00dadaULL, 0x003d3d003d003d3dULL, 0x00c8c800c800c8c8ULL,
+ 0x0012120012001212ULL, 0x0004040004000404ULL, 0x0074740074007474ULL,
+ 0x0054540054005454ULL, 0x0030300030003030ULL, 0x007e7e007e007e7eULL,
+ 0x00b4b400b400b4b4ULL, 0x0028280028002828ULL, 0x0055550055005555ULL,
+ 0x0068680068006868ULL, 0x0050500050005050ULL, 0x00bebe00be00bebeULL,
+ 0x00d0d000d000d0d0ULL, 0x00c4c400c400c4c4ULL, 0x0031310031003131ULL,
+ 0x00cbcb00cb00cbcbULL, 0x002a2a002a002a2aULL, 0x00adad00ad00adadULL,
+ 0x000f0f000f000f0fULL, 0x00caca00ca00cacaULL, 0x0070700070007070ULL,
+ 0x00ffff00ff00ffffULL, 0x0032320032003232ULL, 0x0069690069006969ULL,
+ 0x0008080008000808ULL, 0x0062620062006262ULL, 0x0000000000000000ULL,
+ 0x0024240024002424ULL, 0x00d1d100d100d1d1ULL, 0x00fbfb00fb00fbfbULL,
+ 0x00baba00ba00babaULL, 0x00eded00ed00ededULL, 0x0045450045004545ULL,
+ 0x0081810081008181ULL, 0x0073730073007373ULL, 0x006d6d006d006d6dULL,
+ 0x0084840084008484ULL, 0x009f9f009f009f9fULL, 0x00eeee00ee00eeeeULL,
+ 0x004a4a004a004a4aULL, 0x00c3c300c300c3c3ULL, 0x002e2e002e002e2eULL,
+ 0x00c1c100c100c1c1ULL, 0x0001010001000101ULL, 0x00e6e600e600e6e6ULL,
+ 0x0025250025002525ULL, 0x0048480048004848ULL, 0x0099990099009999ULL,
+ 0x00b9b900b900b9b9ULL, 0x00b3b300b300b3b3ULL, 0x007b7b007b007b7bULL,
+ 0x00f9f900f900f9f9ULL, 0x00cece00ce00ceceULL, 0x00bfbf00bf00bfbfULL,
+ 0x00dfdf00df00dfdfULL, 0x0071710071007171ULL, 0x0029290029002929ULL,
+ 0x00cdcd00cd00cdcdULL, 0x006c6c006c006c6cULL, 0x0013130013001313ULL,
+ 0x0064640064006464ULL, 0x009b9b009b009b9bULL, 0x0063630063006363ULL,
+ 0x009d9d009d009d9dULL, 0x00c0c000c000c0c0ULL, 0x004b4b004b004b4bULL,
+ 0x00b7b700b700b7b7ULL, 0x00a5a500a500a5a5ULL, 0x0089890089008989ULL,
+ 0x005f5f005f005f5fULL, 0x00b1b100b100b1b1ULL, 0x0017170017001717ULL,
+ 0x00f4f400f400f4f4ULL, 0x00bcbc00bc00bcbcULL, 0x00d3d300d300d3d3ULL,
+ 0x0046460046004646ULL, 0x00cfcf00cf00cfcfULL, 0x0037370037003737ULL,
+ 0x005e5e005e005e5eULL, 0x0047470047004747ULL, 0x0094940094009494ULL,
+ 0x00fafa00fa00fafaULL, 0x00fcfc00fc00fcfcULL, 0x005b5b005b005b5bULL,
+ 0x0097970097009797ULL, 0x00fefe00fe00fefeULL, 0x005a5a005a005a5aULL,
+ 0x00acac00ac00acacULL, 0x003c3c003c003c3cULL, 0x004c4c004c004c4cULL,
+ 0x0003030003000303ULL, 0x0035350035003535ULL, 0x00f3f300f300f3f3ULL,
+ 0x0023230023002323ULL, 0x00b8b800b800b8b8ULL, 0x005d5d005d005d5dULL,
+ 0x006a6a006a006a6aULL, 0x0092920092009292ULL, 0x00d5d500d500d5d5ULL,
+ 0x0021210021002121ULL, 0x0044440044004444ULL, 0x0051510051005151ULL,
+ 0x00c6c600c600c6c6ULL, 0x007d7d007d007d7dULL, 0x0039390039003939ULL,
+ 0x0083830083008383ULL, 0x00dcdc00dc00dcdcULL, 0x00aaaa00aa00aaaaULL,
+ 0x007c7c007c007c7cULL, 0x0077770077007777ULL, 0x0056560056005656ULL,
+ 0x0005050005000505ULL, 0x001b1b001b001b1bULL, 0x00a4a400a400a4a4ULL,
+ 0x0015150015001515ULL, 0x0034340034003434ULL, 0x001e1e001e001e1eULL,
+ 0x001c1c001c001c1cULL, 0x00f8f800f800f8f8ULL, 0x0052520052005252ULL,
+ 0x0020200020002020ULL, 0x0014140014001414ULL, 0x00e9e900e900e9e9ULL,
+ 0x00bdbd00bd00bdbdULL, 0x00dddd00dd00ddddULL, 0x00e4e400e400e4e4ULL,
+ 0x00a1a100a100a1a1ULL, 0x00e0e000e000e0e0ULL, 0x008a8a008a008a8aULL,
+ 0x00f1f100f100f1f1ULL, 0x00d6d600d600d6d6ULL, 0x007a7a007a007a7aULL,
+ 0x00bbbb00bb00bbbbULL, 0x00e3e300e300e3e3ULL, 0x0040400040004040ULL,
+ 0x004f4f004f004f4fULL,
+};
+
+const uint64 camellia_sp00444404[256] = {
+ 0x0000707070700070ULL, 0x00002c2c2c2c002cULL, 0x0000b3b3b3b300b3ULL,
+ 0x0000c0c0c0c000c0ULL, 0x0000e4e4e4e400e4ULL, 0x0000575757570057ULL,
+ 0x0000eaeaeaea00eaULL, 0x0000aeaeaeae00aeULL, 0x0000232323230023ULL,
+ 0x00006b6b6b6b006bULL, 0x0000454545450045ULL, 0x0000a5a5a5a500a5ULL,
+ 0x0000edededed00edULL, 0x00004f4f4f4f004fULL, 0x00001d1d1d1d001dULL,
+ 0x0000929292920092ULL, 0x0000868686860086ULL, 0x0000afafafaf00afULL,
+ 0x00007c7c7c7c007cULL, 0x00001f1f1f1f001fULL, 0x00003e3e3e3e003eULL,
+ 0x0000dcdcdcdc00dcULL, 0x00005e5e5e5e005eULL, 0x00000b0b0b0b000bULL,
+ 0x0000a6a6a6a600a6ULL, 0x0000393939390039ULL, 0x0000d5d5d5d500d5ULL,
+ 0x00005d5d5d5d005dULL, 0x0000d9d9d9d900d9ULL, 0x00005a5a5a5a005aULL,
+ 0x0000515151510051ULL, 0x00006c6c6c6c006cULL, 0x00008b8b8b8b008bULL,
+ 0x00009a9a9a9a009aULL, 0x0000fbfbfbfb00fbULL, 0x0000b0b0b0b000b0ULL,
+ 0x0000747474740074ULL, 0x00002b2b2b2b002bULL, 0x0000f0f0f0f000f0ULL,
+ 0x0000848484840084ULL, 0x0000dfdfdfdf00dfULL, 0x0000cbcbcbcb00cbULL,
+ 0x0000343434340034ULL, 0x0000767676760076ULL, 0x00006d6d6d6d006dULL,
+ 0x0000a9a9a9a900a9ULL, 0x0000d1d1d1d100d1ULL, 0x0000040404040004ULL,
+ 0x0000141414140014ULL, 0x00003a3a3a3a003aULL, 0x0000dededede00deULL,
+ 0x0000111111110011ULL, 0x0000323232320032ULL, 0x00009c9c9c9c009cULL,
+ 0x0000535353530053ULL, 0x0000f2f2f2f200f2ULL, 0x0000fefefefe00feULL,
+ 0x0000cfcfcfcf00cfULL, 0x0000c3c3c3c300c3ULL, 0x00007a7a7a7a007aULL,
+ 0x0000242424240024ULL, 0x0000e8e8e8e800e8ULL, 0x0000606060600060ULL,
+ 0x0000696969690069ULL, 0x0000aaaaaaaa00aaULL, 0x0000a0a0a0a000a0ULL,
+ 0x0000a1a1a1a100a1ULL, 0x0000626262620062ULL, 0x0000545454540054ULL,
+ 0x00001e1e1e1e001eULL, 0x0000e0e0e0e000e0ULL, 0x0000646464640064ULL,
+ 0x0000101010100010ULL, 0x0000000000000000ULL, 0x0000a3a3a3a300a3ULL,
+ 0x0000757575750075ULL, 0x00008a8a8a8a008aULL, 0x0000e6e6e6e600e6ULL,
+ 0x0000090909090009ULL, 0x0000dddddddd00ddULL, 0x0000878787870087ULL,
+ 0x0000838383830083ULL, 0x0000cdcdcdcd00cdULL, 0x0000909090900090ULL,
+ 0x0000737373730073ULL, 0x0000f6f6f6f600f6ULL, 0x00009d9d9d9d009dULL,
+ 0x0000bfbfbfbf00bfULL, 0x0000525252520052ULL, 0x0000d8d8d8d800d8ULL,
+ 0x0000c8c8c8c800c8ULL, 0x0000c6c6c6c600c6ULL, 0x0000818181810081ULL,
+ 0x00006f6f6f6f006fULL, 0x0000131313130013ULL, 0x0000636363630063ULL,
+ 0x0000e9e9e9e900e9ULL, 0x0000a7a7a7a700a7ULL, 0x00009f9f9f9f009fULL,
+ 0x0000bcbcbcbc00bcULL, 0x0000292929290029ULL, 0x0000f9f9f9f900f9ULL,
+ 0x00002f2f2f2f002fULL, 0x0000b4b4b4b400b4ULL, 0x0000787878780078ULL,
+ 0x0000060606060006ULL, 0x0000e7e7e7e700e7ULL, 0x0000717171710071ULL,
+ 0x0000d4d4d4d400d4ULL, 0x0000abababab00abULL, 0x0000888888880088ULL,
+ 0x00008d8d8d8d008dULL, 0x0000727272720072ULL, 0x0000b9b9b9b900b9ULL,
+ 0x0000f8f8f8f800f8ULL, 0x0000acacacac00acULL, 0x0000363636360036ULL,
+ 0x00002a2a2a2a002aULL, 0x00003c3c3c3c003cULL, 0x0000f1f1f1f100f1ULL,
+ 0x0000404040400040ULL, 0x0000d3d3d3d300d3ULL, 0x0000bbbbbbbb00bbULL,
+ 0x0000434343430043ULL, 0x0000151515150015ULL, 0x0000adadadad00adULL,
+ 0x0000777777770077ULL, 0x0000808080800080ULL, 0x0000828282820082ULL,
+ 0x0000ecececec00ecULL, 0x0000272727270027ULL, 0x0000e5e5e5e500e5ULL,
+ 0x0000858585850085ULL, 0x0000353535350035ULL, 0x00000c0c0c0c000cULL,
+ 0x0000414141410041ULL, 0x0000efefefef00efULL, 0x0000939393930093ULL,
+ 0x0000191919190019ULL, 0x0000212121210021ULL, 0x00000e0e0e0e000eULL,
+ 0x00004e4e4e4e004eULL, 0x0000656565650065ULL, 0x0000bdbdbdbd00bdULL,
+ 0x0000b8b8b8b800b8ULL, 0x00008f8f8f8f008fULL, 0x0000ebebebeb00ebULL,
+ 0x0000cececece00ceULL, 0x0000303030300030ULL, 0x00005f5f5f5f005fULL,
+ 0x0000c5c5c5c500c5ULL, 0x00001a1a1a1a001aULL, 0x0000e1e1e1e100e1ULL,
+ 0x0000cacacaca00caULL, 0x0000474747470047ULL, 0x00003d3d3d3d003dULL,
+ 0x0000010101010001ULL, 0x0000d6d6d6d600d6ULL, 0x0000565656560056ULL,
+ 0x00004d4d4d4d004dULL, 0x00000d0d0d0d000dULL, 0x0000666666660066ULL,
+ 0x0000cccccccc00ccULL, 0x00002d2d2d2d002dULL, 0x0000121212120012ULL,
+ 0x0000202020200020ULL, 0x0000b1b1b1b100b1ULL, 0x0000999999990099ULL,
+ 0x00004c4c4c4c004cULL, 0x0000c2c2c2c200c2ULL, 0x00007e7e7e7e007eULL,
+ 0x0000050505050005ULL, 0x0000b7b7b7b700b7ULL, 0x0000313131310031ULL,
+ 0x0000171717170017ULL, 0x0000d7d7d7d700d7ULL, 0x0000585858580058ULL,
+ 0x0000616161610061ULL, 0x00001b1b1b1b001bULL, 0x00001c1c1c1c001cULL,
+ 0x00000f0f0f0f000fULL, 0x0000161616160016ULL, 0x0000181818180018ULL,
+ 0x0000222222220022ULL, 0x0000444444440044ULL, 0x0000b2b2b2b200b2ULL,
+ 0x0000b5b5b5b500b5ULL, 0x0000919191910091ULL, 0x0000080808080008ULL,
+ 0x0000a8a8a8a800a8ULL, 0x0000fcfcfcfc00fcULL, 0x0000505050500050ULL,
+ 0x0000d0d0d0d000d0ULL, 0x00007d7d7d7d007dULL, 0x0000898989890089ULL,
+ 0x0000979797970097ULL, 0x00005b5b5b5b005bULL, 0x0000959595950095ULL,
+ 0x0000ffffffff00ffULL, 0x0000d2d2d2d200d2ULL, 0x0000c4c4c4c400c4ULL,
+ 0x0000484848480048ULL, 0x0000f7f7f7f700f7ULL, 0x0000dbdbdbdb00dbULL,
+ 0x0000030303030003ULL, 0x0000dadadada00daULL, 0x00003f3f3f3f003fULL,
+ 0x0000949494940094ULL, 0x00005c5c5c5c005cULL, 0x0000020202020002ULL,
+ 0x00004a4a4a4a004aULL, 0x0000333333330033ULL, 0x0000676767670067ULL,
+ 0x0000f3f3f3f300f3ULL, 0x00007f7f7f7f007fULL, 0x0000e2e2e2e200e2ULL,
+ 0x00009b9b9b9b009bULL, 0x0000262626260026ULL, 0x0000373737370037ULL,
+ 0x00003b3b3b3b003bULL, 0x0000969696960096ULL, 0x00004b4b4b4b004bULL,
+ 0x0000bebebebe00beULL, 0x00002e2e2e2e002eULL, 0x0000797979790079ULL,
+ 0x00008c8c8c8c008cULL, 0x00006e6e6e6e006eULL, 0x00008e8e8e8e008eULL,
+ 0x0000f5f5f5f500f5ULL, 0x0000b6b6b6b600b6ULL, 0x0000fdfdfdfd00fdULL,
+ 0x0000595959590059ULL, 0x0000989898980098ULL, 0x00006a6a6a6a006aULL,
+ 0x0000464646460046ULL, 0x0000babababa00baULL, 0x0000252525250025ULL,
+ 0x0000424242420042ULL, 0x0000a2a2a2a200a2ULL, 0x0000fafafafa00faULL,
+ 0x0000070707070007ULL, 0x0000555555550055ULL, 0x0000eeeeeeee00eeULL,
+ 0x00000a0a0a0a000aULL, 0x0000494949490049ULL, 0x0000686868680068ULL,
+ 0x0000383838380038ULL, 0x0000a4a4a4a400a4ULL, 0x0000282828280028ULL,
+ 0x00007b7b7b7b007bULL, 0x0000c9c9c9c900c9ULL, 0x0000c1c1c1c100c1ULL,
+ 0x0000e3e3e3e300e3ULL, 0x0000f4f4f4f400f4ULL, 0x0000c7c7c7c700c7ULL,
+ 0x00009e9e9e9e009eULL,
+};
+
+const uint64 camellia_sp02220222[256] = {
+ 0x00e0e0e000e0e0e0ULL, 0x0005050500050505ULL, 0x0058585800585858ULL,
+ 0x00d9d9d900d9d9d9ULL, 0x0067676700676767ULL, 0x004e4e4e004e4e4eULL,
+ 0x0081818100818181ULL, 0x00cbcbcb00cbcbcbULL, 0x00c9c9c900c9c9c9ULL,
+ 0x000b0b0b000b0b0bULL, 0x00aeaeae00aeaeaeULL, 0x006a6a6a006a6a6aULL,
+ 0x00d5d5d500d5d5d5ULL, 0x0018181800181818ULL, 0x005d5d5d005d5d5dULL,
+ 0x0082828200828282ULL, 0x0046464600464646ULL, 0x00dfdfdf00dfdfdfULL,
+ 0x00d6d6d600d6d6d6ULL, 0x0027272700272727ULL, 0x008a8a8a008a8a8aULL,
+ 0x0032323200323232ULL, 0x004b4b4b004b4b4bULL, 0x0042424200424242ULL,
+ 0x00dbdbdb00dbdbdbULL, 0x001c1c1c001c1c1cULL, 0x009e9e9e009e9e9eULL,
+ 0x009c9c9c009c9c9cULL, 0x003a3a3a003a3a3aULL, 0x00cacaca00cacacaULL,
+ 0x0025252500252525ULL, 0x007b7b7b007b7b7bULL, 0x000d0d0d000d0d0dULL,
+ 0x0071717100717171ULL, 0x005f5f5f005f5f5fULL, 0x001f1f1f001f1f1fULL,
+ 0x00f8f8f800f8f8f8ULL, 0x00d7d7d700d7d7d7ULL, 0x003e3e3e003e3e3eULL,
+ 0x009d9d9d009d9d9dULL, 0x007c7c7c007c7c7cULL, 0x0060606000606060ULL,
+ 0x00b9b9b900b9b9b9ULL, 0x00bebebe00bebebeULL, 0x00bcbcbc00bcbcbcULL,
+ 0x008b8b8b008b8b8bULL, 0x0016161600161616ULL, 0x0034343400343434ULL,
+ 0x004d4d4d004d4d4dULL, 0x00c3c3c300c3c3c3ULL, 0x0072727200727272ULL,
+ 0x0095959500959595ULL, 0x00ababab00abababULL, 0x008e8e8e008e8e8eULL,
+ 0x00bababa00bababaULL, 0x007a7a7a007a7a7aULL, 0x00b3b3b300b3b3b3ULL,
+ 0x0002020200020202ULL, 0x00b4b4b400b4b4b4ULL, 0x00adadad00adadadULL,
+ 0x00a2a2a200a2a2a2ULL, 0x00acacac00acacacULL, 0x00d8d8d800d8d8d8ULL,
+ 0x009a9a9a009a9a9aULL, 0x0017171700171717ULL, 0x001a1a1a001a1a1aULL,
+ 0x0035353500353535ULL, 0x00cccccc00ccccccULL, 0x00f7f7f700f7f7f7ULL,
+ 0x0099999900999999ULL, 0x0061616100616161ULL, 0x005a5a5a005a5a5aULL,
+ 0x00e8e8e800e8e8e8ULL, 0x0024242400242424ULL, 0x0056565600565656ULL,
+ 0x0040404000404040ULL, 0x00e1e1e100e1e1e1ULL, 0x0063636300636363ULL,
+ 0x0009090900090909ULL, 0x0033333300333333ULL, 0x00bfbfbf00bfbfbfULL,
+ 0x0098989800989898ULL, 0x0097979700979797ULL, 0x0085858500858585ULL,
+ 0x0068686800686868ULL, 0x00fcfcfc00fcfcfcULL, 0x00ececec00ecececULL,
+ 0x000a0a0a000a0a0aULL, 0x00dadada00dadadaULL, 0x006f6f6f006f6f6fULL,
+ 0x0053535300535353ULL, 0x0062626200626262ULL, 0x00a3a3a300a3a3a3ULL,
+ 0x002e2e2e002e2e2eULL, 0x0008080800080808ULL, 0x00afafaf00afafafULL,
+ 0x0028282800282828ULL, 0x00b0b0b000b0b0b0ULL, 0x0074747400747474ULL,
+ 0x00c2c2c200c2c2c2ULL, 0x00bdbdbd00bdbdbdULL, 0x0036363600363636ULL,
+ 0x0022222200222222ULL, 0x0038383800383838ULL, 0x0064646400646464ULL,
+ 0x001e1e1e001e1e1eULL, 0x0039393900393939ULL, 0x002c2c2c002c2c2cULL,
+ 0x00a6a6a600a6a6a6ULL, 0x0030303000303030ULL, 0x00e5e5e500e5e5e5ULL,
+ 0x0044444400444444ULL, 0x00fdfdfd00fdfdfdULL, 0x0088888800888888ULL,
+ 0x009f9f9f009f9f9fULL, 0x0065656500656565ULL, 0x0087878700878787ULL,
+ 0x006b6b6b006b6b6bULL, 0x00f4f4f400f4f4f4ULL, 0x0023232300232323ULL,
+ 0x0048484800484848ULL, 0x0010101000101010ULL, 0x00d1d1d100d1d1d1ULL,
+ 0x0051515100515151ULL, 0x00c0c0c000c0c0c0ULL, 0x00f9f9f900f9f9f9ULL,
+ 0x00d2d2d200d2d2d2ULL, 0x00a0a0a000a0a0a0ULL, 0x0055555500555555ULL,
+ 0x00a1a1a100a1a1a1ULL, 0x0041414100414141ULL, 0x00fafafa00fafafaULL,
+ 0x0043434300434343ULL, 0x0013131300131313ULL, 0x00c4c4c400c4c4c4ULL,
+ 0x002f2f2f002f2f2fULL, 0x00a8a8a800a8a8a8ULL, 0x00b6b6b600b6b6b6ULL,
+ 0x003c3c3c003c3c3cULL, 0x002b2b2b002b2b2bULL, 0x00c1c1c100c1c1c1ULL,
+ 0x00ffffff00ffffffULL, 0x00c8c8c800c8c8c8ULL, 0x00a5a5a500a5a5a5ULL,
+ 0x0020202000202020ULL, 0x0089898900898989ULL, 0x0000000000000000ULL,
+ 0x0090909000909090ULL, 0x0047474700474747ULL, 0x00efefef00efefefULL,
+ 0x00eaeaea00eaeaeaULL, 0x00b7b7b700b7b7b7ULL, 0x0015151500151515ULL,
+ 0x0006060600060606ULL, 0x00cdcdcd00cdcdcdULL, 0x00b5b5b500b5b5b5ULL,
+ 0x0012121200121212ULL, 0x007e7e7e007e7e7eULL, 0x00bbbbbb00bbbbbbULL,
+ 0x0029292900292929ULL, 0x000f0f0f000f0f0fULL, 0x00b8b8b800b8b8b8ULL,
+ 0x0007070700070707ULL, 0x0004040400040404ULL, 0x009b9b9b009b9b9bULL,
+ 0x0094949400949494ULL, 0x0021212100212121ULL, 0x0066666600666666ULL,
+ 0x00e6e6e600e6e6e6ULL, 0x00cecece00cececeULL, 0x00ededed00edededULL,
+ 0x00e7e7e700e7e7e7ULL, 0x003b3b3b003b3b3bULL, 0x00fefefe00fefefeULL,
+ 0x007f7f7f007f7f7fULL, 0x00c5c5c500c5c5c5ULL, 0x00a4a4a400a4a4a4ULL,
+ 0x0037373700373737ULL, 0x00b1b1b100b1b1b1ULL, 0x004c4c4c004c4c4cULL,
+ 0x0091919100919191ULL, 0x006e6e6e006e6e6eULL, 0x008d8d8d008d8d8dULL,
+ 0x0076767600767676ULL, 0x0003030300030303ULL, 0x002d2d2d002d2d2dULL,
+ 0x00dedede00dededeULL, 0x0096969600969696ULL, 0x0026262600262626ULL,
+ 0x007d7d7d007d7d7dULL, 0x00c6c6c600c6c6c6ULL, 0x005c5c5c005c5c5cULL,
+ 0x00d3d3d300d3d3d3ULL, 0x00f2f2f200f2f2f2ULL, 0x004f4f4f004f4f4fULL,
+ 0x0019191900191919ULL, 0x003f3f3f003f3f3fULL, 0x00dcdcdc00dcdcdcULL,
+ 0x0079797900797979ULL, 0x001d1d1d001d1d1dULL, 0x0052525200525252ULL,
+ 0x00ebebeb00ebebebULL, 0x00f3f3f300f3f3f3ULL, 0x006d6d6d006d6d6dULL,
+ 0x005e5e5e005e5e5eULL, 0x00fbfbfb00fbfbfbULL, 0x0069696900696969ULL,
+ 0x00b2b2b200b2b2b2ULL, 0x00f0f0f000f0f0f0ULL, 0x0031313100313131ULL,
+ 0x000c0c0c000c0c0cULL, 0x00d4d4d400d4d4d4ULL, 0x00cfcfcf00cfcfcfULL,
+ 0x008c8c8c008c8c8cULL, 0x00e2e2e200e2e2e2ULL, 0x0075757500757575ULL,
+ 0x00a9a9a900a9a9a9ULL, 0x004a4a4a004a4a4aULL, 0x0057575700575757ULL,
+ 0x0084848400848484ULL, 0x0011111100111111ULL, 0x0045454500454545ULL,
+ 0x001b1b1b001b1b1bULL, 0x00f5f5f500f5f5f5ULL, 0x00e4e4e400e4e4e4ULL,
+ 0x000e0e0e000e0e0eULL, 0x0073737300737373ULL, 0x00aaaaaa00aaaaaaULL,
+ 0x00f1f1f100f1f1f1ULL, 0x00dddddd00ddddddULL, 0x0059595900595959ULL,
+ 0x0014141400141414ULL, 0x006c6c6c006c6c6cULL, 0x0092929200929292ULL,
+ 0x0054545400545454ULL, 0x00d0d0d000d0d0d0ULL, 0x0078787800787878ULL,
+ 0x0070707000707070ULL, 0x00e3e3e300e3e3e3ULL, 0x0049494900494949ULL,
+ 0x0080808000808080ULL, 0x0050505000505050ULL, 0x00a7a7a700a7a7a7ULL,
+ 0x00f6f6f600f6f6f6ULL, 0x0077777700777777ULL, 0x0093939300939393ULL,
+ 0x0086868600868686ULL, 0x0083838300838383ULL, 0x002a2a2a002a2a2aULL,
+ 0x00c7c7c700c7c7c7ULL, 0x005b5b5b005b5b5bULL, 0x00e9e9e900e9e9e9ULL,
+ 0x00eeeeee00eeeeeeULL, 0x008f8f8f008f8f8fULL, 0x0001010100010101ULL,
+ 0x003d3d3d003d3d3dULL,
+};
+
+const uint64 camellia_sp30333033[256] = {
+ 0x3800383838003838ULL, 0x4100414141004141ULL, 0x1600161616001616ULL,
+ 0x7600767676007676ULL, 0xd900d9d9d900d9d9ULL, 0x9300939393009393ULL,
+ 0x6000606060006060ULL, 0xf200f2f2f200f2f2ULL, 0x7200727272007272ULL,
+ 0xc200c2c2c200c2c2ULL, 0xab00ababab00ababULL, 0x9a009a9a9a009a9aULL,
+ 0x7500757575007575ULL, 0x0600060606000606ULL, 0x5700575757005757ULL,
+ 0xa000a0a0a000a0a0ULL, 0x9100919191009191ULL, 0xf700f7f7f700f7f7ULL,
+ 0xb500b5b5b500b5b5ULL, 0xc900c9c9c900c9c9ULL, 0xa200a2a2a200a2a2ULL,
+ 0x8c008c8c8c008c8cULL, 0xd200d2d2d200d2d2ULL, 0x9000909090009090ULL,
+ 0xf600f6f6f600f6f6ULL, 0x0700070707000707ULL, 0xa700a7a7a700a7a7ULL,
+ 0x2700272727002727ULL, 0x8e008e8e8e008e8eULL, 0xb200b2b2b200b2b2ULL,
+ 0x4900494949004949ULL, 0xde00dedede00dedeULL, 0x4300434343004343ULL,
+ 0x5c005c5c5c005c5cULL, 0xd700d7d7d700d7d7ULL, 0xc700c7c7c700c7c7ULL,
+ 0x3e003e3e3e003e3eULL, 0xf500f5f5f500f5f5ULL, 0x8f008f8f8f008f8fULL,
+ 0x6700676767006767ULL, 0x1f001f1f1f001f1fULL, 0x1800181818001818ULL,
+ 0x6e006e6e6e006e6eULL, 0xaf00afafaf00afafULL, 0x2f002f2f2f002f2fULL,
+ 0xe200e2e2e200e2e2ULL, 0x8500858585008585ULL, 0x0d000d0d0d000d0dULL,
+ 0x5300535353005353ULL, 0xf000f0f0f000f0f0ULL, 0x9c009c9c9c009c9cULL,
+ 0x6500656565006565ULL, 0xea00eaeaea00eaeaULL, 0xa300a3a3a300a3a3ULL,
+ 0xae00aeaeae00aeaeULL, 0x9e009e9e9e009e9eULL, 0xec00ececec00ececULL,
+ 0x8000808080008080ULL, 0x2d002d2d2d002d2dULL, 0x6b006b6b6b006b6bULL,
+ 0xa800a8a8a800a8a8ULL, 0x2b002b2b2b002b2bULL, 0x3600363636003636ULL,
+ 0xa600a6a6a600a6a6ULL, 0xc500c5c5c500c5c5ULL, 0x8600868686008686ULL,
+ 0x4d004d4d4d004d4dULL, 0x3300333333003333ULL, 0xfd00fdfdfd00fdfdULL,
+ 0x6600666666006666ULL, 0x5800585858005858ULL, 0x9600969696009696ULL,
+ 0x3a003a3a3a003a3aULL, 0x0900090909000909ULL, 0x9500959595009595ULL,
+ 0x1000101010001010ULL, 0x7800787878007878ULL, 0xd800d8d8d800d8d8ULL,
+ 0x4200424242004242ULL, 0xcc00cccccc00ccccULL, 0xef00efefef00efefULL,
+ 0x2600262626002626ULL, 0xe500e5e5e500e5e5ULL, 0x6100616161006161ULL,
+ 0x1a001a1a1a001a1aULL, 0x3f003f3f3f003f3fULL, 0x3b003b3b3b003b3bULL,
+ 0x8200828282008282ULL, 0xb600b6b6b600b6b6ULL, 0xdb00dbdbdb00dbdbULL,
+ 0xd400d4d4d400d4d4ULL, 0x9800989898009898ULL, 0xe800e8e8e800e8e8ULL,
+ 0x8b008b8b8b008b8bULL, 0x0200020202000202ULL, 0xeb00ebebeb00ebebULL,
+ 0x0a000a0a0a000a0aULL, 0x2c002c2c2c002c2cULL, 0x1d001d1d1d001d1dULL,
+ 0xb000b0b0b000b0b0ULL, 0x6f006f6f6f006f6fULL, 0x8d008d8d8d008d8dULL,
+ 0x8800888888008888ULL, 0x0e000e0e0e000e0eULL, 0x1900191919001919ULL,
+ 0x8700878787008787ULL, 0x4e004e4e4e004e4eULL, 0x0b000b0b0b000b0bULL,
+ 0xa900a9a9a900a9a9ULL, 0x0c000c0c0c000c0cULL, 0x7900797979007979ULL,
+ 0x1100111111001111ULL, 0x7f007f7f7f007f7fULL, 0x2200222222002222ULL,
+ 0xe700e7e7e700e7e7ULL, 0x5900595959005959ULL, 0xe100e1e1e100e1e1ULL,
+ 0xda00dadada00dadaULL, 0x3d003d3d3d003d3dULL, 0xc800c8c8c800c8c8ULL,
+ 0x1200121212001212ULL, 0x0400040404000404ULL, 0x7400747474007474ULL,
+ 0x5400545454005454ULL, 0x3000303030003030ULL, 0x7e007e7e7e007e7eULL,
+ 0xb400b4b4b400b4b4ULL, 0x2800282828002828ULL, 0x5500555555005555ULL,
+ 0x6800686868006868ULL, 0x5000505050005050ULL, 0xbe00bebebe00bebeULL,
+ 0xd000d0d0d000d0d0ULL, 0xc400c4c4c400c4c4ULL, 0x3100313131003131ULL,
+ 0xcb00cbcbcb00cbcbULL, 0x2a002a2a2a002a2aULL, 0xad00adadad00adadULL,
+ 0x0f000f0f0f000f0fULL, 0xca00cacaca00cacaULL, 0x7000707070007070ULL,
+ 0xff00ffffff00ffffULL, 0x3200323232003232ULL, 0x6900696969006969ULL,
+ 0x0800080808000808ULL, 0x6200626262006262ULL, 0x0000000000000000ULL,
+ 0x2400242424002424ULL, 0xd100d1d1d100d1d1ULL, 0xfb00fbfbfb00fbfbULL,
+ 0xba00bababa00babaULL, 0xed00ededed00ededULL, 0x4500454545004545ULL,
+ 0x8100818181008181ULL, 0x7300737373007373ULL, 0x6d006d6d6d006d6dULL,
+ 0x8400848484008484ULL, 0x9f009f9f9f009f9fULL, 0xee00eeeeee00eeeeULL,
+ 0x4a004a4a4a004a4aULL, 0xc300c3c3c300c3c3ULL, 0x2e002e2e2e002e2eULL,
+ 0xc100c1c1c100c1c1ULL, 0x0100010101000101ULL, 0xe600e6e6e600e6e6ULL,
+ 0x2500252525002525ULL, 0x4800484848004848ULL, 0x9900999999009999ULL,
+ 0xb900b9b9b900b9b9ULL, 0xb300b3b3b300b3b3ULL, 0x7b007b7b7b007b7bULL,
+ 0xf900f9f9f900f9f9ULL, 0xce00cecece00ceceULL, 0xbf00bfbfbf00bfbfULL,
+ 0xdf00dfdfdf00dfdfULL, 0x7100717171007171ULL, 0x2900292929002929ULL,
+ 0xcd00cdcdcd00cdcdULL, 0x6c006c6c6c006c6cULL, 0x1300131313001313ULL,
+ 0x6400646464006464ULL, 0x9b009b9b9b009b9bULL, 0x6300636363006363ULL,
+ 0x9d009d9d9d009d9dULL, 0xc000c0c0c000c0c0ULL, 0x4b004b4b4b004b4bULL,
+ 0xb700b7b7b700b7b7ULL, 0xa500a5a5a500a5a5ULL, 0x8900898989008989ULL,
+ 0x5f005f5f5f005f5fULL, 0xb100b1b1b100b1b1ULL, 0x1700171717001717ULL,
+ 0xf400f4f4f400f4f4ULL, 0xbc00bcbcbc00bcbcULL, 0xd300d3d3d300d3d3ULL,
+ 0x4600464646004646ULL, 0xcf00cfcfcf00cfcfULL, 0x3700373737003737ULL,
+ 0x5e005e5e5e005e5eULL, 0x4700474747004747ULL, 0x9400949494009494ULL,
+ 0xfa00fafafa00fafaULL, 0xfc00fcfcfc00fcfcULL, 0x5b005b5b5b005b5bULL,
+ 0x9700979797009797ULL, 0xfe00fefefe00fefeULL, 0x5a005a5a5a005a5aULL,
+ 0xac00acacac00acacULL, 0x3c003c3c3c003c3cULL, 0x4c004c4c4c004c4cULL,
+ 0x0300030303000303ULL, 0x3500353535003535ULL, 0xf300f3f3f300f3f3ULL,
+ 0x2300232323002323ULL, 0xb800b8b8b800b8b8ULL, 0x5d005d5d5d005d5dULL,
+ 0x6a006a6a6a006a6aULL, 0x9200929292009292ULL, 0xd500d5d5d500d5d5ULL,
+ 0x2100212121002121ULL, 0x4400444444004444ULL, 0x5100515151005151ULL,
+ 0xc600c6c6c600c6c6ULL, 0x7d007d7d7d007d7dULL, 0x3900393939003939ULL,
+ 0x8300838383008383ULL, 0xdc00dcdcdc00dcdcULL, 0xaa00aaaaaa00aaaaULL,
+ 0x7c007c7c7c007c7cULL, 0x7700777777007777ULL, 0x5600565656005656ULL,
+ 0x0500050505000505ULL, 0x1b001b1b1b001b1bULL, 0xa400a4a4a400a4a4ULL,
+ 0x1500151515001515ULL, 0x3400343434003434ULL, 0x1e001e1e1e001e1eULL,
+ 0x1c001c1c1c001c1cULL, 0xf800f8f8f800f8f8ULL, 0x5200525252005252ULL,
+ 0x2000202020002020ULL, 0x1400141414001414ULL, 0xe900e9e9e900e9e9ULL,
+ 0xbd00bdbdbd00bdbdULL, 0xdd00dddddd00ddddULL, 0xe400e4e4e400e4e4ULL,
+ 0xa100a1a1a100a1a1ULL, 0xe000e0e0e000e0e0ULL, 0x8a008a8a8a008a8aULL,
+ 0xf100f1f1f100f1f1ULL, 0xd600d6d6d600d6d6ULL, 0x7a007a7a7a007a7aULL,
+ 0xbb00bbbbbb00bbbbULL, 0xe300e3e3e300e3e3ULL, 0x4000404040004040ULL,
+ 0x4f004f4f4f004f4fULL,
+};
+
+const uint64 camellia_sp44044404[256] = {
+ 0x7070007070700070ULL, 0x2c2c002c2c2c002cULL, 0xb3b300b3b3b300b3ULL,
+ 0xc0c000c0c0c000c0ULL, 0xe4e400e4e4e400e4ULL, 0x5757005757570057ULL,
+ 0xeaea00eaeaea00eaULL, 0xaeae00aeaeae00aeULL, 0x2323002323230023ULL,
+ 0x6b6b006b6b6b006bULL, 0x4545004545450045ULL, 0xa5a500a5a5a500a5ULL,
+ 0xeded00ededed00edULL, 0x4f4f004f4f4f004fULL, 0x1d1d001d1d1d001dULL,
+ 0x9292009292920092ULL, 0x8686008686860086ULL, 0xafaf00afafaf00afULL,
+ 0x7c7c007c7c7c007cULL, 0x1f1f001f1f1f001fULL, 0x3e3e003e3e3e003eULL,
+ 0xdcdc00dcdcdc00dcULL, 0x5e5e005e5e5e005eULL, 0x0b0b000b0b0b000bULL,
+ 0xa6a600a6a6a600a6ULL, 0x3939003939390039ULL, 0xd5d500d5d5d500d5ULL,
+ 0x5d5d005d5d5d005dULL, 0xd9d900d9d9d900d9ULL, 0x5a5a005a5a5a005aULL,
+ 0x5151005151510051ULL, 0x6c6c006c6c6c006cULL, 0x8b8b008b8b8b008bULL,
+ 0x9a9a009a9a9a009aULL, 0xfbfb00fbfbfb00fbULL, 0xb0b000b0b0b000b0ULL,
+ 0x7474007474740074ULL, 0x2b2b002b2b2b002bULL, 0xf0f000f0f0f000f0ULL,
+ 0x8484008484840084ULL, 0xdfdf00dfdfdf00dfULL, 0xcbcb00cbcbcb00cbULL,
+ 0x3434003434340034ULL, 0x7676007676760076ULL, 0x6d6d006d6d6d006dULL,
+ 0xa9a900a9a9a900a9ULL, 0xd1d100d1d1d100d1ULL, 0x0404000404040004ULL,
+ 0x1414001414140014ULL, 0x3a3a003a3a3a003aULL, 0xdede00dedede00deULL,
+ 0x1111001111110011ULL, 0x3232003232320032ULL, 0x9c9c009c9c9c009cULL,
+ 0x5353005353530053ULL, 0xf2f200f2f2f200f2ULL, 0xfefe00fefefe00feULL,
+ 0xcfcf00cfcfcf00cfULL, 0xc3c300c3c3c300c3ULL, 0x7a7a007a7a7a007aULL,
+ 0x2424002424240024ULL, 0xe8e800e8e8e800e8ULL, 0x6060006060600060ULL,
+ 0x6969006969690069ULL, 0xaaaa00aaaaaa00aaULL, 0xa0a000a0a0a000a0ULL,
+ 0xa1a100a1a1a100a1ULL, 0x6262006262620062ULL, 0x5454005454540054ULL,
+ 0x1e1e001e1e1e001eULL, 0xe0e000e0e0e000e0ULL, 0x6464006464640064ULL,
+ 0x1010001010100010ULL, 0x0000000000000000ULL, 0xa3a300a3a3a300a3ULL,
+ 0x7575007575750075ULL, 0x8a8a008a8a8a008aULL, 0xe6e600e6e6e600e6ULL,
+ 0x0909000909090009ULL, 0xdddd00dddddd00ddULL, 0x8787008787870087ULL,
+ 0x8383008383830083ULL, 0xcdcd00cdcdcd00cdULL, 0x9090009090900090ULL,
+ 0x7373007373730073ULL, 0xf6f600f6f6f600f6ULL, 0x9d9d009d9d9d009dULL,
+ 0xbfbf00bfbfbf00bfULL, 0x5252005252520052ULL, 0xd8d800d8d8d800d8ULL,
+ 0xc8c800c8c8c800c8ULL, 0xc6c600c6c6c600c6ULL, 0x8181008181810081ULL,
+ 0x6f6f006f6f6f006fULL, 0x1313001313130013ULL, 0x6363006363630063ULL,
+ 0xe9e900e9e9e900e9ULL, 0xa7a700a7a7a700a7ULL, 0x9f9f009f9f9f009fULL,
+ 0xbcbc00bcbcbc00bcULL, 0x2929002929290029ULL, 0xf9f900f9f9f900f9ULL,
+ 0x2f2f002f2f2f002fULL, 0xb4b400b4b4b400b4ULL, 0x7878007878780078ULL,
+ 0x0606000606060006ULL, 0xe7e700e7e7e700e7ULL, 0x7171007171710071ULL,
+ 0xd4d400d4d4d400d4ULL, 0xabab00ababab00abULL, 0x8888008888880088ULL,
+ 0x8d8d008d8d8d008dULL, 0x7272007272720072ULL, 0xb9b900b9b9b900b9ULL,
+ 0xf8f800f8f8f800f8ULL, 0xacac00acacac00acULL, 0x3636003636360036ULL,
+ 0x2a2a002a2a2a002aULL, 0x3c3c003c3c3c003cULL, 0xf1f100f1f1f100f1ULL,
+ 0x4040004040400040ULL, 0xd3d300d3d3d300d3ULL, 0xbbbb00bbbbbb00bbULL,
+ 0x4343004343430043ULL, 0x1515001515150015ULL, 0xadad00adadad00adULL,
+ 0x7777007777770077ULL, 0x8080008080800080ULL, 0x8282008282820082ULL,
+ 0xecec00ececec00ecULL, 0x2727002727270027ULL, 0xe5e500e5e5e500e5ULL,
+ 0x8585008585850085ULL, 0x3535003535350035ULL, 0x0c0c000c0c0c000cULL,
+ 0x4141004141410041ULL, 0xefef00efefef00efULL, 0x9393009393930093ULL,
+ 0x1919001919190019ULL, 0x2121002121210021ULL, 0x0e0e000e0e0e000eULL,
+ 0x4e4e004e4e4e004eULL, 0x6565006565650065ULL, 0xbdbd00bdbdbd00bdULL,
+ 0xb8b800b8b8b800b8ULL, 0x8f8f008f8f8f008fULL, 0xebeb00ebebeb00ebULL,
+ 0xcece00cecece00ceULL, 0x3030003030300030ULL, 0x5f5f005f5f5f005fULL,
+ 0xc5c500c5c5c500c5ULL, 0x1a1a001a1a1a001aULL, 0xe1e100e1e1e100e1ULL,
+ 0xcaca00cacaca00caULL, 0x4747004747470047ULL, 0x3d3d003d3d3d003dULL,
+ 0x0101000101010001ULL, 0xd6d600d6d6d600d6ULL, 0x5656005656560056ULL,
+ 0x4d4d004d4d4d004dULL, 0x0d0d000d0d0d000dULL, 0x6666006666660066ULL,
+ 0xcccc00cccccc00ccULL, 0x2d2d002d2d2d002dULL, 0x1212001212120012ULL,
+ 0x2020002020200020ULL, 0xb1b100b1b1b100b1ULL, 0x9999009999990099ULL,
+ 0x4c4c004c4c4c004cULL, 0xc2c200c2c2c200c2ULL, 0x7e7e007e7e7e007eULL,
+ 0x0505000505050005ULL, 0xb7b700b7b7b700b7ULL, 0x3131003131310031ULL,
+ 0x1717001717170017ULL, 0xd7d700d7d7d700d7ULL, 0x5858005858580058ULL,
+ 0x6161006161610061ULL, 0x1b1b001b1b1b001bULL, 0x1c1c001c1c1c001cULL,
+ 0x0f0f000f0f0f000fULL, 0x1616001616160016ULL, 0x1818001818180018ULL,
+ 0x2222002222220022ULL, 0x4444004444440044ULL, 0xb2b200b2b2b200b2ULL,
+ 0xb5b500b5b5b500b5ULL, 0x9191009191910091ULL, 0x0808000808080008ULL,
+ 0xa8a800a8a8a800a8ULL, 0xfcfc00fcfcfc00fcULL, 0x5050005050500050ULL,
+ 0xd0d000d0d0d000d0ULL, 0x7d7d007d7d7d007dULL, 0x8989008989890089ULL,
+ 0x9797009797970097ULL, 0x5b5b005b5b5b005bULL, 0x9595009595950095ULL,
+ 0xffff00ffffff00ffULL, 0xd2d200d2d2d200d2ULL, 0xc4c400c4c4c400c4ULL,
+ 0x4848004848480048ULL, 0xf7f700f7f7f700f7ULL, 0xdbdb00dbdbdb00dbULL,
+ 0x0303000303030003ULL, 0xdada00dadada00daULL, 0x3f3f003f3f3f003fULL,
+ 0x9494009494940094ULL, 0x5c5c005c5c5c005cULL, 0x0202000202020002ULL,
+ 0x4a4a004a4a4a004aULL, 0x3333003333330033ULL, 0x6767006767670067ULL,
+ 0xf3f300f3f3f300f3ULL, 0x7f7f007f7f7f007fULL, 0xe2e200e2e2e200e2ULL,
+ 0x9b9b009b9b9b009bULL, 0x2626002626260026ULL, 0x3737003737370037ULL,
+ 0x3b3b003b3b3b003bULL, 0x9696009696960096ULL, 0x4b4b004b4b4b004bULL,
+ 0xbebe00bebebe00beULL, 0x2e2e002e2e2e002eULL, 0x7979007979790079ULL,
+ 0x8c8c008c8c8c008cULL, 0x6e6e006e6e6e006eULL, 0x8e8e008e8e8e008eULL,
+ 0xf5f500f5f5f500f5ULL, 0xb6b600b6b6b600b6ULL, 0xfdfd00fdfdfd00fdULL,
+ 0x5959005959590059ULL, 0x9898009898980098ULL, 0x6a6a006a6a6a006aULL,
+ 0x4646004646460046ULL, 0xbaba00bababa00baULL, 0x2525002525250025ULL,
+ 0x4242004242420042ULL, 0xa2a200a2a2a200a2ULL, 0xfafa00fafafa00faULL,
+ 0x0707000707070007ULL, 0x5555005555550055ULL, 0xeeee00eeeeee00eeULL,
+ 0x0a0a000a0a0a000aULL, 0x4949004949490049ULL, 0x6868006868680068ULL,
+ 0x3838003838380038ULL, 0xa4a400a4a4a400a4ULL, 0x2828002828280028ULL,
+ 0x7b7b007b7b7b007bULL, 0xc9c900c9c9c900c9ULL, 0xc1c100c1c1c100c1ULL,
+ 0xe3e300e3e3e300e3ULL, 0xf4f400f4f4f400f4ULL, 0xc7c700c7c7c700c7ULL,
+ 0x9e9e009e9e9e009eULL,
+};
+
+const uint64 camellia_sp11101110[256] = {
+ 0x7070700070707000ULL, 0x8282820082828200ULL, 0x2c2c2c002c2c2c00ULL,
+ 0xececec00ececec00ULL, 0xb3b3b300b3b3b300ULL, 0x2727270027272700ULL,
+ 0xc0c0c000c0c0c000ULL, 0xe5e5e500e5e5e500ULL, 0xe4e4e400e4e4e400ULL,
+ 0x8585850085858500ULL, 0x5757570057575700ULL, 0x3535350035353500ULL,
+ 0xeaeaea00eaeaea00ULL, 0x0c0c0c000c0c0c00ULL, 0xaeaeae00aeaeae00ULL,
+ 0x4141410041414100ULL, 0x2323230023232300ULL, 0xefefef00efefef00ULL,
+ 0x6b6b6b006b6b6b00ULL, 0x9393930093939300ULL, 0x4545450045454500ULL,
+ 0x1919190019191900ULL, 0xa5a5a500a5a5a500ULL, 0x2121210021212100ULL,
+ 0xededed00ededed00ULL, 0x0e0e0e000e0e0e00ULL, 0x4f4f4f004f4f4f00ULL,
+ 0x4e4e4e004e4e4e00ULL, 0x1d1d1d001d1d1d00ULL, 0x6565650065656500ULL,
+ 0x9292920092929200ULL, 0xbdbdbd00bdbdbd00ULL, 0x8686860086868600ULL,
+ 0xb8b8b800b8b8b800ULL, 0xafafaf00afafaf00ULL, 0x8f8f8f008f8f8f00ULL,
+ 0x7c7c7c007c7c7c00ULL, 0xebebeb00ebebeb00ULL, 0x1f1f1f001f1f1f00ULL,
+ 0xcecece00cecece00ULL, 0x3e3e3e003e3e3e00ULL, 0x3030300030303000ULL,
+ 0xdcdcdc00dcdcdc00ULL, 0x5f5f5f005f5f5f00ULL, 0x5e5e5e005e5e5e00ULL,
+ 0xc5c5c500c5c5c500ULL, 0x0b0b0b000b0b0b00ULL, 0x1a1a1a001a1a1a00ULL,
+ 0xa6a6a600a6a6a600ULL, 0xe1e1e100e1e1e100ULL, 0x3939390039393900ULL,
+ 0xcacaca00cacaca00ULL, 0xd5d5d500d5d5d500ULL, 0x4747470047474700ULL,
+ 0x5d5d5d005d5d5d00ULL, 0x3d3d3d003d3d3d00ULL, 0xd9d9d900d9d9d900ULL,
+ 0x0101010001010100ULL, 0x5a5a5a005a5a5a00ULL, 0xd6d6d600d6d6d600ULL,
+ 0x5151510051515100ULL, 0x5656560056565600ULL, 0x6c6c6c006c6c6c00ULL,
+ 0x4d4d4d004d4d4d00ULL, 0x8b8b8b008b8b8b00ULL, 0x0d0d0d000d0d0d00ULL,
+ 0x9a9a9a009a9a9a00ULL, 0x6666660066666600ULL, 0xfbfbfb00fbfbfb00ULL,
+ 0xcccccc00cccccc00ULL, 0xb0b0b000b0b0b000ULL, 0x2d2d2d002d2d2d00ULL,
+ 0x7474740074747400ULL, 0x1212120012121200ULL, 0x2b2b2b002b2b2b00ULL,
+ 0x2020200020202000ULL, 0xf0f0f000f0f0f000ULL, 0xb1b1b100b1b1b100ULL,
+ 0x8484840084848400ULL, 0x9999990099999900ULL, 0xdfdfdf00dfdfdf00ULL,
+ 0x4c4c4c004c4c4c00ULL, 0xcbcbcb00cbcbcb00ULL, 0xc2c2c200c2c2c200ULL,
+ 0x3434340034343400ULL, 0x7e7e7e007e7e7e00ULL, 0x7676760076767600ULL,
+ 0x0505050005050500ULL, 0x6d6d6d006d6d6d00ULL, 0xb7b7b700b7b7b700ULL,
+ 0xa9a9a900a9a9a900ULL, 0x3131310031313100ULL, 0xd1d1d100d1d1d100ULL,
+ 0x1717170017171700ULL, 0x0404040004040400ULL, 0xd7d7d700d7d7d700ULL,
+ 0x1414140014141400ULL, 0x5858580058585800ULL, 0x3a3a3a003a3a3a00ULL,
+ 0x6161610061616100ULL, 0xdedede00dedede00ULL, 0x1b1b1b001b1b1b00ULL,
+ 0x1111110011111100ULL, 0x1c1c1c001c1c1c00ULL, 0x3232320032323200ULL,
+ 0x0f0f0f000f0f0f00ULL, 0x9c9c9c009c9c9c00ULL, 0x1616160016161600ULL,
+ 0x5353530053535300ULL, 0x1818180018181800ULL, 0xf2f2f200f2f2f200ULL,
+ 0x2222220022222200ULL, 0xfefefe00fefefe00ULL, 0x4444440044444400ULL,
+ 0xcfcfcf00cfcfcf00ULL, 0xb2b2b200b2b2b200ULL, 0xc3c3c300c3c3c300ULL,
+ 0xb5b5b500b5b5b500ULL, 0x7a7a7a007a7a7a00ULL, 0x9191910091919100ULL,
+ 0x2424240024242400ULL, 0x0808080008080800ULL, 0xe8e8e800e8e8e800ULL,
+ 0xa8a8a800a8a8a800ULL, 0x6060600060606000ULL, 0xfcfcfc00fcfcfc00ULL,
+ 0x6969690069696900ULL, 0x5050500050505000ULL, 0xaaaaaa00aaaaaa00ULL,
+ 0xd0d0d000d0d0d000ULL, 0xa0a0a000a0a0a000ULL, 0x7d7d7d007d7d7d00ULL,
+ 0xa1a1a100a1a1a100ULL, 0x8989890089898900ULL, 0x6262620062626200ULL,
+ 0x9797970097979700ULL, 0x5454540054545400ULL, 0x5b5b5b005b5b5b00ULL,
+ 0x1e1e1e001e1e1e00ULL, 0x9595950095959500ULL, 0xe0e0e000e0e0e000ULL,
+ 0xffffff00ffffff00ULL, 0x6464640064646400ULL, 0xd2d2d200d2d2d200ULL,
+ 0x1010100010101000ULL, 0xc4c4c400c4c4c400ULL, 0x0000000000000000ULL,
+ 0x4848480048484800ULL, 0xa3a3a300a3a3a300ULL, 0xf7f7f700f7f7f700ULL,
+ 0x7575750075757500ULL, 0xdbdbdb00dbdbdb00ULL, 0x8a8a8a008a8a8a00ULL,
+ 0x0303030003030300ULL, 0xe6e6e600e6e6e600ULL, 0xdadada00dadada00ULL,
+ 0x0909090009090900ULL, 0x3f3f3f003f3f3f00ULL, 0xdddddd00dddddd00ULL,
+ 0x9494940094949400ULL, 0x8787870087878700ULL, 0x5c5c5c005c5c5c00ULL,
+ 0x8383830083838300ULL, 0x0202020002020200ULL, 0xcdcdcd00cdcdcd00ULL,
+ 0x4a4a4a004a4a4a00ULL, 0x9090900090909000ULL, 0x3333330033333300ULL,
+ 0x7373730073737300ULL, 0x6767670067676700ULL, 0xf6f6f600f6f6f600ULL,
+ 0xf3f3f300f3f3f300ULL, 0x9d9d9d009d9d9d00ULL, 0x7f7f7f007f7f7f00ULL,
+ 0xbfbfbf00bfbfbf00ULL, 0xe2e2e200e2e2e200ULL, 0x5252520052525200ULL,
+ 0x9b9b9b009b9b9b00ULL, 0xd8d8d800d8d8d800ULL, 0x2626260026262600ULL,
+ 0xc8c8c800c8c8c800ULL, 0x3737370037373700ULL, 0xc6c6c600c6c6c600ULL,
+ 0x3b3b3b003b3b3b00ULL, 0x8181810081818100ULL, 0x9696960096969600ULL,
+ 0x6f6f6f006f6f6f00ULL, 0x4b4b4b004b4b4b00ULL, 0x1313130013131300ULL,
+ 0xbebebe00bebebe00ULL, 0x6363630063636300ULL, 0x2e2e2e002e2e2e00ULL,
+ 0xe9e9e900e9e9e900ULL, 0x7979790079797900ULL, 0xa7a7a700a7a7a700ULL,
+ 0x8c8c8c008c8c8c00ULL, 0x9f9f9f009f9f9f00ULL, 0x6e6e6e006e6e6e00ULL,
+ 0xbcbcbc00bcbcbc00ULL, 0x8e8e8e008e8e8e00ULL, 0x2929290029292900ULL,
+ 0xf5f5f500f5f5f500ULL, 0xf9f9f900f9f9f900ULL, 0xb6b6b600b6b6b600ULL,
+ 0x2f2f2f002f2f2f00ULL, 0xfdfdfd00fdfdfd00ULL, 0xb4b4b400b4b4b400ULL,
+ 0x5959590059595900ULL, 0x7878780078787800ULL, 0x9898980098989800ULL,
+ 0x0606060006060600ULL, 0x6a6a6a006a6a6a00ULL, 0xe7e7e700e7e7e700ULL,
+ 0x4646460046464600ULL, 0x7171710071717100ULL, 0xbababa00bababa00ULL,
+ 0xd4d4d400d4d4d400ULL, 0x2525250025252500ULL, 0xababab00ababab00ULL,
+ 0x4242420042424200ULL, 0x8888880088888800ULL, 0xa2a2a200a2a2a200ULL,
+ 0x8d8d8d008d8d8d00ULL, 0xfafafa00fafafa00ULL, 0x7272720072727200ULL,
+ 0x0707070007070700ULL, 0xb9b9b900b9b9b900ULL, 0x5555550055555500ULL,
+ 0xf8f8f800f8f8f800ULL, 0xeeeeee00eeeeee00ULL, 0xacacac00acacac00ULL,
+ 0x0a0a0a000a0a0a00ULL, 0x3636360036363600ULL, 0x4949490049494900ULL,
+ 0x2a2a2a002a2a2a00ULL, 0x6868680068686800ULL, 0x3c3c3c003c3c3c00ULL,
+ 0x3838380038383800ULL, 0xf1f1f100f1f1f100ULL, 0xa4a4a400a4a4a400ULL,
+ 0x4040400040404000ULL, 0x2828280028282800ULL, 0xd3d3d300d3d3d300ULL,
+ 0x7b7b7b007b7b7b00ULL, 0xbbbbbb00bbbbbb00ULL, 0xc9c9c900c9c9c900ULL,
+ 0x4343430043434300ULL, 0xc1c1c100c1c1c100ULL, 0x1515150015151500ULL,
+ 0xe3e3e300e3e3e300ULL, 0xadadad00adadad00ULL, 0xf4f4f400f4f4f400ULL,
+ 0x7777770077777700ULL, 0xc7c7c700c7c7c700ULL, 0x8080800080808000ULL,
+ 0x9e9e9e009e9e9e00ULL,
+};
+
+
+/**
+ * Stuff related to the Camellia key schedule
+ */
+#define subl(x) subL[(x)]
+#define subr(x) subR[(x)]
+
+void camellia_set_key(const unsigned __int8 key[], unsigned __int8 *ks)
+{
+ uint32 kll,klr,krl,krr; /* left half of key */
+ uint32 krll,krlr,krrl,krrr; /* right half of key */
+ uint32 il, ir, t0, t1, w0, w1; /* temporary variables */
+ uint32 kw4l, kw4r, dw, tl, tr;
+ uint32 subL[34];
+ uint32 subR[34];
+ uint32 *subkey = (uint32*) ks;
+ /**
+ * key = (kll || klr || krl || krr || krll || krlr || krrl || krrr)
+ * (|| is concatination)
+ */
+ kll = GETU32(key );
+ klr = GETU32(key + 4);
+ krl = GETU32(key + 8);
+ krr = GETU32(key + 12);
+ krll = GETU32(key + 16);
+ krlr = GETU32(key + 20);
+ krrl = GETU32(key + 24);
+ krrr = GETU32(key + 28);
+ /* generate KL dependent subkeys */
+ subl(0) = kll; subr(0) = klr;
+ subl(1) = krl; subr(1) = krr;
+ CAMELLIA_ROLDQo32(kll, klr, krl, krr, w0, w1, 45);
+ subl(12) = kll; subr(12) = klr;
+ subl(13) = krl; subr(13) = krr;
+ CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15);
+ subl(16) = kll; subr(16) = klr;
+ subl(17) = krl; subr(17) = krr;
+ CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 17);
+ subl(22) = kll; subr(22) = klr;
+ subl(23) = krl; subr(23) = krr;
+ CAMELLIA_ROLDQo32(kll, klr, krl, krr, w0, w1, 34);
+ subl(30) = kll; subr(30) = klr;
+ subl(31) = krl; subr(31) = krr;
+ /* generate KR dependent subkeys */
+ CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 15);
+ subl(4) = krll; subr(4) = krlr;
+ subl(5) = krrl; subr(5) = krrr;
+ CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 15);
+ subl(8) = krll; subr(8) = krlr;
+ subl(9) = krrl; subr(9) = krrr;
+ CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 30);
+ subl(18) = krll; subr(18) = krlr;
+ subl(19) = krrl; subr(19) = krrr;
+ CAMELLIA_ROLDQo32(krll, krlr, krrl, krrr, w0, w1, 34);
+ subl(26) = krll; subr(26) = krlr;
+ subl(27) = krrl; subr(27) = krrr;
+ CAMELLIA_ROLDQo32(krll, krlr, krrl, krrr, w0, w1, 34);
+ /* generate KA */
+ kll = subl(0) ^ krll; klr = subr(0) ^ krlr;
+ krl = subl(1) ^ krrl; krr = subr(1) ^ krrr;
+ CAMELLIA_F(kll, klr,
+ CAMELLIA_SIGMA1L, CAMELLIA_SIGMA1R,
+ w0, w1, il, ir, t0, t1);
+ krl ^= w0; krr ^= w1;
+ CAMELLIA_F(krl, krr,
+ CAMELLIA_SIGMA2L, CAMELLIA_SIGMA2R,
+ kll, klr, il, ir, t0, t1);
+ kll ^= krll; klr ^= krlr;
+ CAMELLIA_F(kll, klr,
+ CAMELLIA_SIGMA3L, CAMELLIA_SIGMA3R,
+ krl, krr, il, ir, t0, t1);
+ krl ^= w0 ^ krrl; krr ^= w1 ^ krrr;
+ CAMELLIA_F(krl, krr,
+ CAMELLIA_SIGMA4L, CAMELLIA_SIGMA4R,
+ w0, w1, il, ir, t0, t1);
+ kll ^= w0; klr ^= w1;
+ /* generate KB */
+ krll ^= kll; krlr ^= klr;
+ krrl ^= krl; krrr ^= krr;
+ CAMELLIA_F(krll, krlr,
+ CAMELLIA_SIGMA5L, CAMELLIA_SIGMA5R,
+ w0, w1, il, ir, t0, t1);
+ krrl ^= w0; krrr ^= w1;
+ CAMELLIA_F(krrl, krrr,
+ CAMELLIA_SIGMA6L, CAMELLIA_SIGMA6R,
+ w0, w1, il, ir, t0, t1);
+ krll ^= w0; krlr ^= w1;
+ /* generate KA dependent subkeys */
+ CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15);
+ subl(6) = kll; subr(6) = klr;
+ subl(7) = krl; subr(7) = krr;
+ CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 30);
+ subl(14) = kll; subr(14) = klr;
+ subl(15) = krl; subr(15) = krr;
+ subl(24) = klr; subr(24) = krl;
+ subl(25) = krr; subr(25) = kll;
+ CAMELLIA_ROLDQo32(kll, klr, krl, krr, w0, w1, 49);
+ subl(28) = kll; subr(28) = klr;
+ subl(29) = krl; subr(29) = krr;
+ /* generate KB dependent subkeys */
+ subl(2) = krll; subr(2) = krlr;
+ subl(3) = krrl; subr(3) = krrr;
+ CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 30);
+ subl(10) = krll; subr(10) = krlr;
+ subl(11) = krrl; subr(11) = krrr;
+ CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 30);
+ subl(20) = krll; subr(20) = krlr;
+ subl(21) = krrl; subr(21) = krrr;
+ CAMELLIA_ROLDQo32(krll, krlr, krrl, krrr, w0, w1, 51);
+ subl(32) = krll; subr(32) = krlr;
+ subl(33) = krrl; subr(33) = krrr;
+ /* absorb kw2 to other subkeys */
+ subl(3) ^= subl(1); subr(3) ^= subr(1);
+ subl(5) ^= subl(1); subr(5) ^= subr(1);
+ subl(7) ^= subl(1); subr(7) ^= subr(1);
+ subl(1) ^= subr(1) & ~subr(9);
+ dw = subl(1) & subl(9), subr(1) ^= CAMELLIA_RL1(dw);
+ subl(11) ^= subl(1); subr(11) ^= subr(1);
+ subl(13) ^= subl(1); subr(13) ^= subr(1);
+ subl(15) ^= subl(1); subr(15) ^= subr(1);
+ subl(1) ^= subr(1) & ~subr(17);
+ dw = subl(1) & subl(17), subr(1) ^= CAMELLIA_RL1(dw);
+ subl(19) ^= subl(1); subr(19) ^= subr(1);
+ subl(21) ^= subl(1); subr(21) ^= subr(1);
+ subl(23) ^= subl(1); subr(23) ^= subr(1);
+ subl(1) ^= subr(1) & ~subr(25);
+ dw = subl(1) & subl(25), subr(1) ^= CAMELLIA_RL1(dw);
+ subl(27) ^= subl(1); subr(27) ^= subr(1);
+ subl(29) ^= subl(1); subr(29) ^= subr(1);
+ subl(31) ^= subl(1); subr(31) ^= subr(1);
+ subl(32) ^= subl(1); subr(32) ^= subr(1);
+ /* absorb kw4 to other subkeys */
+ kw4l = subl(33); kw4r = subr(33);
+ subl(30) ^= kw4l; subr(30) ^= kw4r;
+ subl(28) ^= kw4l; subr(28) ^= kw4r;
+ subl(26) ^= kw4l; subr(26) ^= kw4r;
+ kw4l ^= kw4r & ~subr(24);
+ dw = kw4l & subl(24), kw4r ^= CAMELLIA_RL1(dw);
+ subl(22) ^= kw4l; subr(22) ^= kw4r;
+ subl(20) ^= kw4l; subr(20) ^= kw4r;
+ subl(18) ^= kw4l; subr(18) ^= kw4r;
+ kw4l ^= kw4r & ~subr(16);
+ dw = kw4l & subl(16), kw4r ^= CAMELLIA_RL1(dw);
+ subl(14) ^= kw4l; subr(14) ^= kw4r;
+ subl(12) ^= kw4l; subr(12) ^= kw4r;
+ subl(10) ^= kw4l; subr(10) ^= kw4r;
+ kw4l ^= kw4r & ~subr(8);
+ dw = kw4l & subl(8), kw4r ^= CAMELLIA_RL1(dw);
+ subl(6) ^= kw4l; subr(6) ^= kw4r;
+ subl(4) ^= kw4l; subr(4) ^= kw4r;
+ subl(2) ^= kw4l; subr(2) ^= kw4r;
+ subl(0) ^= kw4l; subr(0) ^= kw4r;
+ /* key XOR is end of F-function */
+ CamelliaSubkeyL(0) = subl(0) ^ subl(2);
+ CamelliaSubkeyR(0) = subr(0) ^ subr(2);
+ CamelliaSubkeyL(2) = subl(3);
+ CamelliaSubkeyR(2) = subr(3);
+ CamelliaSubkeyL(3) = subl(2) ^ subl(4);
+ CamelliaSubkeyR(3) = subr(2) ^ subr(4);
+ CamelliaSubkeyL(4) = subl(3) ^ subl(5);
+ CamelliaSubkeyR(4) = subr(3) ^ subr(5);
+ CamelliaSubkeyL(5) = subl(4) ^ subl(6);
+ CamelliaSubkeyR(5) = subr(4) ^ subr(6);
+ CamelliaSubkeyL(6) = subl(5) ^ subl(7);
+ CamelliaSubkeyR(6) = subr(5) ^ subr(7);
+ tl = subl(10) ^ (subr(10) & ~subr(8));
+ dw = tl & subl(8), tr = subr(10) ^ CAMELLIA_RL1(dw);
+ CamelliaSubkeyL(7) = subl(6) ^ tl;
+ CamelliaSubkeyR(7) = subr(6) ^ tr;
+ CamelliaSubkeyL(8) = subl(8);
+ CamelliaSubkeyR(8) = subr(8);
+ CamelliaSubkeyL(9) = subl(9);
+ CamelliaSubkeyR(9) = subr(9);
+ tl = subl(7) ^ (subr(7) & ~subr(9));
+ dw = tl & subl(9), tr = subr(7) ^ CAMELLIA_RL1(dw);
+ CamelliaSubkeyL(10) = tl ^ subl(11);
+ CamelliaSubkeyR(10) = tr ^ subr(11);
+ CamelliaSubkeyL(11) = subl(10) ^ subl(12);
+ CamelliaSubkeyR(11) = subr(10) ^ subr(12);
+ CamelliaSubkeyL(12) = subl(11) ^ subl(13);
+ CamelliaSubkeyR(12) = subr(11) ^ subr(13);
+ CamelliaSubkeyL(13) = subl(12) ^ subl(14);
+ CamelliaSubkeyR(13) = subr(12) ^ subr(14);
+ CamelliaSubkeyL(14) = subl(13) ^ subl(15);
+ CamelliaSubkeyR(14) = subr(13) ^ subr(15);
+ tl = subl(18) ^ (subr(18) & ~subr(16));
+ dw = tl & subl(16), tr = subr(18) ^ CAMELLIA_RL1(dw);
+ CamelliaSubkeyL(15) = subl(14) ^ tl;
+ CamelliaSubkeyR(15) = subr(14) ^ tr;
+ CamelliaSubkeyL(16) = subl(16);
+ CamelliaSubkeyR(16) = subr(16);
+ CamelliaSubkeyL(17) = subl(17);
+ CamelliaSubkeyR(17) = subr(17);
+ tl = subl(15) ^ (subr(15) & ~subr(17));
+ dw = tl & subl(17), tr = subr(15) ^ CAMELLIA_RL1(dw);
+ CamelliaSubkeyL(18) = tl ^ subl(19);
+ CamelliaSubkeyR(18) = tr ^ subr(19);
+ CamelliaSubkeyL(19) = subl(18) ^ subl(20);
+ CamelliaSubkeyR(19) = subr(18) ^ subr(20);
+ CamelliaSubkeyL(20) = subl(19) ^ subl(21);
+ CamelliaSubkeyR(20) = subr(19) ^ subr(21);
+ CamelliaSubkeyL(21) = subl(20) ^ subl(22);
+ CamelliaSubkeyR(21) = subr(20) ^ subr(22);
+ CamelliaSubkeyL(22) = subl(21) ^ subl(23);
+ CamelliaSubkeyR(22) = subr(21) ^ subr(23);
+ tl = subl(26) ^ (subr(26) & ~subr(24));
+ dw = tl & subl(24), tr = subr(26) ^ CAMELLIA_RL1(dw);
+ CamelliaSubkeyL(23) = subl(22) ^ tl;
+ CamelliaSubkeyR(23) = subr(22) ^ tr;
+ CamelliaSubkeyL(24) = subl(24);
+ CamelliaSubkeyR(24) = subr(24);
+ CamelliaSubkeyL(25) = subl(25);
+ CamelliaSubkeyR(25) = subr(25);
+ tl = subl(23) ^ (subr(23) & ~subr(25));
+ dw = tl & subl(25), tr = subr(23) ^ CAMELLIA_RL1(dw);
+ CamelliaSubkeyL(26) = tl ^ subl(27);
+ CamelliaSubkeyR(26) = tr ^ subr(27);
+ CamelliaSubkeyL(27) = subl(26) ^ subl(28);
+ CamelliaSubkeyR(27) = subr(26) ^ subr(28);
+ CamelliaSubkeyL(28) = subl(27) ^ subl(29);
+ CamelliaSubkeyR(28) = subr(27) ^ subr(29);
+ CamelliaSubkeyL(29) = subl(28) ^ subl(30);
+ CamelliaSubkeyR(29) = subr(28) ^ subr(30);
+ CamelliaSubkeyL(30) = subl(29) ^ subl(31);
+ CamelliaSubkeyR(30) = subr(29) ^ subr(31);
+ CamelliaSubkeyL(31) = subl(30);
+ CamelliaSubkeyR(31) = subr(30);
+ CamelliaSubkeyL(32) = subl(32) ^ subl(31);
+ CamelliaSubkeyR(32) = subr(32) ^ subr(31);
+ return;
+}
+
+void camellia_encrypt(const unsigned __int8 *inBlock, unsigned __int8 *outBlock, unsigned __int8 *ks)
+{
+ camellia_encrypt_asm (ks, outBlock, inBlock);
+}
+
+void camellia_decrypt(const unsigned __int8 *inBlock, unsigned __int8 *outBlock, unsigned __int8 *ks)
+{
+ camellia_decrypt_asm (ks, outBlock, inBlock);
+}
+
+void camellia_encrypt_blocks(unsigned __int8 *instance, const byte* in_blk, byte* out_blk, uint32 blockCount)
+{
+#if !defined (_UEFI)
+ if ((blockCount >= 16) && IsCpuIntel() && IsAesHwCpuSupported () && HasSAVX()) /* on AMD cpu, AVX is too slow */
+ {
+#if defined (TC_WINDOWS_DRIVER)
+ XSTATE_SAVE SaveState;
+ if (NT_SUCCESS (KeSaveExtendedProcessorState(XSTATE_MASK_GSSE, &SaveState)))
+ {
+#endif
+ while (blockCount >= 16)
+ {
+ camellia_ecb_enc_16way (instance, out_blk, in_blk);
+ out_blk += 16 * 16;
+ in_blk += 16 * 16;
+ blockCount -= 16;
+ }
+#if defined (TC_WINDOWS_DRIVER)
+ KeRestoreExtendedProcessorState(&SaveState);
+ }
+#endif
+ }
+#endif
+
+ while (blockCount >= 2)
+ {
+ camellia_enc_blk2 (instance, out_blk, in_blk);
+ out_blk += 2 * 16;
+ in_blk += 2 * 16;
+ blockCount -= 2;
+ }
+
+ if (blockCount)
+ camellia_encrypt (in_blk, out_blk, instance);
+}
+
+void camellia_decrypt_blocks(unsigned __int8 *instance, const byte* in_blk, byte* out_blk, uint32 blockCount)
+{
+#if !defined (_UEFI)
+ if ((blockCount >= 16) && IsCpuIntel() && IsAesHwCpuSupported () && HasSAVX()) /* on AMD cpu, AVX is too slow */
+ {
+#if defined (TC_WINDOWS_DRIVER)
+ XSTATE_SAVE SaveState;
+ if (NT_SUCCESS (KeSaveExtendedProcessorState(XSTATE_MASK_GSSE, &SaveState)))
+ {
+#endif
+ while (blockCount >= 16)
+ {
+ camellia_ecb_dec_16way (instance, out_blk, in_blk);
+ out_blk += 16 * 16;
+ in_blk += 16 * 16;
+ blockCount -= 16;
+ }
+#if defined (TC_WINDOWS_DRIVER)
+ KeRestoreExtendedProcessorState(&SaveState);
+ }
+#endif
+ }
+#endif
+
+ while (blockCount >= 2)
+ {
+ camellia_dec_blk2 (instance, out_blk, in_blk);
+ out_blk += 2 * 16;
+ in_blk += 2 * 16;
+ blockCount -= 2;
+ }
+
+ if (blockCount)
+ camellia_decrypt (in_blk, out_blk, instance);
+}
+
+#else
+
+/*
+This code is written by kerukuro for cppcrypto library (http://cppcrypto.sourceforge.net/)
+and released into public domain.
+*/
+
+/* Adapted for VeraCrypt */
//#define CPPCRYPTO_DEBUG
@@ -721,3 +1883,5 @@ void camellia_decrypt(const unsigned __int8 *in, unsigned __int8 *out, unsigned
*(uint64*)out = bswap_64(l);
*(uint64*)(out + 8) = bswap_64(r);
}
+
+#endif
diff --git a/src/Crypto/Camellia.h b/src/Crypto/Camellia.h
index 75e89b5..988203d 100644
--- a/src/Crypto/Camellia.h
+++ b/src/Crypto/Camellia.h
@@ -2,6 +2,7 @@
#define HEADER_Crypto_Camellia
#include "Common/Tcdefs.h"
+#include "config.h"
#ifdef __cplusplus
extern "C"
@@ -16,6 +17,11 @@ void camellia_set_key(const unsigned __int8 userKey[], unsigned __int8 *ks);
void camellia_encrypt(const unsigned __int8 *inBlock, unsigned __int8 *outBlock, unsigned __int8 *ks);
void camellia_decrypt(const unsigned __int8 *inBlock, unsigned __int8 *outBlock, unsigned __int8 *ks);
+#if CRYPTOPP_BOOL_X64
+void camellia_encrypt_blocks(unsigned __int8 *ks, const byte* in_blk, byte* out_blk, uint32 blockCount);
+void camellia_decrypt_blocks(unsigned __int8 *ks, const byte* in_blk, byte* out_blk, uint32 blockCount);
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/src/Crypto/Camellia_aesni_x64.S b/src/Crypto/Camellia_aesni_x64.S
new file mode 100644
index 0000000..f3008ee
--- /dev/null
+++ b/src/Crypto/Camellia_aesni_x64.S
@@ -0,0 +1,340 @@
+/* camellia_aesni.S ver 1.2
+ *
+ * Copyright © 2012-2013 Jussi Kivilinna <jussi.kivilinna@iki.fi>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+ /* Adapted to VeraCrypt
+ - original file pre-processed using "gcc -E"
+ - added instructions at begining of each functiont to adapt to Windows parameters passing convention
+ - Fix "'ADDR32' relocation" error when building Windows driver by explicitely using %rip addressing when
+ accessing various locally defined data variables. This has no performance impact.
+ */
+
+.data
+.align 16
+
+
+.Lshufb_16x16b:
+ .byte 0 + (0), 4 + (0), 8 + (0), 12 + (0), 0 + (1), 4 + (1), 8 + (1), 12 + (1), 0 + (2), 4 + (2), 8 + (2), 12 + (2), 0 + (3), 4 + (3), 8 + (3), 12 + (3);
+
+.Lpack_bswap:
+ .long 0x00010203
+ .long 0x04050607
+ .long 0x80808080
+ .long 0x80808080
+
+
+.Lbswap128_mask:
+ .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
+
+.Lpre_tf_lo_s1:
+ .byte 0x45, 0xe8, 0x40, 0xed, 0x2e, 0x83, 0x2b, 0x86
+ .byte 0x4b, 0xe6, 0x4e, 0xe3, 0x20, 0x8d, 0x25, 0x88
+.Lpre_tf_hi_s1:
+ .byte 0x00, 0x51, 0xf1, 0xa0, 0x8a, 0xdb, 0x7b, 0x2a
+ .byte 0x09, 0x58, 0xf8, 0xa9, 0x83, 0xd2, 0x72, 0x23
+
+.Lpre_tf_lo_s4:
+ .byte 0x45, 0x40, 0x2e, 0x2b, 0x4b, 0x4e, 0x20, 0x25
+ .byte 0x14, 0x11, 0x7f, 0x7a, 0x1a, 0x1f, 0x71, 0x74
+.Lpre_tf_hi_s4:
+ .byte 0x00, 0xf1, 0x8a, 0x7b, 0x09, 0xf8, 0x83, 0x72
+ .byte 0xad, 0x5c, 0x27, 0xd6, 0xa4, 0x55, 0x2e, 0xdf
+
+.Lpost_tf_lo_s1:
+ .byte 0x3c, 0xcc, 0xcf, 0x3f, 0x32, 0xc2, 0xc1, 0x31
+ .byte 0xdc, 0x2c, 0x2f, 0xdf, 0xd2, 0x22, 0x21, 0xd1
+.Lpost_tf_hi_s1:
+ .byte 0x00, 0xf9, 0x86, 0x7f, 0xd7, 0x2e, 0x51, 0xa8
+ .byte 0xa4, 0x5d, 0x22, 0xdb, 0x73, 0x8a, 0xf5, 0x0c
+
+.Lpost_tf_lo_s2:
+ .byte 0x78, 0x99, 0x9f, 0x7e, 0x64, 0x85, 0x83, 0x62
+ .byte 0xb9, 0x58, 0x5e, 0xbf, 0xa5, 0x44, 0x42, 0xa3
+.Lpost_tf_hi_s2:
+ .byte 0x00, 0xf3, 0x0d, 0xfe, 0xaf, 0x5c, 0xa2, 0x51
+ .byte 0x49, 0xba, 0x44, 0xb7, 0xe6, 0x15, 0xeb, 0x18
+
+.Lpost_tf_lo_s3:
+ .byte 0x1e, 0x66, 0xe7, 0x9f, 0x19, 0x61, 0xe0, 0x98
+ .byte 0x6e, 0x16, 0x97, 0xef, 0x69, 0x11, 0x90, 0xe8
+.Lpost_tf_hi_s3:
+ .byte 0x00, 0xfc, 0x43, 0xbf, 0xeb, 0x17, 0xa8, 0x54
+ .byte 0x52, 0xae, 0x11, 0xed, 0xb9, 0x45, 0xfa, 0x06
+
+
+.Linv_shift_row:
+ .byte 0x00, 0x0d, 0x0a, 0x07, 0x04, 0x01, 0x0e, 0x0b
+ .byte 0x08, 0x05, 0x02, 0x0f, 0x0c, 0x09, 0x06, 0x03
+
+
+.align 4
+
+.L0f0f0f0f:
+ .long 0x0f0f0f0f
+
+.text
+
+.align 8
+
+__camellia_enc_blk16:
+
+ leaq 8 * 16(%rax), %rcx;
+
+ vmovdqu %xmm11, (%rax); vmovdqu %xmm15, (%rcx); vpunpckhdq %xmm4, %xmm0, %xmm15; vpunpckldq %xmm4, %xmm0, %xmm0; vpunpckldq %xmm12, %xmm8, %xmm11; vpunpckhdq %xmm12, %xmm8, %xmm8; vpunpckhqdq %xmm11, %xmm0, %xmm4; vpunpcklqdq %xmm11, %xmm0, %xmm0; vpunpckhqdq %xmm8, %xmm15, %xmm12; vpunpcklqdq %xmm8, %xmm15, %xmm8;; vpunpckhdq %xmm5, %xmm1, %xmm15; vpunpckldq %xmm5, %xmm1, %xmm1; vpunpckldq %xmm13, %xmm9, %xmm11; vpunpckhdq %xmm13, %xmm9, %xmm9; vpunpckhqdq %xmm11, %xmm1, %xmm5; vpunpcklqdq %xmm11, %xmm1, %xmm1; vpunpckhqdq %xmm9, %xmm15, %xmm13; vpunpcklqdq %xmm9, %xmm15, %xmm9;; vmovdqu (%rax), %xmm11; vmovdqu (%rcx), %xmm15; vmovdqu %xmm0, (%rax); vmovdqu %xmm4, (%rcx); vpunpckhdq %xmm6, %xmm2, %xmm4; vpunpckldq %xmm6, %xmm2, %xmm2; vpunpckldq %xmm14, %xmm10, %xmm0; vpunpckhdq %xmm14, %xmm10, %xmm10; vpunpckhqdq %xmm0, %xmm2, %xmm6; vpunpcklqdq %xmm0, %xmm2, %xmm2; vpunpckhqdq %xmm10, %xmm4, %xmm14; vpunpcklqdq %xmm10, %xmm4, %xmm10;; vpunpckhdq %xmm7, %xmm3, %xmm4; vpunpckldq %xmm7, %xmm3, %xmm3; vpunpckldq %xmm15, %xmm11, %xmm0; vpunpckhdq %xmm15, %xmm11, %xmm11; vpunpckhqdq %xmm0, %xmm3, %xmm7; vpunpcklqdq %xmm0, %xmm3, %xmm3; vpunpckhqdq %xmm11, %xmm4, %xmm15; vpunpcklqdq %xmm11, %xmm4, %xmm11;; vmovdqu .Lshufb_16x16b(%rip), %xmm0; vmovdqu (%rcx), %xmm4; vpshufb %xmm0, %xmm8, %xmm8; vpshufb %xmm0, %xmm12, %xmm12; vpshufb %xmm0, %xmm1, %xmm1; vpshufb %xmm0, %xmm5, %xmm5; vpshufb %xmm0, %xmm9, %xmm9; vpshufb %xmm0, %xmm13, %xmm13; vpshufb %xmm0, %xmm4, %xmm4; vpshufb %xmm0, %xmm2, %xmm2; vpshufb %xmm0, %xmm6, %xmm6; vpshufb %xmm0, %xmm10, %xmm10; vpshufb %xmm0, %xmm14, %xmm14; vpshufb %xmm0, %xmm3, %xmm3; vpshufb %xmm0, %xmm7, %xmm7; vpshufb %xmm0, %xmm11, %xmm11; vpshufb %xmm0, %xmm15, %xmm15; vmovdqu %xmm15, (%rcx); vmovdqu (%rax), %xmm15; vpshufb %xmm0, %xmm15, %xmm0; vmovdqu %xmm11, (%rax); vpunpckhdq %xmm1, %xmm0, %xmm15; vpunpckldq %xmm1, %xmm0, %xmm0; vpunpckldq %xmm3, %xmm2, %xmm11; vpunpckhdq %xmm3, %xmm2, %xmm2; vpunpckhqdq %xmm11, %xmm0, %xmm1; vpunpcklqdq %xmm11, %xmm0, %xmm0; vpunpckhqdq %xmm2, %xmm15, %xmm3; vpunpcklqdq %xmm2, %xmm15, %xmm2;; vpunpckhdq %xmm5, %xmm4, %xmm15; vpunpckldq %xmm5, %xmm4, %xmm4; vpunpckldq %xmm7, %xmm6, %xmm11; vpunpckhdq %xmm7, %xmm6, %xmm6; vpunpckhqdq %xmm11, %xmm4, %xmm5; vpunpcklqdq %xmm11, %xmm4, %xmm4; vpunpckhqdq %xmm6, %xmm15, %xmm7; vpunpcklqdq %xmm6, %xmm15, %xmm6;; vmovdqu (%rax), %xmm11; vmovdqu (%rcx), %xmm15; vmovdqu %xmm1, (%rax); vmovdqu %xmm5, (%rcx); vpunpckhdq %xmm9, %xmm8, %xmm5; vpunpckldq %xmm9, %xmm8, %xmm8; vpunpckldq %xmm11, %xmm10, %xmm1; vpunpckhdq %xmm11, %xmm10, %xmm10; vpunpckhqdq %xmm1, %xmm8, %xmm9; vpunpcklqdq %xmm1, %xmm8, %xmm8; vpunpckhqdq %xmm10, %xmm5, %xmm11; vpunpcklqdq %xmm10, %xmm5, %xmm10;; vpunpckhdq %xmm13, %xmm12, %xmm5; vpunpckldq %xmm13, %xmm12, %xmm12; vpunpckldq %xmm15, %xmm14, %xmm1; vpunpckhdq %xmm15, %xmm14, %xmm14; vpunpckhqdq %xmm1, %xmm12, %xmm13; vpunpcklqdq %xmm1, %xmm12, %xmm12; vpunpckhqdq %xmm14, %xmm5, %xmm15; vpunpcklqdq %xmm14, %xmm5, %xmm14;; vmovdqu (%rax), %xmm1; vmovdqu (%rcx), %xmm5;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax); vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovdqu %xmm12, 4 * 16(%rcx); vmovdqu %xmm13, 5 * 16(%rcx); vmovdqu %xmm14, 6 * 16(%rcx); vmovdqu %xmm15, 7 * 16(%rcx);;
+
+
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((0) + 2) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((0) + 2) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((0) + 4) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((0) + 4) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((0) + 6) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((0) + 6) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+
+
+ vpxor %xmm12, %xmm12, %xmm12; vmovd ((0 + (8) * 8) + 0)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand %xmm0, %xmm8, %xmm8; vpand %xmm1, %xmm9, %xmm9; vpand %xmm2, %xmm10, %xmm10; vpand %xmm3, %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor %xmm4, %xmm8, %xmm4; vmovdqu %xmm4, 4 * 16(%rax); vpxor %xmm5, %xmm9, %xmm5; vmovdqu %xmm5, 5 * 16(%rax); vpxor %xmm6, %xmm10, %xmm6; vmovdqu %xmm6, 6 * 16(%rax); vpxor %xmm7, %xmm11, %xmm7; vmovdqu %xmm7, 7 * 16(%rax); vmovd ((0 + (8) * 8) + 12)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor 4 * 16(%rcx), %xmm8, %xmm8; vpor 5 * 16(%rcx), %xmm9, %xmm9; vpor 6 * 16(%rcx), %xmm10, %xmm10; vpor 7 * 16(%rcx), %xmm11, %xmm11; vpxor 0 * 16(%rcx), %xmm8, %xmm8; vpxor 1 * 16(%rcx), %xmm9, %xmm9; vpxor 2 * 16(%rcx), %xmm10, %xmm10; vpxor 3 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovd ((0 + (8) * 8) + 8)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand 0 * 16(%rcx), %xmm8, %xmm8; vpand 1 * 16(%rcx), %xmm9, %xmm9; vpand 2 * 16(%rcx), %xmm10, %xmm10; vpand 3 * 16(%rcx), %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor 4 * 16(%rcx), %xmm8, %xmm8; vpxor 5 * 16(%rcx), %xmm9, %xmm9; vpxor 6 * 16(%rcx), %xmm10, %xmm10; vpxor 7 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 4 * 16(%rcx); vmovdqu %xmm9, 5 * 16(%rcx); vmovdqu %xmm10, 6 * 16(%rcx); vmovdqu %xmm11, 7 * 16(%rcx); vmovd ((0 + (8) * 8) + 4)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor %xmm4, %xmm8, %xmm8; vpor %xmm5, %xmm9, %xmm9; vpor %xmm6, %xmm10, %xmm10; vpor %xmm7, %xmm11, %xmm11; vpxor %xmm0, %xmm8, %xmm0; vmovdqu %xmm0, 0 * 16(%rax); vpxor %xmm1, %xmm9, %xmm1; vmovdqu %xmm1, 1 * 16(%rax); vpxor %xmm2, %xmm10, %xmm2; vmovdqu %xmm2, 2 * 16(%rax); vpxor %xmm3, %xmm11, %xmm3; vmovdqu %xmm3, 3 * 16(%rax);;
+
+
+
+
+
+
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((8) + 2) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((8) + 2) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((8) + 4) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((8) + 4) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((8) + 6) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((8) + 6) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+
+
+ vpxor %xmm12, %xmm12, %xmm12; vmovd ((0 + (16) * 8) + 0)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand %xmm0, %xmm8, %xmm8; vpand %xmm1, %xmm9, %xmm9; vpand %xmm2, %xmm10, %xmm10; vpand %xmm3, %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor %xmm4, %xmm8, %xmm4; vmovdqu %xmm4, 4 * 16(%rax); vpxor %xmm5, %xmm9, %xmm5; vmovdqu %xmm5, 5 * 16(%rax); vpxor %xmm6, %xmm10, %xmm6; vmovdqu %xmm6, 6 * 16(%rax); vpxor %xmm7, %xmm11, %xmm7; vmovdqu %xmm7, 7 * 16(%rax); vmovd ((0 + (16) * 8) + 12)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor 4 * 16(%rcx), %xmm8, %xmm8; vpor 5 * 16(%rcx), %xmm9, %xmm9; vpor 6 * 16(%rcx), %xmm10, %xmm10; vpor 7 * 16(%rcx), %xmm11, %xmm11; vpxor 0 * 16(%rcx), %xmm8, %xmm8; vpxor 1 * 16(%rcx), %xmm9, %xmm9; vpxor 2 * 16(%rcx), %xmm10, %xmm10; vpxor 3 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovd ((0 + (16) * 8) + 8)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand 0 * 16(%rcx), %xmm8, %xmm8; vpand 1 * 16(%rcx), %xmm9, %xmm9; vpand 2 * 16(%rcx), %xmm10, %xmm10; vpand 3 * 16(%rcx), %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor 4 * 16(%rcx), %xmm8, %xmm8; vpxor 5 * 16(%rcx), %xmm9, %xmm9; vpxor 6 * 16(%rcx), %xmm10, %xmm10; vpxor 7 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 4 * 16(%rcx); vmovdqu %xmm9, 5 * 16(%rcx); vmovdqu %xmm10, 6 * 16(%rcx); vmovdqu %xmm11, 7 * 16(%rcx); vmovd ((0 + (16) * 8) + 4)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor %xmm4, %xmm8, %xmm8; vpor %xmm5, %xmm9, %xmm9; vpor %xmm6, %xmm10, %xmm10; vpor %xmm7, %xmm11, %xmm11; vpxor %xmm0, %xmm8, %xmm0; vmovdqu %xmm0, 0 * 16(%rax); vpxor %xmm1, %xmm9, %xmm1; vmovdqu %xmm1, 1 * 16(%rax); vpxor %xmm2, %xmm10, %xmm2; vmovdqu %xmm2, 2 * 16(%rax); vpxor %xmm3, %xmm11, %xmm3; vmovdqu %xmm3, 3 * 16(%rax);;
+
+
+
+
+
+
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((16) + 2) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((16) + 2) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((16) + 4) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((16) + 4) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((16) + 6) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((16) + 6) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+ vpxor %xmm12, %xmm12, %xmm12; vmovd ((0 + (24) * 8) + 0)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand %xmm0, %xmm8, %xmm8; vpand %xmm1, %xmm9, %xmm9; vpand %xmm2, %xmm10, %xmm10; vpand %xmm3, %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor %xmm4, %xmm8, %xmm4; vmovdqu %xmm4, 4 * 16(%rax); vpxor %xmm5, %xmm9, %xmm5; vmovdqu %xmm5, 5 * 16(%rax); vpxor %xmm6, %xmm10, %xmm6; vmovdqu %xmm6, 6 * 16(%rax); vpxor %xmm7, %xmm11, %xmm7; vmovdqu %xmm7, 7 * 16(%rax); vmovd ((0 + (24) * 8) + 12)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor 4 * 16(%rcx), %xmm8, %xmm8; vpor 5 * 16(%rcx), %xmm9, %xmm9; vpor 6 * 16(%rcx), %xmm10, %xmm10; vpor 7 * 16(%rcx), %xmm11, %xmm11; vpxor 0 * 16(%rcx), %xmm8, %xmm8; vpxor 1 * 16(%rcx), %xmm9, %xmm9; vpxor 2 * 16(%rcx), %xmm10, %xmm10; vpxor 3 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovd ((0 + (24) * 8) + 8)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand 0 * 16(%rcx), %xmm8, %xmm8; vpand 1 * 16(%rcx), %xmm9, %xmm9; vpand 2 * 16(%rcx), %xmm10, %xmm10; vpand 3 * 16(%rcx), %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor 4 * 16(%rcx), %xmm8, %xmm8; vpxor 5 * 16(%rcx), %xmm9, %xmm9; vpxor 6 * 16(%rcx), %xmm10, %xmm10; vpxor 7 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 4 * 16(%rcx); vmovdqu %xmm9, 5 * 16(%rcx); vmovdqu %xmm10, 6 * 16(%rcx); vmovdqu %xmm11, 7 * 16(%rcx); vmovd ((0 + (24) * 8) + 4)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor %xmm4, %xmm8, %xmm8; vpor %xmm5, %xmm9, %xmm9; vpor %xmm6, %xmm10, %xmm10; vpor %xmm7, %xmm11, %xmm11; vpxor %xmm0, %xmm8, %xmm0; vmovdqu %xmm0, 0 * 16(%rax); vpxor %xmm1, %xmm9, %xmm1; vmovdqu %xmm1, 1 * 16(%rax); vpxor %xmm2, %xmm10, %xmm2; vmovdqu %xmm2, 2 * 16(%rax); vpxor %xmm3, %xmm11, %xmm3; vmovdqu %xmm3, 3 * 16(%rax);;
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((24) + 2) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((24) + 2) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((24) + 4) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((24) + 4) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((24) + 6) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((24) + 6) + (1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+ vmovdqu 0 * 16(%rcx), %xmm8;
+ vmovdqu 1 * 16(%rcx), %xmm9;
+ vmovdqu 2 * 16(%rcx), %xmm10;
+ vmovdqu 3 * 16(%rcx), %xmm11;
+ vmovdqu 4 * 16(%rcx), %xmm12;
+ vmovdqu 5 * 16(%rcx), %xmm13;
+ vmovdqu 6 * 16(%rcx), %xmm14;
+ vmovdqu 7 * 16(%rcx), %xmm15;
+
+ vmovdqu %xmm6, (%rax); vmovdqu %xmm7, 1 * 16(%rax); vpunpckhdq %xmm9, %xmm8, %xmm7; vpunpckldq %xmm9, %xmm8, %xmm8; vpunpckldq %xmm11, %xmm10, %xmm6; vpunpckhdq %xmm11, %xmm10, %xmm10; vpunpckhqdq %xmm6, %xmm8, %xmm9; vpunpcklqdq %xmm6, %xmm8, %xmm8; vpunpckhqdq %xmm10, %xmm7, %xmm11; vpunpcklqdq %xmm10, %xmm7, %xmm10;; vpunpckhdq %xmm13, %xmm12, %xmm7; vpunpckldq %xmm13, %xmm12, %xmm12; vpunpckldq %xmm15, %xmm14, %xmm6; vpunpckhdq %xmm15, %xmm14, %xmm14; vpunpckhqdq %xmm6, %xmm12, %xmm13; vpunpcklqdq %xmm6, %xmm12, %xmm12; vpunpckhqdq %xmm14, %xmm7, %xmm15; vpunpcklqdq %xmm14, %xmm7, %xmm14;; vmovdqu (%rax), %xmm6; vmovdqu 1 * 16(%rax), %xmm7; vmovdqu %xmm8, (%rax); vmovdqu %xmm9, 1 * 16(%rax); vpunpckhdq %xmm1, %xmm0, %xmm9; vpunpckldq %xmm1, %xmm0, %xmm0; vpunpckldq %xmm3, %xmm2, %xmm8; vpunpckhdq %xmm3, %xmm2, %xmm2; vpunpckhqdq %xmm8, %xmm0, %xmm1; vpunpcklqdq %xmm8, %xmm0, %xmm0; vpunpckhqdq %xmm2, %xmm9, %xmm3; vpunpcklqdq %xmm2, %xmm9, %xmm2;; vpunpckhdq %xmm5, %xmm4, %xmm9; vpunpckldq %xmm5, %xmm4, %xmm4; vpunpckldq %xmm7, %xmm6, %xmm8; vpunpckhdq %xmm7, %xmm6, %xmm6; vpunpckhqdq %xmm8, %xmm4, %xmm5; vpunpcklqdq %xmm8, %xmm4, %xmm4; vpunpckhqdq %xmm6, %xmm9, %xmm7; vpunpcklqdq %xmm6, %xmm9, %xmm6;; vmovdqu .Lshufb_16x16b(%rip), %xmm8; vmovdqu 1 * 16(%rax), %xmm9; vpshufb %xmm8, %xmm10, %xmm10; vpshufb %xmm8, %xmm11, %xmm11; vpshufb %xmm8, %xmm12, %xmm12; vpshufb %xmm8, %xmm13, %xmm13; vpshufb %xmm8, %xmm14, %xmm14; vpshufb %xmm8, %xmm15, %xmm15; vpshufb %xmm8, %xmm9, %xmm9; vpshufb %xmm8, %xmm0, %xmm0; vpshufb %xmm8, %xmm1, %xmm1; vpshufb %xmm8, %xmm2, %xmm2; vpshufb %xmm8, %xmm3, %xmm3; vpshufb %xmm8, %xmm4, %xmm4; vpshufb %xmm8, %xmm5, %xmm5; vpshufb %xmm8, %xmm6, %xmm6; vpshufb %xmm8, %xmm7, %xmm7; vmovdqu %xmm7, 1 * 16(%rax); vmovdqu (%rax), %xmm7; vpshufb %xmm8, %xmm7, %xmm8; vmovdqu %xmm6, (%rax); vpunpckhdq %xmm12, %xmm8, %xmm7; vpunpckldq %xmm12, %xmm8, %xmm8; vpunpckldq %xmm4, %xmm0, %xmm6; vpunpckhdq %xmm4, %xmm0, %xmm0; vpunpckhqdq %xmm6, %xmm8, %xmm12; vpunpcklqdq %xmm6, %xmm8, %xmm8; vpunpckhqdq %xmm0, %xmm7, %xmm4; vpunpcklqdq %xmm0, %xmm7, %xmm0;; vpunpckhdq %xmm13, %xmm9, %xmm7; vpunpckldq %xmm13, %xmm9, %xmm9; vpunpckldq %xmm5, %xmm1, %xmm6; vpunpckhdq %xmm5, %xmm1, %xmm1; vpunpckhqdq %xmm6, %xmm9, %xmm13; vpunpcklqdq %xmm6, %xmm9, %xmm9; vpunpckhqdq %xmm1, %xmm7, %xmm5; vpunpcklqdq %xmm1, %xmm7, %xmm1;; vmovdqu (%rax), %xmm6; vmovdqu 1 * 16(%rax), %xmm7; vmovdqu %xmm12, (%rax); vmovdqu %xmm13, 1 * 16(%rax); vpunpckhdq %xmm14, %xmm10, %xmm13; vpunpckldq %xmm14, %xmm10, %xmm10; vpunpckldq %xmm6, %xmm2, %xmm12; vpunpckhdq %xmm6, %xmm2, %xmm2; vpunpckhqdq %xmm12, %xmm10, %xmm14; vpunpcklqdq %xmm12, %xmm10, %xmm10; vpunpckhqdq %xmm2, %xmm13, %xmm6; vpunpcklqdq %xmm2, %xmm13, %xmm2;; vpunpckhdq %xmm15, %xmm11, %xmm13; vpunpckldq %xmm15, %xmm11, %xmm11; vpunpckldq %xmm7, %xmm3, %xmm12; vpunpckhdq %xmm7, %xmm3, %xmm3; vpunpckhqdq %xmm12, %xmm11, %xmm15; vpunpcklqdq %xmm12, %xmm11, %xmm11; vpunpckhqdq %xmm3, %xmm13, %xmm7; vpunpcklqdq %xmm3, %xmm13, %xmm3;; vmovdqu (%rax), %xmm12; vmovdqu 1 * 16(%rax), %xmm13;; vmovdqu %xmm0, (%rax); vmovq (256)(%rdi), %xmm0; vpshufb .Lpack_bswap(%rip), %xmm0, %xmm0; vpxor %xmm0, %xmm15, %xmm15; vpxor %xmm0, %xmm14, %xmm14; vpxor %xmm0, %xmm13, %xmm13; vpxor %xmm0, %xmm12, %xmm12; vpxor %xmm0, %xmm11, %xmm11; vpxor %xmm0, %xmm10, %xmm10; vpxor %xmm0, %xmm9, %xmm9; vpxor %xmm0, %xmm8, %xmm8; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm0, %xmm4, %xmm4; vpxor %xmm0, %xmm3, %xmm3; vpxor %xmm0, %xmm2, %xmm2; vpxor %xmm0, %xmm1, %xmm1; vpxor (%rax), %xmm0, %xmm0;;
+
+
+
+ ret;
+
+
+.align 8
+
+__camellia_dec_blk16:
+
+ leaq 8 * 16(%rax), %rcx;
+
+ vmovdqu %xmm11, (%rax); vmovdqu %xmm15, (%rcx); vpunpckhdq %xmm4, %xmm0, %xmm15; vpunpckldq %xmm4, %xmm0, %xmm0; vpunpckldq %xmm12, %xmm8, %xmm11; vpunpckhdq %xmm12, %xmm8, %xmm8; vpunpckhqdq %xmm11, %xmm0, %xmm4; vpunpcklqdq %xmm11, %xmm0, %xmm0; vpunpckhqdq %xmm8, %xmm15, %xmm12; vpunpcklqdq %xmm8, %xmm15, %xmm8;; vpunpckhdq %xmm5, %xmm1, %xmm15; vpunpckldq %xmm5, %xmm1, %xmm1; vpunpckldq %xmm13, %xmm9, %xmm11; vpunpckhdq %xmm13, %xmm9, %xmm9; vpunpckhqdq %xmm11, %xmm1, %xmm5; vpunpcklqdq %xmm11, %xmm1, %xmm1; vpunpckhqdq %xmm9, %xmm15, %xmm13; vpunpcklqdq %xmm9, %xmm15, %xmm9;; vmovdqu (%rax), %xmm11; vmovdqu (%rcx), %xmm15; vmovdqu %xmm0, (%rax); vmovdqu %xmm4, (%rcx); vpunpckhdq %xmm6, %xmm2, %xmm4; vpunpckldq %xmm6, %xmm2, %xmm2; vpunpckldq %xmm14, %xmm10, %xmm0; vpunpckhdq %xmm14, %xmm10, %xmm10; vpunpckhqdq %xmm0, %xmm2, %xmm6; vpunpcklqdq %xmm0, %xmm2, %xmm2; vpunpckhqdq %xmm10, %xmm4, %xmm14; vpunpcklqdq %xmm10, %xmm4, %xmm10;; vpunpckhdq %xmm7, %xmm3, %xmm4; vpunpckldq %xmm7, %xmm3, %xmm3; vpunpckldq %xmm15, %xmm11, %xmm0; vpunpckhdq %xmm15, %xmm11, %xmm11; vpunpckhqdq %xmm0, %xmm3, %xmm7; vpunpcklqdq %xmm0, %xmm3, %xmm3; vpunpckhqdq %xmm11, %xmm4, %xmm15; vpunpcklqdq %xmm11, %xmm4, %xmm11;; vmovdqu .Lshufb_16x16b(%rip), %xmm0; vmovdqu (%rcx), %xmm4; vpshufb %xmm0, %xmm8, %xmm8; vpshufb %xmm0, %xmm12, %xmm12; vpshufb %xmm0, %xmm1, %xmm1; vpshufb %xmm0, %xmm5, %xmm5; vpshufb %xmm0, %xmm9, %xmm9; vpshufb %xmm0, %xmm13, %xmm13; vpshufb %xmm0, %xmm4, %xmm4; vpshufb %xmm0, %xmm2, %xmm2; vpshufb %xmm0, %xmm6, %xmm6; vpshufb %xmm0, %xmm10, %xmm10; vpshufb %xmm0, %xmm14, %xmm14; vpshufb %xmm0, %xmm3, %xmm3; vpshufb %xmm0, %xmm7, %xmm7; vpshufb %xmm0, %xmm11, %xmm11; vpshufb %xmm0, %xmm15, %xmm15; vmovdqu %xmm15, (%rcx); vmovdqu (%rax), %xmm15; vpshufb %xmm0, %xmm15, %xmm0; vmovdqu %xmm11, (%rax); vpunpckhdq %xmm1, %xmm0, %xmm15; vpunpckldq %xmm1, %xmm0, %xmm0; vpunpckldq %xmm3, %xmm2, %xmm11; vpunpckhdq %xmm3, %xmm2, %xmm2; vpunpckhqdq %xmm11, %xmm0, %xmm1; vpunpcklqdq %xmm11, %xmm0, %xmm0; vpunpckhqdq %xmm2, %xmm15, %xmm3; vpunpcklqdq %xmm2, %xmm15, %xmm2;; vpunpckhdq %xmm5, %xmm4, %xmm15; vpunpckldq %xmm5, %xmm4, %xmm4; vpunpckldq %xmm7, %xmm6, %xmm11; vpunpckhdq %xmm7, %xmm6, %xmm6; vpunpckhqdq %xmm11, %xmm4, %xmm5; vpunpcklqdq %xmm11, %xmm4, %xmm4; vpunpckhqdq %xmm6, %xmm15, %xmm7; vpunpcklqdq %xmm6, %xmm15, %xmm6;; vmovdqu (%rax), %xmm11; vmovdqu (%rcx), %xmm15; vmovdqu %xmm1, (%rax); vmovdqu %xmm5, (%rcx); vpunpckhdq %xmm9, %xmm8, %xmm5; vpunpckldq %xmm9, %xmm8, %xmm8; vpunpckldq %xmm11, %xmm10, %xmm1; vpunpckhdq %xmm11, %xmm10, %xmm10; vpunpckhqdq %xmm1, %xmm8, %xmm9; vpunpcklqdq %xmm1, %xmm8, %xmm8; vpunpckhqdq %xmm10, %xmm5, %xmm11; vpunpcklqdq %xmm10, %xmm5, %xmm10;; vpunpckhdq %xmm13, %xmm12, %xmm5; vpunpckldq %xmm13, %xmm12, %xmm12; vpunpckldq %xmm15, %xmm14, %xmm1; vpunpckhdq %xmm15, %xmm14, %xmm14; vpunpckhqdq %xmm1, %xmm12, %xmm13; vpunpcklqdq %xmm1, %xmm12, %xmm12; vpunpckhqdq %xmm14, %xmm5, %xmm15; vpunpcklqdq %xmm14, %xmm5, %xmm14;; vmovdqu (%rax), %xmm1; vmovdqu (%rcx), %xmm5;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax); vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovdqu %xmm12, 4 * 16(%rcx); vmovdqu %xmm13, 5 * 16(%rcx); vmovdqu %xmm14, 6 * 16(%rcx); vmovdqu %xmm15, 7 * 16(%rcx);;
+
+
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((24) + 7) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((24) + 7) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((24) + 5) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((24) + 5) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((24) + 3) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((24) + 3) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+ vpxor %xmm12, %xmm12, %xmm12; vmovd ((0 + (24) * 8) + 8)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand %xmm0, %xmm8, %xmm8; vpand %xmm1, %xmm9, %xmm9; vpand %xmm2, %xmm10, %xmm10; vpand %xmm3, %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor %xmm4, %xmm8, %xmm4; vmovdqu %xmm4, 4 * 16(%rax); vpxor %xmm5, %xmm9, %xmm5; vmovdqu %xmm5, 5 * 16(%rax); vpxor %xmm6, %xmm10, %xmm6; vmovdqu %xmm6, 6 * 16(%rax); vpxor %xmm7, %xmm11, %xmm7; vmovdqu %xmm7, 7 * 16(%rax); vmovd ((0 + (24) * 8) + 4)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor 4 * 16(%rcx), %xmm8, %xmm8; vpor 5 * 16(%rcx), %xmm9, %xmm9; vpor 6 * 16(%rcx), %xmm10, %xmm10; vpor 7 * 16(%rcx), %xmm11, %xmm11; vpxor 0 * 16(%rcx), %xmm8, %xmm8; vpxor 1 * 16(%rcx), %xmm9, %xmm9; vpxor 2 * 16(%rcx), %xmm10, %xmm10; vpxor 3 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovd ((0 + (24) * 8) + 0)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand 0 * 16(%rcx), %xmm8, %xmm8; vpand 1 * 16(%rcx), %xmm9, %xmm9; vpand 2 * 16(%rcx), %xmm10, %xmm10; vpand 3 * 16(%rcx), %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor 4 * 16(%rcx), %xmm8, %xmm8; vpxor 5 * 16(%rcx), %xmm9, %xmm9; vpxor 6 * 16(%rcx), %xmm10, %xmm10; vpxor 7 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 4 * 16(%rcx); vmovdqu %xmm9, 5 * 16(%rcx); vmovdqu %xmm10, 6 * 16(%rcx); vmovdqu %xmm11, 7 * 16(%rcx); vmovd ((0 + (24) * 8) + 12)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor %xmm4, %xmm8, %xmm8; vpor %xmm5, %xmm9, %xmm9; vpor %xmm6, %xmm10, %xmm10; vpor %xmm7, %xmm11, %xmm11; vpxor %xmm0, %xmm8, %xmm0; vmovdqu %xmm0, 0 * 16(%rax); vpxor %xmm1, %xmm9, %xmm1; vmovdqu %xmm1, 1 * 16(%rax); vpxor %xmm2, %xmm10, %xmm2; vmovdqu %xmm2, 2 * 16(%rax); vpxor %xmm3, %xmm11, %xmm3; vmovdqu %xmm3, 3 * 16(%rax);;
+
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((16) + 7) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((16) + 7) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((16) + 5) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((16) + 5) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((16) + 3) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((16) + 3) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+
+
+ vpxor %xmm12, %xmm12, %xmm12; vmovd ((0 + (16) * 8) + 8)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand %xmm0, %xmm8, %xmm8; vpand %xmm1, %xmm9, %xmm9; vpand %xmm2, %xmm10, %xmm10; vpand %xmm3, %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor %xmm4, %xmm8, %xmm4; vmovdqu %xmm4, 4 * 16(%rax); vpxor %xmm5, %xmm9, %xmm5; vmovdqu %xmm5, 5 * 16(%rax); vpxor %xmm6, %xmm10, %xmm6; vmovdqu %xmm6, 6 * 16(%rax); vpxor %xmm7, %xmm11, %xmm7; vmovdqu %xmm7, 7 * 16(%rax); vmovd ((0 + (16) * 8) + 4)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor 4 * 16(%rcx), %xmm8, %xmm8; vpor 5 * 16(%rcx), %xmm9, %xmm9; vpor 6 * 16(%rcx), %xmm10, %xmm10; vpor 7 * 16(%rcx), %xmm11, %xmm11; vpxor 0 * 16(%rcx), %xmm8, %xmm8; vpxor 1 * 16(%rcx), %xmm9, %xmm9; vpxor 2 * 16(%rcx), %xmm10, %xmm10; vpxor 3 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovd ((0 + (16) * 8) + 0)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand 0 * 16(%rcx), %xmm8, %xmm8; vpand 1 * 16(%rcx), %xmm9, %xmm9; vpand 2 * 16(%rcx), %xmm10, %xmm10; vpand 3 * 16(%rcx), %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor 4 * 16(%rcx), %xmm8, %xmm8; vpxor 5 * 16(%rcx), %xmm9, %xmm9; vpxor 6 * 16(%rcx), %xmm10, %xmm10; vpxor 7 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 4 * 16(%rcx); vmovdqu %xmm9, 5 * 16(%rcx); vmovdqu %xmm10, 6 * 16(%rcx); vmovdqu %xmm11, 7 * 16(%rcx); vmovd ((0 + (16) * 8) + 12)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor %xmm4, %xmm8, %xmm8; vpor %xmm5, %xmm9, %xmm9; vpor %xmm6, %xmm10, %xmm10; vpor %xmm7, %xmm11, %xmm11; vpxor %xmm0, %xmm8, %xmm0; vmovdqu %xmm0, 0 * 16(%rax); vpxor %xmm1, %xmm9, %xmm1; vmovdqu %xmm1, 1 * 16(%rax); vpxor %xmm2, %xmm10, %xmm2; vmovdqu %xmm2, 2 * 16(%rax); vpxor %xmm3, %xmm11, %xmm3; vmovdqu %xmm3, 3 * 16(%rax);;
+
+
+
+
+
+
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((8) + 7) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((8) + 7) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((8) + 5) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((8) + 5) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((8) + 3) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((8) + 3) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+
+
+ vpxor %xmm12, %xmm12, %xmm12; vmovd ((0 + (8) * 8) + 8)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand %xmm0, %xmm8, %xmm8; vpand %xmm1, %xmm9, %xmm9; vpand %xmm2, %xmm10, %xmm10; vpand %xmm3, %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor %xmm4, %xmm8, %xmm4; vmovdqu %xmm4, 4 * 16(%rax); vpxor %xmm5, %xmm9, %xmm5; vmovdqu %xmm5, 5 * 16(%rax); vpxor %xmm6, %xmm10, %xmm6; vmovdqu %xmm6, 6 * 16(%rax); vpxor %xmm7, %xmm11, %xmm7; vmovdqu %xmm7, 7 * 16(%rax); vmovd ((0 + (8) * 8) + 4)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor 4 * 16(%rcx), %xmm8, %xmm8; vpor 5 * 16(%rcx), %xmm9, %xmm9; vpor 6 * 16(%rcx), %xmm10, %xmm10; vpor 7 * 16(%rcx), %xmm11, %xmm11; vpxor 0 * 16(%rcx), %xmm8, %xmm8; vpxor 1 * 16(%rcx), %xmm9, %xmm9; vpxor 2 * 16(%rcx), %xmm10, %xmm10; vpxor 3 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 0 * 16(%rcx); vmovdqu %xmm9, 1 * 16(%rcx); vmovdqu %xmm10, 2 * 16(%rcx); vmovdqu %xmm11, 3 * 16(%rcx); vmovd ((0 + (8) * 8) + 0)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpand 0 * 16(%rcx), %xmm8, %xmm8; vpand 1 * 16(%rcx), %xmm9, %xmm9; vpand 2 * 16(%rcx), %xmm10, %xmm10; vpand 3 * 16(%rcx), %xmm11, %xmm11; vpcmpgtb %xmm11, %xmm12, %xmm13; vpaddb %xmm11, %xmm11, %xmm11; vpabsb %xmm13, %xmm13; vpcmpgtb %xmm10, %xmm12, %xmm14; vpaddb %xmm10, %xmm10, %xmm10; vpabsb %xmm14, %xmm14; vpcmpgtb %xmm9, %xmm12, %xmm15; vpaddb %xmm9, %xmm9, %xmm9; vpabsb %xmm15, %xmm15; vpor %xmm13, %xmm10, %xmm10; vpcmpgtb %xmm8, %xmm12, %xmm13; vpaddb %xmm8, %xmm8, %xmm8; vpabsb %xmm13, %xmm13; vpor %xmm14, %xmm9, %xmm9; vpor %xmm15, %xmm8, %xmm8; vpor %xmm13, %xmm11, %xmm11;; vpxor 4 * 16(%rcx), %xmm8, %xmm8; vpxor 5 * 16(%rcx), %xmm9, %xmm9; vpxor 6 * 16(%rcx), %xmm10, %xmm10; vpxor 7 * 16(%rcx), %xmm11, %xmm11; vmovdqu %xmm8, 4 * 16(%rcx); vmovdqu %xmm9, 5 * 16(%rcx); vmovdqu %xmm10, 6 * 16(%rcx); vmovdqu %xmm11, 7 * 16(%rcx); vmovd ((0 + (8) * 8) + 12)(%rdi), %xmm8; vpshufb %xmm12, %xmm8, %xmm11; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm10; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm9; vpsrldq $1, %xmm8, %xmm8; vpshufb %xmm12, %xmm8, %xmm8; vpor %xmm4, %xmm8, %xmm8; vpor %xmm5, %xmm9, %xmm9; vpor %xmm6, %xmm10, %xmm10; vpor %xmm7, %xmm11, %xmm11; vpxor %xmm0, %xmm8, %xmm0; vmovdqu %xmm0, 0 * 16(%rax); vpxor %xmm1, %xmm9, %xmm1; vmovdqu %xmm1, 1 * 16(%rax); vpxor %xmm2, %xmm10, %xmm2; vmovdqu %xmm2, 2 * 16(%rax); vpxor %xmm3, %xmm11, %xmm3; vmovdqu %xmm3, 3 * 16(%rax);;
+
+
+
+
+
+
+
+ vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((0) + 7) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((0) + 7) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((0) + 5) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((0) + 5) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; vmovdqu %xmm0, 0 * 16(%rax); vmovdqu %xmm1, 1 * 16(%rax); vmovdqu %xmm2, 2 * 16(%rax); vmovdqu %xmm3, 3 * 16(%rax); vmovdqu %xmm4, 4 * 16(%rax); vmovdqu %xmm5, 5 * 16(%rax); vmovdqu %xmm6, 6 * 16(%rax); vmovdqu %xmm7, 7 * 16(%rax);;; vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm2, %xmm2; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm6, %xmm6; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm3, %xmm11, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm2, %xmm2; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm6, %xmm6; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm5, %xmm11, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + ((0) + 3) * 8)(%rdi), %xmm8; vpand %xmm1, %xmm15, %xmm10; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm1, %xmm13, %xmm1; vpxor %xmm10, %xmm1, %xmm1;; vpand %xmm4, %xmm15, %xmm10; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm4, %xmm13, %xmm4; vpxor %xmm10, %xmm4, %xmm4;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm5, %xmm0, %xmm0; vpxor %xmm6, %xmm1, %xmm1; vpxor %xmm7, %xmm2, %xmm2; vpxor %xmm4, %xmm3, %xmm3; vpxor %xmm2, %xmm4, %xmm4; vpxor %xmm3, %xmm5, %xmm5; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm1, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm11, %xmm4, %xmm4; vpxor 0 * 16(%rcx), %xmm4, %xmm4; vpxor %xmm10, %xmm5, %xmm5; vpxor 1 * 16(%rcx), %xmm5, %xmm5; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm6, %xmm6; vpxor 2 * 16(%rcx), %xmm6, %xmm6; vpxor %xmm8, %xmm7, %xmm7; vpxor 3 * 16(%rcx), %xmm7, %xmm7; vpxor %xmm15, %xmm0, %xmm0; vpxor 4 * 16(%rcx), %xmm0, %xmm0; vpxor %xmm14, %xmm1, %xmm1; vpxor 5 * 16(%rcx), %xmm1, %xmm1; vpxor %xmm13, %xmm2, %xmm2; vpxor 6 * 16(%rcx), %xmm2, %xmm2; vpxor %xmm12, %xmm3, %xmm3; vpxor 7 * 16(%rcx), %xmm3, %xmm3;; vmovdqu %xmm4, 0 * 16(%rcx); vmovdqu %xmm5, 1 * 16(%rcx); vmovdqu %xmm6, 2 * 16(%rcx); vmovdqu %xmm7, 3 * 16(%rcx); vmovdqu %xmm0, 4 * 16(%rcx); vmovdqu %xmm1, 5 * 16(%rcx); vmovdqu %xmm2, 6 * 16(%rcx); vmovdqu %xmm3, 7 * 16(%rcx); vmovdqu .Linv_shift_row(%rip), %xmm12; vbroadcastss .L0f0f0f0f(%rip), %xmm15; vmovdqu .Lpre_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpre_tf_hi_s1(%rip), %xmm9; vpshufb %xmm12, %xmm4, %xmm4; vpshufb %xmm12, %xmm3, %xmm3; vpshufb %xmm12, %xmm5, %xmm5; vpshufb %xmm12, %xmm0, %xmm0; vpshufb %xmm12, %xmm6, %xmm6; vpshufb %xmm12, %xmm1, %xmm1; vpshufb %xmm12, %xmm7, %xmm7; vpshufb %xmm12, %xmm2, %xmm2; vmovdqu .Lpre_tf_lo_s4(%rip), %xmm10; vmovdqu .Lpre_tf_hi_s4(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm5, %xmm15, %xmm14; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm5, %xmm9, %xmm5; vpxor %xmm14, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm14; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm0, %xmm9, %xmm0; vpxor %xmm14, %xmm0, %xmm0;; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm6, %xmm9, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm1, %xmm9, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm12, %xmm12, %xmm12; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm7, %xmm11, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm2, %xmm11, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s1(%rip), %xmm8; vmovdqu .Lpost_tf_hi_s1(%rip), %xmm9; vaesenclast %xmm12, %xmm4, %xmm4; vaesenclast %xmm12, %xmm3, %xmm3; vaesenclast %xmm12, %xmm5, %xmm5; vaesenclast %xmm12, %xmm0, %xmm0; vaesenclast %xmm12, %xmm6, %xmm6; vaesenclast %xmm12, %xmm1, %xmm1; vaesenclast %xmm12, %xmm7, %xmm7; vaesenclast %xmm12, %xmm2, %xmm2; vmovdqu .Lpost_tf_lo_s3(%rip), %xmm10; vmovdqu .Lpost_tf_hi_s3(%rip), %xmm11; vpand %xmm4, %xmm15, %xmm14; vpandn %xmm4, %xmm15, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm4, %xmm9, %xmm4; vpxor %xmm14, %xmm4, %xmm4;; vpand %xmm3, %xmm15, %xmm14; vpandn %xmm3, %xmm15, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm3, %xmm9, %xmm3; vpxor %xmm14, %xmm3, %xmm3;; vpand %xmm7, %xmm15, %xmm14; vpandn %xmm7, %xmm15, %xmm7; vpsrld $4, %xmm7, %xmm7; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm7, %xmm9, %xmm7; vpxor %xmm14, %xmm7, %xmm7;; vpand %xmm2, %xmm15, %xmm14; vpandn %xmm2, %xmm15, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm14, %xmm8, %xmm14; vpshufb %xmm2, %xmm9, %xmm2; vpxor %xmm14, %xmm2, %xmm2;; vmovdqu .Lpost_tf_lo_s2(%rip), %xmm12; vmovdqu .Lpost_tf_hi_s2(%rip), %xmm13; vpand %xmm6, %xmm15, %xmm14; vpandn %xmm6, %xmm15, %xmm6; vpsrld $4, %xmm6, %xmm6; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm6, %xmm11, %xmm6; vpxor %xmm14, %xmm6, %xmm6;; vpand %xmm1, %xmm15, %xmm14; vpandn %xmm1, %xmm15, %xmm1; vpsrld $4, %xmm1, %xmm1; vpshufb %xmm14, %xmm10, %xmm14; vpshufb %xmm1, %xmm11, %xmm1; vpxor %xmm14, %xmm1, %xmm1;; vpxor %xmm14, %xmm14, %xmm14; vmovq (0 + (((0) + 3) + (-1)) * 8)(%rdi), %xmm8; vpand %xmm5, %xmm15, %xmm10; vpandn %xmm5, %xmm15, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm5, %xmm13, %xmm5; vpxor %xmm10, %xmm5, %xmm5;; vpand %xmm0, %xmm15, %xmm10; vpandn %xmm0, %xmm15, %xmm0; vpsrld $4, %xmm0, %xmm0; vpshufb %xmm10, %xmm12, %xmm10; vpshufb %xmm0, %xmm13, %xmm0; vpxor %xmm10, %xmm0, %xmm0;; vpsrldq $5, %xmm8, %xmm13; vpsrldq $1, %xmm8, %xmm9; vpsrldq $2, %xmm8, %xmm10; vpsrldq $3, %xmm8, %xmm11; vpsrldq $4, %xmm8, %xmm12; vpshufb %xmm14, %xmm8, %xmm8; vpshufb %xmm14, %xmm9, %xmm9; vpshufb %xmm14, %xmm10, %xmm10; vpshufb %xmm14, %xmm11, %xmm11; vpshufb %xmm14, %xmm12, %xmm12; vpsrldq $2, %xmm13, %xmm15; vpshufb %xmm14, %xmm15, %xmm15; vpxor %xmm1, %xmm4, %xmm4; vpxor %xmm2, %xmm5, %xmm5; vpxor %xmm3, %xmm6, %xmm6; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm6, %xmm0, %xmm0; vpxor %xmm7, %xmm1, %xmm1; vpxor %xmm4, %xmm2, %xmm2; vpxor %xmm5, %xmm3, %xmm3; vpxor %xmm3, %xmm4, %xmm4; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm1, %xmm6, %xmm6; vpxor %xmm2, %xmm7, %xmm7; vpxor %xmm7, %xmm0, %xmm0; vpxor %xmm4, %xmm1, %xmm1; vpxor %xmm5, %xmm2, %xmm2; vpxor %xmm6, %xmm3, %xmm3; vpxor %xmm11, %xmm0, %xmm0; vpxor 0 * 16(%rax), %xmm0, %xmm0; vpxor %xmm10, %xmm1, %xmm1; vpxor 1 * 16(%rax), %xmm1, %xmm1; vpsrldq $1, %xmm13, %xmm11; vpshufb %xmm14, %xmm13, %xmm13; vpshufb %xmm14, %xmm11, %xmm14; vpxor %xmm9, %xmm2, %xmm2; vpxor 2 * 16(%rax), %xmm2, %xmm2; vpxor %xmm8, %xmm3, %xmm3; vpxor 3 * 16(%rax), %xmm3, %xmm3; vpxor %xmm15, %xmm4, %xmm4; vpxor 4 * 16(%rax), %xmm4, %xmm4; vpxor %xmm14, %xmm5, %xmm5; vpxor 5 * 16(%rax), %xmm5, %xmm5; vpxor %xmm13, %xmm6, %xmm6; vpxor 6 * 16(%rax), %xmm6, %xmm6; vpxor %xmm12, %xmm7, %xmm7; vpxor 7 * 16(%rax), %xmm7, %xmm7;; ;;;
+
+
+
+
+ vmovdqu 0 * 16(%rcx), %xmm8;
+ vmovdqu 1 * 16(%rcx), %xmm9;
+ vmovdqu 2 * 16(%rcx), %xmm10;
+ vmovdqu 3 * 16(%rcx), %xmm11;
+ vmovdqu 4 * 16(%rcx), %xmm12;
+ vmovdqu 5 * 16(%rcx), %xmm13;
+ vmovdqu 6 * 16(%rcx), %xmm14;
+ vmovdqu 7 * 16(%rcx), %xmm15;
+
+ vmovdqu %xmm6, (%rax); vmovdqu %xmm7, 1 * 16(%rax); vpunpckhdq %xmm9, %xmm8, %xmm7; vpunpckldq %xmm9, %xmm8, %xmm8; vpunpckldq %xmm11, %xmm10, %xmm6; vpunpckhdq %xmm11, %xmm10, %xmm10; vpunpckhqdq %xmm6, %xmm8, %xmm9; vpunpcklqdq %xmm6, %xmm8, %xmm8; vpunpckhqdq %xmm10, %xmm7, %xmm11; vpunpcklqdq %xmm10, %xmm7, %xmm10;; vpunpckhdq %xmm13, %xmm12, %xmm7; vpunpckldq %xmm13, %xmm12, %xmm12; vpunpckldq %xmm15, %xmm14, %xmm6; vpunpckhdq %xmm15, %xmm14, %xmm14; vpunpckhqdq %xmm6, %xmm12, %xmm13; vpunpcklqdq %xmm6, %xmm12, %xmm12; vpunpckhqdq %xmm14, %xmm7, %xmm15; vpunpcklqdq %xmm14, %xmm7, %xmm14;; vmovdqu (%rax), %xmm6; vmovdqu 1 * 16(%rax), %xmm7; vmovdqu %xmm8, (%rax); vmovdqu %xmm9, 1 * 16(%rax); vpunpckhdq %xmm1, %xmm0, %xmm9; vpunpckldq %xmm1, %xmm0, %xmm0; vpunpckldq %xmm3, %xmm2, %xmm8; vpunpckhdq %xmm3, %xmm2, %xmm2; vpunpckhqdq %xmm8, %xmm0, %xmm1; vpunpcklqdq %xmm8, %xmm0, %xmm0; vpunpckhqdq %xmm2, %xmm9, %xmm3; vpunpcklqdq %xmm2, %xmm9, %xmm2;; vpunpckhdq %xmm5, %xmm4, %xmm9; vpunpckldq %xmm5, %xmm4, %xmm4; vpunpckldq %xmm7, %xmm6, %xmm8; vpunpckhdq %xmm7, %xmm6, %xmm6; vpunpckhqdq %xmm8, %xmm4, %xmm5; vpunpcklqdq %xmm8, %xmm4, %xmm4; vpunpckhqdq %xmm6, %xmm9, %xmm7; vpunpcklqdq %xmm6, %xmm9, %xmm6;; vmovdqu .Lshufb_16x16b(%rip), %xmm8; vmovdqu 1 * 16(%rax), %xmm9; vpshufb %xmm8, %xmm10, %xmm10; vpshufb %xmm8, %xmm11, %xmm11; vpshufb %xmm8, %xmm12, %xmm12; vpshufb %xmm8, %xmm13, %xmm13; vpshufb %xmm8, %xmm14, %xmm14; vpshufb %xmm8, %xmm15, %xmm15; vpshufb %xmm8, %xmm9, %xmm9; vpshufb %xmm8, %xmm0, %xmm0; vpshufb %xmm8, %xmm1, %xmm1; vpshufb %xmm8, %xmm2, %xmm2; vpshufb %xmm8, %xmm3, %xmm3; vpshufb %xmm8, %xmm4, %xmm4; vpshufb %xmm8, %xmm5, %xmm5; vpshufb %xmm8, %xmm6, %xmm6; vpshufb %xmm8, %xmm7, %xmm7; vmovdqu %xmm7, 1 * 16(%rax); vmovdqu (%rax), %xmm7; vpshufb %xmm8, %xmm7, %xmm8; vmovdqu %xmm6, (%rax); vpunpckhdq %xmm12, %xmm8, %xmm7; vpunpckldq %xmm12, %xmm8, %xmm8; vpunpckldq %xmm4, %xmm0, %xmm6; vpunpckhdq %xmm4, %xmm0, %xmm0; vpunpckhqdq %xmm6, %xmm8, %xmm12; vpunpcklqdq %xmm6, %xmm8, %xmm8; vpunpckhqdq %xmm0, %xmm7, %xmm4; vpunpcklqdq %xmm0, %xmm7, %xmm0;; vpunpckhdq %xmm13, %xmm9, %xmm7; vpunpckldq %xmm13, %xmm9, %xmm9; vpunpckldq %xmm5, %xmm1, %xmm6; vpunpckhdq %xmm5, %xmm1, %xmm1; vpunpckhqdq %xmm6, %xmm9, %xmm13; vpunpcklqdq %xmm6, %xmm9, %xmm9; vpunpckhqdq %xmm1, %xmm7, %xmm5; vpunpcklqdq %xmm1, %xmm7, %xmm1;; vmovdqu (%rax), %xmm6; vmovdqu 1 * 16(%rax), %xmm7; vmovdqu %xmm12, (%rax); vmovdqu %xmm13, 1 * 16(%rax); vpunpckhdq %xmm14, %xmm10, %xmm13; vpunpckldq %xmm14, %xmm10, %xmm10; vpunpckldq %xmm6, %xmm2, %xmm12; vpunpckhdq %xmm6, %xmm2, %xmm2; vpunpckhqdq %xmm12, %xmm10, %xmm14; vpunpcklqdq %xmm12, %xmm10, %xmm10; vpunpckhqdq %xmm2, %xmm13, %xmm6; vpunpcklqdq %xmm2, %xmm13, %xmm2;; vpunpckhdq %xmm15, %xmm11, %xmm13; vpunpckldq %xmm15, %xmm11, %xmm11; vpunpckldq %xmm7, %xmm3, %xmm12; vpunpckhdq %xmm7, %xmm3, %xmm3; vpunpckhqdq %xmm12, %xmm11, %xmm15; vpunpcklqdq %xmm12, %xmm11, %xmm11; vpunpckhqdq %xmm3, %xmm13, %xmm7; vpunpcklqdq %xmm3, %xmm13, %xmm3;; vmovdqu (%rax), %xmm12; vmovdqu 1 * 16(%rax), %xmm13;; vmovdqu %xmm0, (%rax); vmovq (0)(%rdi), %xmm0; vpshufb .Lpack_bswap(%rip), %xmm0, %xmm0; vpxor %xmm0, %xmm15, %xmm15; vpxor %xmm0, %xmm14, %xmm14; vpxor %xmm0, %xmm13, %xmm13; vpxor %xmm0, %xmm12, %xmm12; vpxor %xmm0, %xmm11, %xmm11; vpxor %xmm0, %xmm10, %xmm10; vpxor %xmm0, %xmm9, %xmm9; vpxor %xmm0, %xmm8, %xmm8; vpxor %xmm0, %xmm7, %xmm7; vpxor %xmm0, %xmm6, %xmm6; vpxor %xmm0, %xmm5, %xmm5; vpxor %xmm0, %xmm4, %xmm4; vpxor %xmm0, %xmm3, %xmm3; vpxor %xmm0, %xmm2, %xmm2; vpxor %xmm0, %xmm1, %xmm1; vpxor (%rax), %xmm0, %xmm0;;
+
+
+
+ ret;
+
+.align 8
+.global camellia_ecb_enc_16way
+.global _camellia_ecb_enc_16way
+
+camellia_ecb_enc_16way:
+_camellia_ecb_enc_16way:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+subq $168, %rsp # 8 bytes to align stack and 16*10 bytes to store xmm register
+vmovdqa %xmm6, 0*16 (%rsp)
+vmovdqa %xmm7, 1*16 (%rsp)
+vmovdqa %xmm8, 2*16 (%rsp)
+vmovdqa %xmm9, 3*16 (%rsp)
+vmovdqa %xmm10, 4*16 (%rsp)
+vmovdqa %xmm11, 5*16 (%rsp)
+vmovdqa %xmm12, 6*16 (%rsp)
+vmovdqa %xmm13, 7*16 (%rsp)
+vmovdqa %xmm14, 8*16 (%rsp)
+vmovdqa %xmm15, 9*16 (%rsp)
+
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+
+ vzeroupper;
+ vmovq (0)(%rdi), %xmm0; vpshufb .Lpack_bswap(%rip), %xmm0, %xmm0; vpxor 0 * 16(%rdx), %xmm0, %xmm15; vpxor 1 * 16(%rdx), %xmm0, %xmm14; vpxor 2 * 16(%rdx), %xmm0, %xmm13; vpxor 3 * 16(%rdx), %xmm0, %xmm12; vpxor 4 * 16(%rdx), %xmm0, %xmm11; vpxor 5 * 16(%rdx), %xmm0, %xmm10; vpxor 6 * 16(%rdx), %xmm0, %xmm9; vpxor 7 * 16(%rdx), %xmm0, %xmm8; vpxor 8 * 16(%rdx), %xmm0, %xmm7; vpxor 9 * 16(%rdx), %xmm0, %xmm6; vpxor 10 * 16(%rdx), %xmm0, %xmm5; vpxor 11 * 16(%rdx), %xmm0, %xmm4; vpxor 12 * 16(%rdx), %xmm0, %xmm3; vpxor 13 * 16(%rdx), %xmm0, %xmm2; vpxor 14 * 16(%rdx), %xmm0, %xmm1; vpxor 15 * 16(%rdx), %xmm0, %xmm0;;
+
+
+
+
+ movq %rsi, %rax;
+
+ call __camellia_enc_blk16;
+
+ vmovdqu %xmm7, 0 * 16(%rsi); vmovdqu %xmm6, 1 * 16(%rsi); vmovdqu %xmm5, 2 * 16(%rsi); vmovdqu %xmm4, 3 * 16(%rsi); vmovdqu %xmm3, 4 * 16(%rsi); vmovdqu %xmm2, 5 * 16(%rsi); vmovdqu %xmm1, 6 * 16(%rsi); vmovdqu %xmm0, 7 * 16(%rsi); vmovdqu %xmm15, 8 * 16(%rsi); vmovdqu %xmm14, 9 * 16(%rsi); vmovdqu %xmm13, 10 * 16(%rsi); vmovdqu %xmm12, 11 * 16(%rsi); vmovdqu %xmm11, 12 * 16(%rsi); vmovdqu %xmm10, 13 * 16(%rsi); vmovdqu %xmm9, 14 * 16(%rsi); vmovdqu %xmm8, 15 * 16(%rsi);;
+
+
+
+ vzeroupper;
+
+.ifdef WINABI
+
+vmovdqa 0*16 (%rsp), %xmm6
+vmovdqa 1*16 (%rsp), %xmm7
+vmovdqa 2*16 (%rsp), %xmm8
+vmovdqa 3*16 (%rsp), %xmm9
+vmovdqa 4*16 (%rsp), %xmm10
+vmovdqa 5*16 (%rsp), %xmm11
+vmovdqa 6*16 (%rsp), %xmm12
+vmovdqa 7*16 (%rsp), %xmm13
+vmovdqa 8*16 (%rsp), %xmm14
+vmovdqa 9*16 (%rsp), %xmm15
+
+addq $168, %rsp
+
+popq %rdi
+popq %rsi
+.endif
+
+ ret;
+
+.align 8
+.global camellia_ecb_dec_16way
+.global _camellia_ecb_dec_16way
+
+camellia_ecb_dec_16way:
+_camellia_ecb_dec_16way:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+subq $168, %rsp # 8 bytes to align stack and 16*10 bytes to store xmm register
+vmovdqa %xmm6, 0*16 (%rsp)
+vmovdqa %xmm7, 1*16 (%rsp)
+vmovdqa %xmm8, 2*16 (%rsp)
+vmovdqa %xmm9, 3*16 (%rsp)
+vmovdqa %xmm10, 4*16 (%rsp)
+vmovdqa %xmm11, 5*16 (%rsp)
+vmovdqa %xmm12, 6*16 (%rsp)
+vmovdqa %xmm13, 7*16 (%rsp)
+vmovdqa %xmm14, 8*16 (%rsp)
+vmovdqa %xmm15, 9*16 (%rsp)
+
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+
+ vzeroupper;
+
+
+ vmovq (256)(%rdi), %xmm0; vpshufb .Lpack_bswap(%rip), %xmm0, %xmm0; vpxor 0 * 16(%rdx), %xmm0, %xmm15; vpxor 1 * 16(%rdx), %xmm0, %xmm14; vpxor 2 * 16(%rdx), %xmm0, %xmm13; vpxor 3 * 16(%rdx), %xmm0, %xmm12; vpxor 4 * 16(%rdx), %xmm0, %xmm11; vpxor 5 * 16(%rdx), %xmm0, %xmm10; vpxor 6 * 16(%rdx), %xmm0, %xmm9; vpxor 7 * 16(%rdx), %xmm0, %xmm8; vpxor 8 * 16(%rdx), %xmm0, %xmm7; vpxor 9 * 16(%rdx), %xmm0, %xmm6; vpxor 10 * 16(%rdx), %xmm0, %xmm5; vpxor 11 * 16(%rdx), %xmm0, %xmm4; vpxor 12 * 16(%rdx), %xmm0, %xmm3; vpxor 13 * 16(%rdx), %xmm0, %xmm2; vpxor 14 * 16(%rdx), %xmm0, %xmm1; vpxor 15 * 16(%rdx), %xmm0, %xmm0;;
+
+
+
+ movq %rsi, %rax;
+
+ call __camellia_dec_blk16;
+
+ vmovdqu %xmm7, 0 * 16(%rsi); vmovdqu %xmm6, 1 * 16(%rsi); vmovdqu %xmm5, 2 * 16(%rsi); vmovdqu %xmm4, 3 * 16(%rsi); vmovdqu %xmm3, 4 * 16(%rsi); vmovdqu %xmm2, 5 * 16(%rsi); vmovdqu %xmm1, 6 * 16(%rsi); vmovdqu %xmm0, 7 * 16(%rsi); vmovdqu %xmm15, 8 * 16(%rsi); vmovdqu %xmm14, 9 * 16(%rsi); vmovdqu %xmm13, 10 * 16(%rsi); vmovdqu %xmm12, 11 * 16(%rsi); vmovdqu %xmm11, 12 * 16(%rsi); vmovdqu %xmm10, 13 * 16(%rsi); vmovdqu %xmm9, 14 * 16(%rsi); vmovdqu %xmm8, 15 * 16(%rsi);;
+
+
+
+ vzeroupper;
+
+.ifdef WINABI
+vmovdqa 0*16 (%rsp), %xmm6
+vmovdqa 1*16 (%rsp), %xmm7
+vmovdqa 2*16 (%rsp), %xmm8
+vmovdqa 3*16 (%rsp), %xmm9
+vmovdqa 4*16 (%rsp), %xmm10
+vmovdqa 5*16 (%rsp), %xmm11
+vmovdqa 6*16 (%rsp), %xmm12
+vmovdqa 7*16 (%rsp), %xmm13
+vmovdqa 8*16 (%rsp), %xmm14
+vmovdqa 9*16 (%rsp), %xmm15
+
+addq $168, %rsp
+
+popq %rdi
+popq %rsi
+.endif
+
+ ret;
+
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif
+
diff --git a/src/Crypto/Camellia_aesni_x86.S b/src/Crypto/Camellia_aesni_x86.S
new file mode 100644
index 0000000..0b1721e
--- /dev/null
+++ b/src/Crypto/Camellia_aesni_x86.S
@@ -0,0 +1,5 @@
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif
diff --git a/src/Crypto/Camellia_x64.S b/src/Crypto/Camellia_x64.S
new file mode 100644
index 0000000..0358529
--- /dev/null
+++ b/src/Crypto/Camellia_x64.S
@@ -0,0 +1,318 @@
+/* camellia_asm.S ver 1.1
+ *
+ * Copyright © 2012-2013 Jussi Kivilinna <jussi.kivilinna@iki.fi>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+ /* Adapted to VeraCrypt
+ - original file pre-processed using "gcc -E"
+ - added instructions at begining of each functiont to adapt to Windows parameters passing convention
+ - Fix "'ADDR32' relocation" error when building Windows driver by using lea to load address of tables into
+ registers instead of using immediat form in xorq. This required saving many registers in the stack in order
+ to free 7 general purpose registers %r9-%r15 and %xmm0/%xmm1 are used for the 8th table: %xmm0 stores table
+ address and %xmm1 is used to save/restore %r8 each time it is used for memory addressed by %xmm0.
+ These changes reduce performance compared to original code by around 8%.
+ Original code did not have 'ADDR32' relocation issue because it was implemented as an executable, not a shared
+ library like the case of Windows driver.
+
+ */
+
+.text
+
+.extern camellia_sp10011110;
+.extern camellia_sp22000222;
+.extern camellia_sp03303033;
+.extern camellia_sp00444404;
+.extern camellia_sp02220222;
+.extern camellia_sp30333033;
+.extern camellia_sp44044404;
+.extern camellia_sp11101110;
+
+.align 8
+.global camellia_encrypt_asm;
+.global _camellia_encrypt_asm;
+
+camellia_encrypt_asm:
+_camellia_encrypt_asm:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+pushq %r12
+pushq %r13
+pushq %r14
+pushq %r15
+
+leaq camellia_sp10011110(%rip), %r12
+leaq camellia_sp22000222(%rip), %r13
+leaq camellia_sp03303033(%rip), %r14
+leaq camellia_sp00444404(%rip), %r15
+leaq camellia_sp02220222(%rip), %r9
+leaq camellia_sp30333033(%rip), %r10
+leaq camellia_sp44044404(%rip), %r11
+leaq camellia_sp11101110(%rip), %rax
+movq %rax, %xmm0
+
+ pushq %rbp
+
+ pushq %rsi
+ movq %rdx, %rsi;
+
+ movq (%rsi), %rax; bswapq %rax; rolq $32, %rax; movq 4*2(%rsi), %rcx; bswapq %rcx; rorq $32, %rcx; xorq 0(%rdi), %rax;;
+
+ movq (0 + ((0 + 2) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((0 + 3) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((0 + 4) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((0 + 5) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((0 + 6) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((0 + 7) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+ movl (0 + ((8 + 0) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((8 + 1) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movq (0 + ((8 + 0) * 2) * 4)(%rdi), %r8; orq %rax, %r8; shrq $32, %r8; xorq %r8, %rax; movl (0 + ((8 + 1) * 2) * 4)(%rdi), %esi; andl %ecx, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rcx;;;
+ movq (0 + ((8 + 2) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((8 + 3) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((8 + 4) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((8 + 5) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((8 + 6) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((8 + 7) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+ movl (0 + ((16 + 0) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((16 + 1) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movq (0 + ((16 + 0) * 2) * 4)(%rdi), %r8; orq %rax, %r8; shrq $32, %r8; xorq %r8, %rax; movl (0 + ((16 + 1) * 2) * 4)(%rdi), %esi; andl %ecx, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rcx;;;
+ movq (0 + ((16 + 2) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((16 + 3) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((16 + 4) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((16 + 5) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((16 + 6) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((16 + 7) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+ movl $24, %ebp;
+
+ movl (0 + ((24 + 0) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((24 + 1) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movq (0 + ((24 + 0) * 2) * 4)(%rdi), %r8; orq %rax, %r8; shrq $32, %r8; xorq %r8, %rax; movl (0 + ((24 + 1) * 2) * 4)(%rdi), %esi; andl %ecx, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rcx;;;
+ movq (0 + ((24 + 2) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((24 + 3) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((24 + 4) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((24 + 5) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((24 + 6) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((24 + 7) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+ movl $32, %ebp;
+
+__enc_done:
+ popq %rsi
+
+ xorq 0(%rdi, %rbp, 8), %rcx; rorq $32, %rcx; bswapq %rcx; movq %rcx, (%rsi); rolq $32, %rax; bswapq %rax; movq %rax, 4*2(%rsi);;
+
+ popq %rbp
+
+popq %r15
+popq %r14
+popq %r13
+popq %r12
+
+.ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+
+ ret;
+
+.align 8
+.global camellia_decrypt_asm;
+.global _camellia_decrypt_asm;
+
+camellia_decrypt_asm:
+_camellia_decrypt_asm:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+pushq %r12
+pushq %r13
+pushq %r14
+pushq %r15
+
+
+
+leaq camellia_sp10011110(%rip), %r12
+leaq camellia_sp22000222(%rip), %r13
+leaq camellia_sp03303033(%rip), %r14
+leaq camellia_sp00444404(%rip), %r15
+leaq camellia_sp02220222(%rip), %r9
+leaq camellia_sp30333033(%rip), %r10
+leaq camellia_sp44044404(%rip), %r11
+leaq camellia_sp11101110(%rip), %rax
+movq %rax, %xmm0
+
+ pushq %rbp
+ pushq %rsi
+ movq %rdx, %rsi;
+
+ movq (%rsi), %rax; bswapq %rax; rolq $32, %rax; movq 4*2(%rsi), %rcx; bswapq %rcx; rorq $32, %rcx; xorq 256(%rdi), %rax;;
+
+ movq (0 + ((24 + 7) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((24 + 6) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((24 + 5) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((24 + 4) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((24 + 3) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((24 + 2) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+ movl (0 + ((24 + 1) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((24 + 0) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movq (0 + ((24 + 1) * 2) * 4)(%rdi), %r8; orq %rax, %r8; shrq $32, %r8; xorq %r8, %rax; movl (0 + ((24 + 0) * 2) * 4)(%rdi), %esi; andl %ecx, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rcx;;;
+
+__dec_rounds16:
+ movq (0 + ((16 + 7) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((16 + 6) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((16 + 5) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((16 + 4) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((16 + 3) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((16 + 2) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+ movl (0 + ((16 + 1) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((16 + 0) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movq (0 + ((16 + 1) * 2) * 4)(%rdi), %r8; orq %rax, %r8; shrq $32, %r8; xorq %r8, %rax; movl (0 + ((16 + 0) * 2) * 4)(%rdi), %esi; andl %ecx, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rcx;;;
+ movq (0 + ((8 + 7) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((8 + 6) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((8 + 5) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((8 + 4) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((8 + 3) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((8 + 2) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+ movl (0 + ((8 + 1) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((8 + 0) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movq (0 + ((8 + 1) * 2) * 4)(%rdi), %r8; orq %rax, %r8; shrq $32, %r8; xorq %r8, %rax; movl (0 + ((8 + 0) * 2) * 4)(%rdi), %esi; andl %ecx, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rcx;;;
+ movq (0 + ((0 + 7) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((0 + 6) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((0 + 5) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((0 + 4) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;; movq (0 + ((0 + 3) * 2) * 4)(%rdi), %r8; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rcx;;; movq (0 + ((0 + 2) * 2) * 4)(%rdi), %r8; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; xorq %r8, %rax;;;;
+
+ popq %rsi
+
+ xorq 0(%rdi), %rcx; rorq $32, %rcx; bswapq %rcx; movq %rcx, (%rsi); rolq $32, %rax; bswapq %rax; movq %rax, 4*2(%rsi);;
+
+ popq %rbp
+
+ popq %r15
+popq %r14
+popq %r13
+popq %r12
+
+ .ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+
+ ret;
+
+.align 8
+.global camellia_enc_blk2
+.global _camellia_enc_blk2
+
+camellia_enc_blk2:
+_camellia_enc_blk2:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+pushq %r12
+pushq %r13
+pushq %r14
+pushq %r15
+
+leaq camellia_sp10011110(%rip), %r12
+leaq camellia_sp22000222(%rip), %r13
+leaq camellia_sp03303033(%rip), %r14
+leaq camellia_sp00444404(%rip), %r15
+leaq camellia_sp02220222(%rip), %r9
+leaq camellia_sp30333033(%rip), %r10
+leaq camellia_sp44044404(%rip), %r11
+leaq camellia_sp11101110(%rip), %rax
+movq %rax, %xmm0
+
+
+ pushq %rbx;
+
+ pushq %rbp
+ pushq %rsi
+ movq %rdx, %rsi;
+
+ movq (%rsi), %rax; bswapq %rax; rorq $32, %rax; movq 4*2(%rsi), %rcx; bswapq %rcx; rolq $32, %rcx; xorq 0(%rdi), %rax; movq 8*2(%rsi), %rbx; bswapq %rbx; rorq $32, %rbx; movq 12*2(%rsi), %rdx; bswapq %rdx; rolq $32, %rdx; xorq 0(%rdi), %rbx;;
+
+ movq (0 + ((0 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((0 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((0 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((0 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((0 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((0 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+ movl (0 + ((8 + 0) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((8 + 1) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movl (0 + ((8 + 0) * 2) * 4)(%rdi), %r8d; andl %ebx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rbx; movq (0 + ((8 + 1) * 2) * 4)(%rdi), %rsi; orq %rdx, %rsi; shrq $32, %rsi; xorq %rsi, %rdx; movq (0 + ((8 + 0) * 2) * 4)(%rdi), %rbp; orq %rax, %rbp; shrq $32, %rbp; xorq %rbp, %rax; movl (0 + ((8 + 1) * 2) * 4)(%rdi), %r8d; andl %ecx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rcx; movq (0 + ((8 + 0) * 2) * 4)(%rdi), %rsi; orq %rbx, %rsi; shrq $32, %rsi; xorq %rsi, %rbx; movl (0 + ((8 + 1) * 2) * 4)(%rdi), %ebp; andl %edx, %ebp; roll $1, %ebp; shlq $32, %rbp; xorq %rbp, %rdx;;;
+ movq (0 + ((8 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((8 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((8 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((8 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((8 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((8 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+ movl (0 + ((16 + 0) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((16 + 1) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movl (0 + ((16 + 0) * 2) * 4)(%rdi), %r8d; andl %ebx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rbx; movq (0 + ((16 + 1) * 2) * 4)(%rdi), %rsi; orq %rdx, %rsi; shrq $32, %rsi; xorq %rsi, %rdx; movq (0 + ((16 + 0) * 2) * 4)(%rdi), %rbp; orq %rax, %rbp; shrq $32, %rbp; xorq %rbp, %rax; movl (0 + ((16 + 1) * 2) * 4)(%rdi), %r8d; andl %ecx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rcx; movq (0 + ((16 + 0) * 2) * 4)(%rdi), %rsi; orq %rbx, %rsi; shrq $32, %rsi; xorq %rsi, %rbx; movl (0 + ((16 + 1) * 2) * 4)(%rdi), %ebp; andl %edx, %ebp; roll $1, %ebp; shlq $32, %rbp; xorq %rbp, %rdx;;;
+ movq (0 + ((16 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((16 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((16 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((16 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((16 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((16 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+ movl $24, %r8d;
+
+ movl (0 + ((24 + 0) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((24 + 1) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movl (0 + ((24 + 0) * 2) * 4)(%rdi), %r8d; andl %ebx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rbx; movq (0 + ((24 + 1) * 2) * 4)(%rdi), %rsi; orq %rdx, %rsi; shrq $32, %rsi; xorq %rsi, %rdx; movq (0 + ((24 + 0) * 2) * 4)(%rdi), %rbp; orq %rax, %rbp; shrq $32, %rbp; xorq %rbp, %rax; movl (0 + ((24 + 1) * 2) * 4)(%rdi), %r8d; andl %ecx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rcx; movq (0 + ((24 + 0) * 2) * 4)(%rdi), %rsi; orq %rbx, %rsi; shrq $32, %rsi; xorq %rsi, %rbx; movl (0 + ((24 + 1) * 2) * 4)(%rdi), %ebp; andl %edx, %ebp; roll $1, %ebp; shlq $32, %rbp; xorq %rbp, %rdx;;;
+ movq (0 + ((24 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((24 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((24 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((24 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((24 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((24 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+ movl $32, %r8d;
+
+__enc2_done:
+ popq %rsi
+
+ xorq 0(%rdi, %r8, 8), %rcx; rolq $32, %rcx; bswapq %rcx; movq %rcx, (%rsi); rorq $32, %rax; bswapq %rax; movq %rax, 4*2(%rsi); xorq 0(%rdi, %r8, 8), %rdx; rolq $32, %rdx; bswapq %rdx; movq %rdx, 8*2(%rsi); rorq $32, %rbx; bswapq %rbx; movq %rbx, 12*2(%rsi);;
+
+ popq %rbp
+ popq %rbx;
+
+ popq %r15
+popq %r14
+popq %r13
+popq %r12
+
+ .ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+
+ ret;
+
+.align 8
+.global camellia_dec_blk2
+.global _camellia_dec_blk2
+
+camellia_dec_blk2:
+_camellia_dec_blk2:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+pushq %r12
+pushq %r13
+pushq %r14
+pushq %r15
+
+leaq camellia_sp10011110(%rip), %r12
+leaq camellia_sp22000222(%rip), %r13
+leaq camellia_sp03303033(%rip), %r14
+leaq camellia_sp00444404(%rip), %r15
+leaq camellia_sp02220222(%rip), %r9
+leaq camellia_sp30333033(%rip), %r10
+leaq camellia_sp44044404(%rip), %r11
+leaq camellia_sp11101110(%rip), %rax
+movq %rax, %xmm0
+
+ pushq %rbx
+
+ pushq %rbp
+ pushq %rsi
+ movq %rdx, %rsi;
+
+ movq (%rsi), %rax; bswapq %rax; rorq $32, %rax; movq 4*2(%rsi), %rcx; bswapq %rcx; rolq $32, %rcx; xorq 256(%rdi), %rax; movq 8*2(%rsi), %rbx; bswapq %rbx; rorq $32, %rbx; movq 12*2(%rsi), %rdx; bswapq %rdx; rolq $32, %rdx; xorq 256(%rdi), %rbx;;
+
+ movq (0 + ((24 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((24 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((24 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((24 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((24 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((24 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+ movl (0 + ((24 + 1) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((24 + 0) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movl (0 + ((24 + 1) * 2) * 4)(%rdi), %r8d; andl %ebx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rbx; movq (0 + ((24 + 0) * 2) * 4)(%rdi), %rsi; orq %rdx, %rsi; shrq $32, %rsi; xorq %rsi, %rdx; movq (0 + ((24 + 1) * 2) * 4)(%rdi), %rbp; orq %rax, %rbp; shrq $32, %rbp; xorq %rbp, %rax; movl (0 + ((24 + 0) * 2) * 4)(%rdi), %r8d; andl %ecx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rcx; movq (0 + ((24 + 1) * 2) * 4)(%rdi), %rsi; orq %rbx, %rsi; shrq $32, %rsi; xorq %rsi, %rbx; movl (0 + ((24 + 0) * 2) * 4)(%rdi), %ebp; andl %edx, %ebp; roll $1, %ebp; shlq $32, %rbp; xorq %rbp, %rdx;;;
+
+__dec2_rounds16:
+ movq (0 + ((16 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((16 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((16 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((16 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((16 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((16 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+ movl (0 + ((16 + 1) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((16 + 0) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movl (0 + ((16 + 1) * 2) * 4)(%rdi), %r8d; andl %ebx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rbx; movq (0 + ((16 + 0) * 2) * 4)(%rdi), %rsi; orq %rdx, %rsi; shrq $32, %rsi; xorq %rsi, %rdx; movq (0 + ((16 + 1) * 2) * 4)(%rdi), %rbp; orq %rax, %rbp; shrq $32, %rbp; xorq %rbp, %rax; movl (0 + ((16 + 0) * 2) * 4)(%rdi), %r8d; andl %ecx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rcx; movq (0 + ((16 + 1) * 2) * 4)(%rdi), %rsi; orq %rbx, %rsi; shrq $32, %rsi; xorq %rsi, %rbx; movl (0 + ((16 + 0) * 2) * 4)(%rdi), %ebp; andl %edx, %ebp; roll $1, %ebp; shlq $32, %rbp; xorq %rbp, %rdx;;;
+ movq (0 + ((8 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((8 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((8 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((8 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((8 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((8 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+ movl (0 + ((8 + 1) * 2) * 4)(%rdi), %esi; andl %eax, %esi; roll $1, %esi; shlq $32, %rsi; xorq %rsi, %rax; movq (0 + ((8 + 0) * 2) * 4)(%rdi), %rbp; orq %rcx, %rbp; shrq $32, %rbp; xorq %rbp, %rcx; movl (0 + ((8 + 1) * 2) * 4)(%rdi), %r8d; andl %ebx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rbx; movq (0 + ((8 + 0) * 2) * 4)(%rdi), %rsi; orq %rdx, %rsi; shrq $32, %rsi; xorq %rsi, %rdx; movq (0 + ((8 + 1) * 2) * 4)(%rdi), %rbp; orq %rax, %rbp; shrq $32, %rbp; xorq %rbp, %rax; movl (0 + ((8 + 0) * 2) * 4)(%rdi), %r8d; andl %ecx, %r8d; roll $1, %r8d; shlq $32, %r8; xorq %r8, %rcx; movq (0 + ((8 + 1) * 2) * 4)(%rdi), %rsi; orq %rbx, %rsi; shrq $32, %rsi; xorq %rsi, %rbx; movl (0 + ((8 + 0) * 2) * 4)(%rdi), %ebp; andl %edx, %ebp; roll $1, %ebp; shlq $32, %rbp; xorq %rbp, %rdx;;;
+ movq (0 + ((0 + 7) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((0 + 6) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((0 + 5) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((0 + 4) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;; movq (0 + ((0 + 3) * 2) * 4)(%rdi), %r8; xorq %r8, %rdx; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r15, %rbp, 8), %rcx; xorq (%r14, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rcx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rcx;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $16, %rax; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r15, %rbp, 8), %rdx; xorq (%r14, %rsi, 8), %rdx;; xorq %r8, %rcx; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r13, %rbp, 8), %rdx; xorq (%r12, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rdx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rdx;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $16, %rbx; xorq (%r10, %rbp, 8), %rdx; xorq (%r9, %rsi, 8), %rdx;;;; movq (0 + ((0 + 2) * 2) * 4)(%rdi), %r8; xorq %r8, %rbx; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r15, %rbp, 8), %rax; xorq (%r14, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r13, %rbp, 8), %r8; xorq (%r12, %rsi, 8), %r8;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rax; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rax;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $16, %rcx; xorq (%r10, %rbp, 8), %r8; xorq (%r9, %rsi, 8), %r8;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r15, %rbp, 8), %rbx; xorq (%r14, %rsi, 8), %rbx;; xorq %r8, %rax; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r13, %rbp, 8), %rbx; xorq (%r12, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; movq %r8, %xmm1; movq %xmm0, %r8; xorq (%r8, %rbp, 8), %rbx; movq %xmm1, %r8; xorq (%r11, %rsi, 8), %rbx;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $16, %rdx; xorq (%r10, %rbp, 8), %rbx; xorq (%r9, %rsi, 8), %rbx;;;;;
+
+ popq %rsi
+
+ xorq 0(%rdi), %rcx; rolq $32, %rcx; bswapq %rcx; movq %rcx, (%rsi); rorq $32, %rax; bswapq %rax; movq %rax, 4*2(%rsi); xorq 0(%rdi), %rdx; rolq $32, %rdx; bswapq %rdx; movq %rdx, 8*2(%rsi); rorq $32, %rbx; bswapq %rbx; movq %rbx, 12*2(%rsi);;
+
+ popq %rbp
+
+ popq %rbx;
+
+ popq %r15
+popq %r14
+popq %r13
+popq %r12
+
+ .ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+
+ ret;
+
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif
+
diff --git a/src/Crypto/Camellia_x86.S b/src/Crypto/Camellia_x86.S
new file mode 100644
index 0000000..0b1721e
--- /dev/null
+++ b/src/Crypto/Camellia_x86.S
@@ -0,0 +1,5 @@
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif
diff --git a/src/Crypto/Crypto.vcproj b/src/Crypto/Crypto.vcproj
index c46c0b5..15c5c4f 100644
--- a/src/Crypto/Crypto.vcproj
+++ b/src/Crypto/Crypto.vcproj
@@ -1,587 +1,587 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="Crypto"
- ProjectGUID="{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
- RootNamespace="Crypto"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="4"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
- PreprocessorDefinitions="WIN32;DEBUG;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- BasicRuntimeChecks="0"
- RuntimeLibrary="1"
- BufferSecurityCheck="false"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4100;4127;4201"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="$(OutDir)/Crypto.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="4"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
- PreprocessorDefinitions="WIN32;DEBUG;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- BasicRuntimeChecks="0"
- RuntimeLibrary="1"
- BufferSecurityCheck="false"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4100;4127;4201"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="$(OutDir)/Crypto.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="4"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="4"
- Detect64BitPortabilityProblems="false"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4100;4127;4201"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="$(OutDir)/Crypto.lib"
- AdditionalLibraryDirectories="$(TargetDir)"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="4"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="4"
- Detect64BitPortabilityProblems="false"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4100;4127;4201"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="$(OutDir)/Crypto.lib"
- AdditionalLibraryDirectories="$(TargetDir)"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\Aes_hw_cpu.asm"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -g -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\Aes_x64.asm"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\Aes_x86.asm"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\Aeskey.c"
- >
- </File>
- <File
- RelativePath=".\Aestab.c"
- >
- </File>
- <File
- RelativePath=".\Camellia.c"
- >
- </File>
- <File
- RelativePath=".\cpu.c"
- >
- </File>
- <File
- RelativePath=".\Gost89_x64.asm"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- Outputs="$(TargetDir)\$(InputName).obj"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\GostCipher.c"
- >
- </File>
- <File
- RelativePath=".\kuznyechik.c"
- >
- </File>
- <File
- RelativePath=".\Rmd160.c"
- >
- </File>
- <File
- RelativePath=".\Serpent.c"
- >
- </File>
- <File
- RelativePath=".\Sha2.c"
- >
- </File>
- <File
- RelativePath=".\Streebog.c"
- >
- </File>
- <File
- RelativePath=".\Twofish.c"
- >
- </File>
- <File
- RelativePath=".\Whirlpool.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\Aes.h"
- >
- </File>
- <File
- RelativePath=".\Aes_hw_cpu.h"
- >
- </File>
- <File
- RelativePath=".\Aesopt.h"
- >
- </File>
- <File
- RelativePath=".\Aestab.h"
- >
- </File>
- <File
- RelativePath=".\Camellia.h"
- >
- </File>
- <File
- RelativePath=".\config.h"
- >
- </File>
- <File
- RelativePath=".\cpu.h"
- >
- </File>
- <File
- RelativePath=".\GostCipher.h"
- >
- </File>
- <File
- RelativePath=".\kuznyechik.h"
- >
- </File>
- <File
- RelativePath=".\misc.h"
- >
- </File>
- <File
- RelativePath=".\Rmd160.h"
- >
- </File>
- <File
- RelativePath=".\Serpent.h"
- >
- </File>
- <File
- RelativePath=".\Sha2.h"
- >
- </File>
- <File
- RelativePath=".\Streebog.h"
- >
- </File>
- <File
- RelativePath=".\Twofish.h"
- >
- </File>
- <File
- RelativePath=".\Whirlpool.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="Crypto"
+ ProjectGUID="{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
+ RootNamespace="Crypto"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
+ PreprocessorDefinitions="WIN32;DEBUG;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4100;4127;4201"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/Crypto.lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
+ PreprocessorDefinitions="WIN32;DEBUG;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4100;4127;4201"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/Crypto.lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4100;4127;4201"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/Crypto.lib"
+ AdditionalLibraryDirectories="$(TargetDir)"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories="&quot;$(ProjectDir)\..&quot;;&quot;$(ProjectDir)\..\Common&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4100;4127;4201"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/Crypto.lib"
+ AdditionalLibraryDirectories="$(TargetDir)"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\Aes_hw_cpu.asm"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -g -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\Aes_x64.asm"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\Aes_x86.asm"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win32 -Ox --prefix _ -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\Aeskey.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Aestab.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Camellia.c"
+ >
+ </File>
+ <File
+ RelativePath=".\cpu.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Gost89_x64.asm"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo $(InputFileName) &amp; nasm.exe -Xvc -f win64 -Ox -o &quot;$(TargetDir)\$(InputName).obj&quot; -l &quot;$(TargetDir)\$(InputName).lst&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="$(TargetDir)\$(InputName).obj"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\GostCipher.c"
+ >
+ </File>
+ <File
+ RelativePath=".\kuznyechik.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Rmd160.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Serpent.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Sha2.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Streebog.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Twofish.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Whirlpool.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\Aes.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Aes_hw_cpu.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Aesopt.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Aestab.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Camellia.h"
+ >
+ </File>
+ <File
+ RelativePath=".\config.h"
+ >
+ </File>
+ <File
+ RelativePath=".\cpu.h"
+ >
+ </File>
+ <File
+ RelativePath=".\GostCipher.h"
+ >
+ </File>
+ <File
+ RelativePath=".\kuznyechik.h"
+ >
+ </File>
+ <File
+ RelativePath=".\misc.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Rmd160.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Serpent.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Sha2.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Streebog.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Twofish.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Whirlpool.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/Crypto/Crypto.vcxproj b/src/Crypto/Crypto.vcxproj
index 7573f1e..85ce90f 100644
--- a/src/Crypto/Crypto.vcxproj
+++ b/src/Crypto/Crypto.vcxproj
@@ -128,8 +128,7 @@
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4100;4127;4201;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Lib>
@@ -152,8 +151,7 @@
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4100;4127;4201;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Lib>
@@ -253,6 +251,120 @@
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="Twofish_x64.S">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="Camellia_aesni_x64.S">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ </CustomBuild>
+ <CustomBuild Include="Camellia_x64.S">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="sha256-x86-nayuki.S">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) &amp; vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) &amp; vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha256_avx1_x64.asm">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha256_avx2_x64.asm">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha256_sse4_x64.asm">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha512-x86-nayuki.S">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) &amp; vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) &amp; vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha512-x64-nayuki.S">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha512_avx1_x64.asm">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha512_avx2_x64.asm">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="sha512_sse4_x64.asm">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/src/Crypto/Crypto.vcxproj.filters b/src/Crypto/Crypto.vcxproj.filters
index ad933b0..b012230 100644
--- a/src/Crypto/Crypto.vcxproj.filters
+++ b/src/Crypto/Crypto.vcxproj.filters
@@ -21,9 +21,6 @@
<ClCompile Include="Aestab.c">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="Camellia.c">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="cpu.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -54,6 +51,9 @@
<ClCompile Include="SerpentFast_simd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="Camellia.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Aes.h">
@@ -121,5 +121,41 @@
<CustomBuild Include="Gost89_x64.asm">
<Filter>Source Files</Filter>
</CustomBuild>
+ <CustomBuild Include="Twofish_x64.S">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="Camellia_x64.S">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="Camellia_aesni_x64.S">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha512-x64-nayuki.S">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha256-x86-nayuki.S">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha256_avx1_x64.asm">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha256_avx2_x64.asm">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha256_sse4_x64.asm">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha512-x86-nayuki.S">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha512_avx1_x64.asm">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha512_avx2_x64.asm">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="sha512_sse4_x64.asm">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/Crypto/GostCipher.c b/src/Crypto/GostCipher.c
index 0fd3941..ddd649c 100644
--- a/src/Crypto/GostCipher.c
+++ b/src/Crypto/GostCipher.c
@@ -96,7 +96,7 @@ void gost_set_key(const byte *key, gost_kds *ks, int useDynamicSbox)
byte sbox_seed[64];
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
KFLOATING_SAVE floatingPointState;
- NTSTATUS saveStatus = STATUS_SUCCESS;
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
if (HasSSE2() || HasSSE41())
saveStatus = KeSaveFloatingPointState (&floatingPointState);
#endif
@@ -106,7 +106,7 @@ void gost_set_key(const byte *key, gost_kds *ks, int useDynamicSbox)
STREEBOG_finalize(&sctx, sbox_seed);
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
- if (NT_SUCCESS (saveStatus) && (HasSSE2() || HasSSE41()))
+ if (NT_SUCCESS (saveStatus))
KeRestoreFloatingPointState (&floatingPointState);
#endif
diff --git a/src/Crypto/Makefile.inc b/src/Crypto/Makefile.inc
index bd5b80d..016451a 100644
--- a/src/Crypto/Makefile.inc
+++ b/src/Crypto/Makefile.inc
@@ -1,9 +1,12 @@
TC_ASFLAGS = -Xvc -Ox
+VC_YASMFLAGS = -Xvc -D WINABI -D __YASM__
!if "$(TC_ARCH)" == "x86"
TC_ASFLAGS = $(TC_ASFLAGS) -f win32 --prefix _ -D MS_STDCALL -D DLL_EXPORT
+VC_YASMFLAGS = $(VC_YASMFLAGS) -f win32 -D MS_STDCALL
!else
TC_ASFLAGS = $(TC_ASFLAGS) -f win64
+VC_YASMFLAGS = $(VC_YASMFLAGS) -f win64
!endif
TC_ASM_ERR_LOG = ..\Driver\build_errors_asm.log
@@ -16,3 +19,36 @@ TC_ASM_ERR_LOG = ..\Driver\build_errors_asm.log
"$(OBJ_PATH)\$(O)\Aes_hw_cpu.obj": Aes_hw_cpu.asm
nasm.exe $(TC_ASFLAGS) -o "$@" -l "$(OBJ_PATH)\$(O)\Aes_hw_cpu.lst" Aes_hw_cpu.asm 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\Twofish_$(TC_ARCH).obj": Twofish_$(TC_ARCH).S
+ yasm.exe $(VC_YASMFLAGS) -p gas -o "$@" -l "$(OBJ_PATH)\$(O)\Twofish_$(TC_ARCH).lst" Twofish_$(TC_ARCH).S 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\Camellia_$(TC_ARCH).obj": Camellia_$(TC_ARCH).S
+ yasm.exe $(VC_YASMFLAGS) -p gas -o "$@" -l "$(OBJ_PATH)\$(O)\Camellia_$(TC_ARCH).lst" Camellia_$(TC_ARCH).S 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\Camellia_aesni_$(TC_ARCH).obj": Camellia_aesni_$(TC_ARCH).S
+ yasm.exe $(VC_YASMFLAGS) -p gas -o "$@" -l "$(OBJ_PATH)\$(O)\Camellia_aesni_$(TC_ARCH).lst" Camellia_aesni_$(TC_ARCH).S 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha256-$(TC_ARCH)-nayuki.obj": sha256-$(TC_ARCH)-nayuki.S
+ yasm.exe $(VC_YASMFLAGS) -p gas -o "$@" -l "$(OBJ_PATH)\$(O)\sha256-$(TC_ARCH)-nayuki.lst" sha256-$(TC_ARCH)-nayuki.S 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha512-$(TC_ARCH)-nayuki.obj": sha512-$(TC_ARCH)-nayuki.S
+ yasm.exe $(VC_YASMFLAGS) -p gas -o "$@" -l "$(OBJ_PATH)\$(O)\sha512-$(TC_ARCH)-nayuki.lst" sha512-$(TC_ARCH)-nayuki.S 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha512_avx1_$(TC_ARCH).obj": sha512_avx1_$(TC_ARCH).asm
+ yasm.exe $(VC_YASMFLAGS) -o "$@" -l "$(OBJ_PATH)\$(O)\sha512_avx1_$(TC_ARCH).lst" sha512_avx1_$(TC_ARCH).asm 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha512_avx2_$(TC_ARCH).obj": sha512_avx2_$(TC_ARCH).asm
+ yasm.exe $(VC_YASMFLAGS) -o "$@" -l "$(OBJ_PATH)\$(O)\sha512_avx2_$(TC_ARCH).lst" sha512_avx2_$(TC_ARCH).asm 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha512_sse4_$(TC_ARCH).obj": sha512_sse4_$(TC_ARCH).asm
+ yasm.exe $(VC_YASMFLAGS) -o "$@" -l "$(OBJ_PATH)\$(O)\sha512_sse4_$(TC_ARCH).lst" sha512_sse4_$(TC_ARCH).asm 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha256_avx1_$(TC_ARCH).obj": sha256_avx1_$(TC_ARCH).asm
+ yasm.exe $(VC_YASMFLAGS) -o "$@" -l "$(OBJ_PATH)\$(O)\sha256_avx1_$(TC_ARCH).lst" sha256_avx1_$(TC_ARCH).asm 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha256_avx2_$(TC_ARCH).obj": sha256_avx2_$(TC_ARCH).asm
+ yasm.exe $(VC_YASMFLAGS) -o "$@" -l "$(OBJ_PATH)\$(O)\sha256_avx2_$(TC_ARCH).lst" sha256_avx2_$(TC_ARCH).asm 2>$(TC_ASM_ERR_LOG)
+
+"$(OBJ_PATH)\$(O)\sha256_sse4_$(TC_ARCH).obj": sha256_sse4_$(TC_ARCH).asm
+ yasm.exe $(VC_YASMFLAGS) -o "$@" -l "$(OBJ_PATH)\$(O)\sha256_sse4_$(TC_ARCH).lst" sha256_sse4_$(TC_ARCH).asm 2>$(TC_ASM_ERR_LOG)
diff --git a/src/Crypto/Rmd160.c b/src/Crypto/Rmd160.c
index 9153af4..0c6ec83 100644
--- a/src/Crypto/Rmd160.c
+++ b/src/Crypto/Rmd160.c
@@ -386,7 +386,7 @@ void RMD160Transform (unsigned __int32 *digest, const unsigned __int32 *data)
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Crypto/SerpentFast.c b/src/Crypto/SerpentFast.c
index 02777a8..3358db1 100644
--- a/src/Crypto/SerpentFast.c
+++ b/src/Crypto/SerpentFast.c
@@ -80,34 +80,12 @@ void serpent_encrypt_blocks(const unsigned __int8* in, unsigned __int8* out, siz
unsigned __int32 B0, B1, B2, B3;
unsigned __int32* round_key = ((unsigned __int32*) ks) + 8;
size_t i;
-#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
+#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE && (!defined (DEBUG) || !defined (TC_WINDOWS_DRIVER))
if(HasSSE2() && (blocks >= 4))
{
- CRYPTOPP_ALIGN_DATA(16) unsigned __int8 alignedInputBuffer[4 * 16];
- CRYPTOPP_ALIGN_DATA(16) unsigned __int8 alignedOutputBuffer[4 * 16];
- unsigned __int8 *inPtr, *outPtr;
- BOOL inputAligned = IsAligned16(in)? TRUE : FALSE;
- BOOL outputAligned = IsAligned16(out)? TRUE : FALSE;
-
while(blocks >= 4)
{
- if (inputAligned)
- inPtr = (unsigned __int8 *) in;
- else
- {
- inPtr = alignedInputBuffer;
- memcpy (inPtr, in, 4 * 16);
- }
- if (out == in)
- outPtr = inPtr;
- else if (outputAligned)
- outPtr = (unsigned __int8 *) out;
- else
- {
- outPtr = alignedOutputBuffer;
- memcpy (outPtr, out, 4 * 16);
- }
- serpent_simd_encrypt_blocks_4(inPtr, outPtr, round_key);
+ serpent_simd_encrypt_blocks_4(in, out, round_key);
in += 4 * 16;
out += 4 * 16;
blocks -= 4;
@@ -181,34 +159,12 @@ void serpent_decrypt_blocks(const unsigned __int8* in, unsigned __int8* out, siz
unsigned __int32 B0, B1, B2, B3;
unsigned __int32* round_key = ((unsigned __int32*) ks) + 8;
size_t i;
-#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
+#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE && (!defined (DEBUG) || !defined (TC_WINDOWS_DRIVER))
if(HasSSE2() && (blocks >= 4))
{
- CRYPTOPP_ALIGN_DATA(16) unsigned __int8 alignedInputBuffer[4 * 16];
- CRYPTOPP_ALIGN_DATA(16) unsigned __int8 alignedOutputBuffer[4 * 16];
- unsigned __int8 *inPtr, *outPtr;
- BOOL inputAligned = IsAligned16(in)? TRUE : FALSE;
- BOOL outputAligned = IsAligned16(out)? TRUE : FALSE;
-
while(blocks >= 4)
{
- if (inputAligned)
- inPtr = (unsigned __int8 *) in;
- else
- {
- inPtr = alignedInputBuffer;
- memcpy (inPtr, in, 4 * 16);
- }
- if (out == in)
- outPtr = inPtr;
- else if (outputAligned)
- outPtr = (unsigned __int8 *) out;
- else
- {
- outPtr = alignedOutputBuffer;
- memcpy (outPtr, out, 4 * 16);
- }
- serpent_simd_decrypt_blocks_4(inPtr, outPtr, round_key);
+ serpent_simd_decrypt_blocks_4(in, out, round_key);
in += 4 * 16;
out += 4 * 16;
blocks -= 4;
diff --git a/src/Crypto/SerpentFast_simd.cpp b/src/Crypto/SerpentFast_simd.cpp
index d5d5d65..6e5fd49 100644
--- a/src/Crypto/SerpentFast_simd.cpp
+++ b/src/Crypto/SerpentFast_simd.cpp
@@ -218,7 +218,7 @@ typedef SIMD_4x32 SIMD_32;
} while(0);
-
+#if (!defined (DEBUG) || !defined (TC_WINDOWS_DRIVER))
/*
* SIMD Serpent Encryption of 4 blocks in parallel
*/
@@ -330,7 +330,7 @@ extern "C" void serpent_simd_decrypt_blocks_4(const unsigned __int8 in[], unsign
B2.store_le(out + 32);
B3.store_le(out + 48);
}
-
+#endif
#undef key_xor
#undef transform
#undef i_transform
diff --git a/src/Crypto/Sha2.c b/src/Crypto/Sha2.c
index 8075828..505ebb0 100644
--- a/src/Crypto/Sha2.c
+++ b/src/Crypto/Sha2.c
@@ -1,757 +1,864 @@
/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software is allowed (with or without
- changes) provided that:
-
- 1. source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- 2. binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation;
-
- 3. the name of the copyright holder is not used to endorse products
- built using this software without specific written permission.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 01/08/2005
-
- This is a byte oriented version of SHA2 that operates on arrays of bytes
- stored in memory. This code implements sha256, sha384 and sha512 but the
- latter two functions rely on efficient 64-bit integer operations that
- may not be very efficient on 32-bit machines
-
- The sha256 functions use a type 'sha256_ctx' to hold details of the
- current hash state and uses the following three calls:
-
- void sha256_begin(sha256_ctx ctx[1])
- void sha256_hash(const unsigned char data[],
- unsigned long len, sha256_ctx ctx[1])
- void sha_end1(unsigned char hval[], sha256_ctx ctx[1])
-
- The first subroutine initialises a hash computation by setting up the
- context in the sha256_ctx context. The second subroutine hashes 8-bit
- bytes from array data[] into the hash state withinh sha256_ctx context,
- the number of bytes to be hashed being given by the the unsigned long
- integer len. The third subroutine completes the hash calculation and
- places the resulting digest value in the array of 8-bit bytes hval[].
-
- The sha384 and sha512 functions are similar and use the interfaces:
-
- void sha384_begin(sha384_ctx ctx[1]);
- void sha384_hash(const unsigned char data[],
- unsigned long len, sha384_ctx ctx[1]);
- void sha384_end(unsigned char hval[], sha384_ctx ctx[1]);
-
- void sha512_begin(sha512_ctx ctx[1]);
- void sha512_hash(const unsigned char data[],
- unsigned long len, sha512_ctx ctx[1]);
- void sha512_end(unsigned char hval[], sha512_ctx ctx[1]);
-
- In addition there is a function sha2 that can be used to call all these
- functions using a call with a hash length parameter as follows:
-
- int sha2_begin(unsigned long len, sha2_ctx ctx[1]);
- void sha2_hash(const unsigned char data[],
- unsigned long len, sha2_ctx ctx[1]);
- void sha2_end(unsigned char hval[], sha2_ctx ctx[1]);
-
- My thanks to Erik Andersen <andersen@codepoet.org> for testing this code
- on big-endian systems and for his assistance with corrections
+This code is written by kerukuro for cppcrypto library (http://cppcrypto.sourceforge.net/)
+and released into public domain.
*/
+/* Modified for VeraCrypt with speed optimization for C implementation */
+
+#include "Sha2.h"
#include "Common/Endian.h"
-#include "Common/Tcdefs.h"
+#include "Crypto/cpu.h"
#include "Crypto/misc.h"
-#define PLATFORM_BYTE_ORDER BYTE_ORDER
-#define IS_LITTLE_ENDIAN LITTLE_ENDIAN
-
-#if 0
-#define UNROLL_SHA2 /* for SHA2 loop unroll */
+#ifdef _UEFI
+#define NO_OPTIMIZED_VERSIONS
#endif
-#if !defined(_UEFI)
-#include <string.h> /* for memcpy() etc. */
-#endif // !defined(_UEFI)
-
-#include "Sha2.h"
+#ifndef NO_OPTIMIZED_VERSIONS
#if defined(__cplusplus)
extern "C"
{
#endif
-
-#if defined( _MSC_VER ) && ( _MSC_VER > 800 ) && !defined(_UEFI)
-#pragma intrinsic(memcpy)
+#if CRYPTOPP_BOOL_X64
+ void sha512_rorx(const void* M, void* D, uint_64t l);
+ void sha512_sse4(const void* M, uint_64t D[8], uint_64t l);
+ void sha512_avx(const void* M, void* D, uint_64t l);
#endif
-
-#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN)
-#define SWAP_BYTES
-#else
-#undef SWAP_BYTES
+
+#if CRYPTOPP_BOOL_X64 || ((CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32) && !defined (TC_MACOSX))
+ void sha512_compress_nayuki(uint_64t state[8], const uint_8t block[128]);
#endif
-
-#if 0
-
-#define ch(x,y,z) (((x) & (y)) ^ (~(x) & (z)))
-#define maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
-
-#else /* Thanks to Rich Schroeppel and Colin Plumb for the following */
-
-#define ch(x,y,z) ((z) ^ ((x) & ((y) ^ (z))))
-#define maj(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y))))
-
+#if defined(__cplusplus)
+}
#endif
-/* round transforms for SHA256 and SHA512 compression functions */
-
-#define vf(n,i) v[(n - i) & 7]
-
-#define hf(i) (p[i & 15] += \
- g_1(p[(i + 14) & 15]) + p[(i + 9) & 15] + g_0(p[(i + 1) & 15]))
-
-#define v_cycle(i,j) \
- vf(7,i) += (j ? hf(i) : p[i]) + k_0[i+j] \
- + s_1(vf(4,i)) + ch(vf(4,i),vf(5,i),vf(6,i)); \
- vf(3,i) += vf(7,i); \
- vf(7,i) += s_0(vf(0,i))+ maj(vf(0,i),vf(1,i),vf(2,i))
-
-#if defined(SHA_224) || defined(SHA_256)
-
-#define SHA256_MASK (SHA256_BLOCK_SIZE - 1)
+#endif
-#if defined(SWAP_BYTES)
-#define bsw_32(p,n) \
- { int _i = (n); while(_i--) ((uint_32t*)p)[_i] = bswap_32(((uint_32t*)p)[_i]); }
-#else
-#define bsw_32(p,n)
-#endif
-
-#define s_0(x) (rotr32((x), 2) ^ rotr32((x), 13) ^ rotr32((x), 22))
-#define s_1(x) (rotr32((x), 6) ^ rotr32((x), 11) ^ rotr32((x), 25))
-#define g_0(x) (rotr32((x), 7) ^ rotr32((x), 18) ^ ((x) >> 3))
-#define g_1(x) (rotr32((x), 17) ^ rotr32((x), 19) ^ ((x) >> 10))
-#define k_0 k256
-
-/* rotated SHA256 round definition. Rather than swapping variables as in */
-/* FIPS-180, different variables are 'rotated' on each round, returning */
-/* to their starting positions every eight rounds */
-
-#define q(n) v##n
-
-#define one_cycle(a,b,c,d,e,f,g,h,k,w) \
- q(h) += s_1(q(e)) + ch(q(e), q(f), q(g)) + k + w; \
- q(d) += q(h); q(h) += s_0(q(a)) + maj(q(a), q(b), q(c))
-
-/* SHA256 mixing data */
-
-const uint_32t k256[64] =
-{ 0x428a2f98ul, 0x71374491ul, 0xb5c0fbcful, 0xe9b5dba5ul,
- 0x3956c25bul, 0x59f111f1ul, 0x923f82a4ul, 0xab1c5ed5ul,
- 0xd807aa98ul, 0x12835b01ul, 0x243185beul, 0x550c7dc3ul,
- 0x72be5d74ul, 0x80deb1feul, 0x9bdc06a7ul, 0xc19bf174ul,
- 0xe49b69c1ul, 0xefbe4786ul, 0x0fc19dc6ul, 0x240ca1ccul,
- 0x2de92c6ful, 0x4a7484aaul, 0x5cb0a9dcul, 0x76f988daul,
- 0x983e5152ul, 0xa831c66dul, 0xb00327c8ul, 0xbf597fc7ul,
- 0xc6e00bf3ul, 0xd5a79147ul, 0x06ca6351ul, 0x14292967ul,
- 0x27b70a85ul, 0x2e1b2138ul, 0x4d2c6dfcul, 0x53380d13ul,
- 0x650a7354ul, 0x766a0abbul, 0x81c2c92eul, 0x92722c85ul,
- 0xa2bfe8a1ul, 0xa81a664bul, 0xc24b8b70ul, 0xc76c51a3ul,
- 0xd192e819ul, 0xd6990624ul, 0xf40e3585ul, 0x106aa070ul,
- 0x19a4c116ul, 0x1e376c08ul, 0x2748774cul, 0x34b0bcb5ul,
- 0x391c0cb3ul, 0x4ed8aa4aul, 0x5b9cca4ful, 0x682e6ff3ul,
- 0x748f82eeul, 0x78a5636ful, 0x84c87814ul, 0x8cc70208ul,
- 0x90befffaul, 0xa4506cebul, 0xbef9a3f7ul, 0xc67178f2ul,
+typedef void (*transformFn)(sha512_ctx* ctx, void* m, uint_64t num_blks);
+
+transformFn transfunc = NULL;
+
+static const uint_64t K[80] = {
+ LL(0x428a2f98d728ae22), LL(0x7137449123ef65cd), LL(0xb5c0fbcfec4d3b2f), LL(0xe9b5dba58189dbbc),
+ LL(0x3956c25bf348b538), LL(0x59f111f1b605d019), LL(0x923f82a4af194f9b), LL(0xab1c5ed5da6d8118),
+ LL(0xd807aa98a3030242), LL(0x12835b0145706fbe), LL(0x243185be4ee4b28c), LL(0x550c7dc3d5ffb4e2),
+ LL(0x72be5d74f27b896f), LL(0x80deb1fe3b1696b1), LL(0x9bdc06a725c71235), LL(0xc19bf174cf692694),
+ LL(0xe49b69c19ef14ad2), LL(0xefbe4786384f25e3), LL(0x0fc19dc68b8cd5b5), LL(0x240ca1cc77ac9c65),
+ LL(0x2de92c6f592b0275), LL(0x4a7484aa6ea6e483), LL(0x5cb0a9dcbd41fbd4), LL(0x76f988da831153b5),
+ LL(0x983e5152ee66dfab), LL(0xa831c66d2db43210), LL(0xb00327c898fb213f), LL(0xbf597fc7beef0ee4),
+ LL(0xc6e00bf33da88fc2), LL(0xd5a79147930aa725), LL(0x06ca6351e003826f), LL(0x142929670a0e6e70),
+ LL(0x27b70a8546d22ffc), LL(0x2e1b21385c26c926), LL(0x4d2c6dfc5ac42aed), LL(0x53380d139d95b3df),
+ LL(0x650a73548baf63de), LL(0x766a0abb3c77b2a8), LL(0x81c2c92e47edaee6), LL(0x92722c851482353b),
+ LL(0xa2bfe8a14cf10364), LL(0xa81a664bbc423001), LL(0xc24b8b70d0f89791), LL(0xc76c51a30654be30),
+ LL(0xd192e819d6ef5218), LL(0xd69906245565a910), LL(0xf40e35855771202a), LL(0x106aa07032bbd1b8),
+ LL(0x19a4c116b8d2d0c8), LL(0x1e376c085141ab53), LL(0x2748774cdf8eeb99), LL(0x34b0bcb5e19b48a8),
+ LL(0x391c0cb3c5c95a63), LL(0x4ed8aa4ae3418acb), LL(0x5b9cca4f7763e373), LL(0x682e6ff3d6b2b8a3),
+ LL(0x748f82ee5defb2fc), LL(0x78a5636f43172f60), LL(0x84c87814a1f0ab72), LL(0x8cc702081a6439ec),
+ LL(0x90befffa23631e28), LL(0xa4506cebde82bde9), LL(0xbef9a3f7b2c67915), LL(0xc67178f2e372532b),
+ LL(0xca273eceea26619c), LL(0xd186b8c721c0c207), LL(0xeada7dd6cde0eb1e), LL(0xf57d4f7fee6ed178),
+ LL(0x06f067aa72176fba), LL(0x0a637dc5a2c898a6), LL(0x113f9804bef90dae), LL(0x1b710b35131c471b),
+ LL(0x28db77f523047d84), LL(0x32caab7b40c72493), LL(0x3c9ebe0a15c9bebc), LL(0x431d67c49c100d4c),
+ LL(0x4cc5d4becb3e42b6), LL(0x597f299cfc657e2a), LL(0x5fcb6fab3ad6faec), LL(0x6c44198c4a475817)
};
-/* Compile 64 bytes of hash data into SHA256 digest value */
-/* NOTE: this routine assumes that the byte order in the */
-/* ctx->wbuf[] at this point is such that low address bytes */
-/* in the ORIGINAL byte stream will go into the high end of */
-/* words on BOTH big and little endian systems */
-VOID_RETURN sha256_compile(sha256_ctx ctx[1])
+#define Ch(x,y,z) ((z) ^ ((x) & ((y) ^ (z))))
+#define Maj(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y))))
+#define sum0(x) (rotr64((x), 28) ^ rotr64((x), 34) ^ rotr64((x), 39))
+#define sum1(x) (rotr64((x), 14) ^ rotr64((x), 18) ^ rotr64((x), 41))
+#define sigma0(x) (rotr64((x), 1) ^ rotr64((x), 8) ^ ((x) >> 7))
+#define sigma1(x) (rotr64((x), 19) ^ rotr64((x), 61) ^ ((x) >> 6))
+
+#define WU(j) (W[j & 15] += sigma1(W[(j + 14) & 15]) + W[(j + 9) & 15] + sigma0(W[(j + 1) & 15]))
+
+#define COMPRESS_ROUND(i, j, K) \
+ T1 = h + sum1(e) + Ch(e, f, g) + K[i + j] + (i? WU(j): W[j]); \
+ T2 = sum0(a) + Maj(a, b, c); \
+ h = g; \
+ g = f; \
+ f = e; \
+ e = d + T1; \
+ d = c; \
+ c = b; \
+ b = a; \
+ a = T1 + T2;
+
+void StdTransform(sha512_ctx* ctx, void* mp, uint_64t num_blks)
{
-#if !defined(UNROLL_SHA2)
-
- uint_32t j, *p = ctx->wbuf, v[8];
-
- memcpy(v, ctx->hash, 8 * sizeof(uint_32t));
-
- for(j = 0; j < 64; j += 16)
- {
- v_cycle( 0, j); v_cycle( 1, j);
- v_cycle( 2, j); v_cycle( 3, j);
- v_cycle( 4, j); v_cycle( 5, j);
- v_cycle( 6, j); v_cycle( 7, j);
- v_cycle( 8, j); v_cycle( 9, j);
- v_cycle(10, j); v_cycle(11, j);
- v_cycle(12, j); v_cycle(13, j);
- v_cycle(14, j); v_cycle(15, j);
- }
-
- ctx->hash[0] += v[0]; ctx->hash[1] += v[1];
- ctx->hash[2] += v[2]; ctx->hash[3] += v[3];
- ctx->hash[4] += v[4]; ctx->hash[5] += v[5];
- ctx->hash[6] += v[6]; ctx->hash[7] += v[7];
+ uint_64t blk;
+ for (blk = 0; blk < num_blks; blk++)
+ {
+ uint_64t W[16];
+ uint_64t a,b,c,d,e,f,g,h;
+ uint_64t T1, T2;
+ int i;
+#if defined (TC_WINDOWS_DRIVER) && defined (DEBUG)
+ int j;
+#endif
+ for (i = 0; i < 128 / 8; i++)
+ {
+ W[i] = bswap_64((((const uint_64t*)(mp))[blk * 16 + i]));
+ }
+
+ a = ctx->hash[0];
+ b = ctx->hash[1];
+ c = ctx->hash[2];
+ d = ctx->hash[3];
+ e = ctx->hash[4];
+ f = ctx->hash[5];
+ g = ctx->hash[6];
+ h = ctx->hash[7];
+
+ for (i = 0; i <= 79; i+=16)
+ {
+#if defined (TC_WINDOWS_DRIVER) && defined (DEBUG)
+ for (j = 0; j < 16; j++)
+ {
+ COMPRESS_ROUND(i, j, K);
+ }
#else
-
- uint_32t *p = ctx->wbuf,v0,v1,v2,v3,v4,v5,v6,v7;
-
- v0 = ctx->hash[0]; v1 = ctx->hash[1];
- v2 = ctx->hash[2]; v3 = ctx->hash[3];
- v4 = ctx->hash[4]; v5 = ctx->hash[5];
- v6 = ctx->hash[6]; v7 = ctx->hash[7];
-
- one_cycle(0,1,2,3,4,5,6,7,k256[ 0],p[ 0]);
- one_cycle(7,0,1,2,3,4,5,6,k256[ 1],p[ 1]);
- one_cycle(6,7,0,1,2,3,4,5,k256[ 2],p[ 2]);
- one_cycle(5,6,7,0,1,2,3,4,k256[ 3],p[ 3]);
- one_cycle(4,5,6,7,0,1,2,3,k256[ 4],p[ 4]);
- one_cycle(3,4,5,6,7,0,1,2,k256[ 5],p[ 5]);
- one_cycle(2,3,4,5,6,7,0,1,k256[ 6],p[ 6]);
- one_cycle(1,2,3,4,5,6,7,0,k256[ 7],p[ 7]);
- one_cycle(0,1,2,3,4,5,6,7,k256[ 8],p[ 8]);
- one_cycle(7,0,1,2,3,4,5,6,k256[ 9],p[ 9]);
- one_cycle(6,7,0,1,2,3,4,5,k256[10],p[10]);
- one_cycle(5,6,7,0,1,2,3,4,k256[11],p[11]);
- one_cycle(4,5,6,7,0,1,2,3,k256[12],p[12]);
- one_cycle(3,4,5,6,7,0,1,2,k256[13],p[13]);
- one_cycle(2,3,4,5,6,7,0,1,k256[14],p[14]);
- one_cycle(1,2,3,4,5,6,7,0,k256[15],p[15]);
-
- one_cycle(0,1,2,3,4,5,6,7,k256[16],hf( 0));
- one_cycle(7,0,1,2,3,4,5,6,k256[17],hf( 1));
- one_cycle(6,7,0,1,2,3,4,5,k256[18],hf( 2));
- one_cycle(5,6,7,0,1,2,3,4,k256[19],hf( 3));
- one_cycle(4,5,6,7,0,1,2,3,k256[20],hf( 4));
- one_cycle(3,4,5,6,7,0,1,2,k256[21],hf( 5));
- one_cycle(2,3,4,5,6,7,0,1,k256[22],hf( 6));
- one_cycle(1,2,3,4,5,6,7,0,k256[23],hf( 7));
- one_cycle(0,1,2,3,4,5,6,7,k256[24],hf( 8));
- one_cycle(7,0,1,2,3,4,5,6,k256[25],hf( 9));
- one_cycle(6,7,0,1,2,3,4,5,k256[26],hf(10));
- one_cycle(5,6,7,0,1,2,3,4,k256[27],hf(11));
- one_cycle(4,5,6,7,0,1,2,3,k256[28],hf(12));
- one_cycle(3,4,5,6,7,0,1,2,k256[29],hf(13));
- one_cycle(2,3,4,5,6,7,0,1,k256[30],hf(14));
- one_cycle(1,2,3,4,5,6,7,0,k256[31],hf(15));
-
- one_cycle(0,1,2,3,4,5,6,7,k256[32],hf( 0));
- one_cycle(7,0,1,2,3,4,5,6,k256[33],hf( 1));
- one_cycle(6,7,0,1,2,3,4,5,k256[34],hf( 2));
- one_cycle(5,6,7,0,1,2,3,4,k256[35],hf( 3));
- one_cycle(4,5,6,7,0,1,2,3,k256[36],hf( 4));
- one_cycle(3,4,5,6,7,0,1,2,k256[37],hf( 5));
- one_cycle(2,3,4,5,6,7,0,1,k256[38],hf( 6));
- one_cycle(1,2,3,4,5,6,7,0,k256[39],hf( 7));
- one_cycle(0,1,2,3,4,5,6,7,k256[40],hf( 8));
- one_cycle(7,0,1,2,3,4,5,6,k256[41],hf( 9));
- one_cycle(6,7,0,1,2,3,4,5,k256[42],hf(10));
- one_cycle(5,6,7,0,1,2,3,4,k256[43],hf(11));
- one_cycle(4,5,6,7,0,1,2,3,k256[44],hf(12));
- one_cycle(3,4,5,6,7,0,1,2,k256[45],hf(13));
- one_cycle(2,3,4,5,6,7,0,1,k256[46],hf(14));
- one_cycle(1,2,3,4,5,6,7,0,k256[47],hf(15));
-
- one_cycle(0,1,2,3,4,5,6,7,k256[48],hf( 0));
- one_cycle(7,0,1,2,3,4,5,6,k256[49],hf( 1));
- one_cycle(6,7,0,1,2,3,4,5,k256[50],hf( 2));
- one_cycle(5,6,7,0,1,2,3,4,k256[51],hf( 3));
- one_cycle(4,5,6,7,0,1,2,3,k256[52],hf( 4));
- one_cycle(3,4,5,6,7,0,1,2,k256[53],hf( 5));
- one_cycle(2,3,4,5,6,7,0,1,k256[54],hf( 6));
- one_cycle(1,2,3,4,5,6,7,0,k256[55],hf( 7));
- one_cycle(0,1,2,3,4,5,6,7,k256[56],hf( 8));
- one_cycle(7,0,1,2,3,4,5,6,k256[57],hf( 9));
- one_cycle(6,7,0,1,2,3,4,5,k256[58],hf(10));
- one_cycle(5,6,7,0,1,2,3,4,k256[59],hf(11));
- one_cycle(4,5,6,7,0,1,2,3,k256[60],hf(12));
- one_cycle(3,4,5,6,7,0,1,2,k256[61],hf(13));
- one_cycle(2,3,4,5,6,7,0,1,k256[62],hf(14));
- one_cycle(1,2,3,4,5,6,7,0,k256[63],hf(15));
-
- ctx->hash[0] += v0; ctx->hash[1] += v1;
- ctx->hash[2] += v2; ctx->hash[3] += v3;
- ctx->hash[4] += v4; ctx->hash[5] += v5;
- ctx->hash[6] += v6; ctx->hash[7] += v7;
+ COMPRESS_ROUND(i, 0, K);
+ COMPRESS_ROUND(i, 1, K);
+ COMPRESS_ROUND(i , 2, K);
+ COMPRESS_ROUND(i, 3, K);
+ COMPRESS_ROUND(i, 4, K);
+ COMPRESS_ROUND(i, 5, K);
+ COMPRESS_ROUND(i, 6, K);
+ COMPRESS_ROUND(i, 7, K);
+ COMPRESS_ROUND(i, 8, K);
+ COMPRESS_ROUND(i, 9, K);
+ COMPRESS_ROUND(i, 10, K);
+ COMPRESS_ROUND(i, 11, K);
+ COMPRESS_ROUND(i, 12, K);
+ COMPRESS_ROUND(i, 13, K);
+ COMPRESS_ROUND(i, 14, K);
+ COMPRESS_ROUND(i, 15, K);
#endif
+ }
+ ctx->hash[0] += a;
+ ctx->hash[1] += b;
+ ctx->hash[2] += c;
+ ctx->hash[3] += d;
+ ctx->hash[4] += e;
+ ctx->hash[5] += f;
+ ctx->hash[6] += g;
+ ctx->hash[7] += h;
+ }
}
-/* SHA256 hash data in an array of bytes into hash buffer */
-/* and call the hash_compile function as required. */
-
-VOID_RETURN sha256_hash(const unsigned char data[], unsigned long len, sha256_ctx ctx[1])
-{ uint_32t pos = (uint_32t)(ctx->count[0] & SHA256_MASK),
- space = SHA256_BLOCK_SIZE - pos;
- const unsigned char *sp = data;
-
- if((ctx->count[0] += len) < len)
- ++(ctx->count[1]);
-
- while(len >= space) /* tranfer whole blocks while possible */
- {
- memcpy(((unsigned char*)ctx->wbuf) + pos, sp, space);
- sp += space; len -= space; space = SHA256_BLOCK_SIZE; pos = 0;
- bsw_32(ctx->wbuf, SHA256_BLOCK_SIZE >> 2)
- sha256_compile(ctx);
- }
-
- memcpy(((unsigned char*)ctx->wbuf) + pos, sp, len);
-}
-
-/* SHA256 Final padding and digest calculation */
-
-static void sha_end1(unsigned char hval[], sha256_ctx ctx[1], const unsigned int hlen)
-{ uint_32t i = (uint_32t)(ctx->count[0] & SHA256_MASK);
-
- /* put bytes in the buffer in an order in which references to */
- /* 32-bit words will put bytes with lower addresses into the */
- /* top of 32 bit words on BOTH big and little endian machines */
- bsw_32(ctx->wbuf, (i + 3) >> 2)
-
- /* we now need to mask valid bytes and add the padding which is */
- /* a single 1 bit and as many zero bits as necessary. Note that */
- /* we can always add the first padding byte here because the */
- /* buffer always has at least one empty slot */
- ctx->wbuf[i >> 2] &= 0xffffff80 << 8 * (~i & 3);
- ctx->wbuf[i >> 2] |= 0x00000080 << 8 * (~i & 3);
-
- /* we need 9 or more empty positions, one for the padding byte */
- /* (above) and eight for the length count. If there is not */
- /* enough space pad and empty the buffer */
- if(i > SHA256_BLOCK_SIZE - 9)
- {
- if(i < 60) ctx->wbuf[15] = 0;
- sha256_compile(ctx);
- i = 0;
- }
- else /* compute a word index for the empty buffer positions */
- i = (i >> 2) + 1;
-
- while(i < 14) /* and zero pad all but last two positions */
- ctx->wbuf[i++] = 0;
-
- /* the following 32-bit length fields are assembled in the */
- /* wrong byte order on little endian machines but this is */
- /* corrected later since they are only ever used as 32-bit */
- /* word values. */
- ctx->wbuf[14] = (ctx->count[1] << 3) | (ctx->count[0] >> 29);
- ctx->wbuf[15] = ctx->count[0] << 3;
- sha256_compile(ctx);
-
- /* extract the hash value as bytes in case the hash buffer is */
- /* mislaigned for 32-bit words */
- for(i = 0; i < hlen; ++i)
- hval[i] = (unsigned char)(ctx->hash[i >> 2] >> (8 * (~i & 3)));
-}
-
-#endif
-
-#if defined(SHA_224)
+#ifndef NO_OPTIMIZED_VERSIONS
-const uint_32t i224[8] =
+#if CRYPTOPP_BOOL_X64
+void Avx2Transform(sha512_ctx* ctx, void* mp, uint_64t num_blks)
{
- 0xc1059ed8ul, 0x367cd507ul, 0x3070dd17ul, 0xf70e5939ul,
- 0xffc00b31ul, 0x68581511ul, 0x64f98fa7ul, 0xbefa4fa4ul
-};
+ if (num_blks > 1)
+ sha512_rorx(mp, ctx->hash, num_blks);
+ else
+ sha512_sse4(mp, ctx->hash, num_blks);
+}
-VOID_RETURN sha224_begin(sha224_ctx ctx[1])
+void AvxTransform(sha512_ctx* ctx, void* mp, uint_64t num_blks)
{
- ctx->count[0] = ctx->count[1] = 0;
- memcpy(ctx->hash, i224, 8 * sizeof(uint_32t));
+ if (num_blks > 1)
+ sha512_avx(mp, ctx->hash, num_blks);
+ else
+ sha512_sse4(mp, ctx->hash, num_blks);
}
-VOID_RETURN sha224_end(unsigned char hval[], sha224_ctx ctx[1])
+void SSE4Transform(sha512_ctx* ctx, void* mp, uint_64t num_blks)
{
- sha_end1(hval, ctx, SHA224_DIGEST_SIZE);
+ sha512_sse4(mp, ctx->hash, num_blks);
}
+#endif
-VOID_RETURN sha224(unsigned char hval[], const unsigned char data[], unsigned long len)
-{ sha224_ctx cx[1];
+#if CRYPTOPP_BOOL_X64 || ((CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32) && !defined (TC_MACOSX))
- sha224_begin(cx);
- sha224_hash(data, len, cx);
- sha_end1(hval, cx, SHA224_DIGEST_SIZE);
+void SSE2Transform(sha512_ctx* ctx, void* mp, uint_64t num_blks)
+{
+ uint_64t i;
+ for (i = 0; i < num_blks; i++)
+ sha512_compress_nayuki(ctx->hash, (uint_8t*)mp + i * 128);
}
#endif
-#if defined(SHA_256)
+#endif // NO_OPTIMIZED_VERSIONS
-const uint_32t i256[8] =
+void sha512_begin(sha512_ctx* ctx)
{
- 0x6a09e667ul, 0xbb67ae85ul, 0x3c6ef372ul, 0xa54ff53aul,
- 0x510e527ful, 0x9b05688cul, 0x1f83d9abul, 0x5be0cd19ul
-};
+ ctx->hash[0] = LL(0x6a09e667f3bcc908);
+ ctx->hash[1] = LL(0xbb67ae8584caa73b);
+ ctx->hash[2] = LL(0x3c6ef372fe94f82b);
+ ctx->hash[3] = LL(0xa54ff53a5f1d36f1);
+ ctx->hash[4] = LL(0x510e527fade682d1);
+ ctx->hash[5] = LL(0x9b05688c2b3e6c1f);
+ ctx->hash[6] = LL(0x1f83d9abfb41bd6b);
+ ctx->hash[7] = LL(0x5be0cd19137e2179);
+ ctx->count[0] = 0;
+ ctx->count[1] = 0;
+
+ if (!transfunc)
+ {
+#ifndef NO_OPTIMIZED_VERSIONS
+#if CRYPTOPP_BOOL_X64
+ if (g_isIntel&& HasSAVX2() && HasSBMI2())
+ transfunc = Avx2Transform;
+ else if (g_isIntel && HasSAVX())
+ {
+ transfunc = AvxTransform;
+ }
+ else if (HasSSE41())
+ {
+ transfunc = SSE4Transform;
+ }
+ else
+#endif
-VOID_RETURN sha256_begin(sha256_ctx ctx[1])
+#if CRYPTOPP_BOOL_X64 || ((CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32) && !defined (TC_MACOSX))
+#if CRYPTOPP_BOOL_X64
+ if (HasSSE2())
+#else
+ if (HasSSSE3() && HasMMX())
+#endif
+ transfunc = SSE2Transform;
+ else
+#endif
+
+#endif
+ transfunc = StdTransform;
+ }
+}
+
+void sha512_end(unsigned char * result, sha512_ctx* ctx)
{
- ctx->count[0] = ctx->count[1] = 0;
- memcpy(ctx->hash, i256, 8 * sizeof(uint_32t));
+ int i;
+ uint_64t mlen, pos = ctx->count[0];
+ uint_8t* m = (uint_8t*) ctx->wbuf;
+ m[pos++] = 0x80;
+ if (pos > 112)
+ {
+ memset(m + pos, 0, (size_t) (128 - pos));
+ transfunc(ctx, m, 1);
+ pos = 0;
+ }
+ memset(m + pos, 0, (size_t) (128 - pos));
+ mlen = bswap_64(ctx->count[1]);
+ memcpy(m + (128 - 8), &mlen, 64 / 8);
+ transfunc(ctx, m, 1);
+ for (i = 0; i < 8; i++)
+ {
+ ctx->hash[i] = bswap_64(ctx->hash[i]);
+ }
+ memcpy(result, ctx->hash, 64);
}
-VOID_RETURN sha256_end(unsigned char hval[], sha256_ctx ctx[1])
+void sha512_hash(const unsigned char * data, uint_64t len, sha512_ctx *ctx)
{
- sha_end1(hval, ctx, SHA256_DIGEST_SIZE);
+ uint_64t pos = ctx->count[0];
+ uint_64t total = ctx->count[1];
+ uint_8t* m = (uint_8t*) ctx->wbuf;
+ if (pos && pos + len >= 128)
+ {
+ memcpy(m + pos, data, (size_t) (128 - pos));
+ transfunc(ctx, m, 1);
+ len -= 128 - pos;
+ total += (128 - pos) * 8;
+ data += 128 - pos;
+ pos = 0;
+ }
+ if (len >= 128)
+ {
+ uint_64t blocks = len / 128;
+ uint_64t bytes = blocks * 128;
+ transfunc(ctx, (void*)data, blocks);
+ len -= bytes;
+ total += (bytes)* 8;
+ data += bytes;
+ }
+ memcpy(m+pos, data, (size_t) (len));
+ pos += len;
+ total += len * 8;
+ ctx->count[0] = pos;
+ ctx->count[1] = total;
}
-VOID_RETURN sha256(unsigned char hval[], const unsigned char data[], unsigned long len)
-{ sha256_ctx cx[1];
+void sha512(unsigned char * result, const unsigned char* source, uint_64t sourceLen)
+{
+ sha512_ctx ctx;
- sha256_begin(cx);
- sha256_hash(data, len, cx);
- sha_end1(hval, cx, SHA256_DIGEST_SIZE);
+ sha512_begin(&ctx);
+ sha512_hash(source, sourceLen, &ctx);
+ sha512_end(result, &ctx);
}
-#endif
+/////////////////////////////
-#if defined(SHA_384) || defined(SHA_512)
+#ifndef NO_OPTIMIZED_VERSIONS
-#define SHA512_MASK (SHA512_BLOCK_SIZE - 1)
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
-#if defined(SWAP_BYTES)
-#define bsw_64(p,n) \
- { int _i = (n); while(_i--) ((uint_64t*)p)[_i] = bswap_64(((uint_64t*)p)[_i]); }
-#else
-#define bsw_64(p,n)
+#if CRYPTOPP_BOOL_X64
+ void sha256_sse4(void *input_data, uint_32t digest[8], uint_64t num_blks);
+ void sha256_rorx(void *input_data, uint_32t digest[8], uint_64t num_blks);
+ void sha256_avx(void *input_data, uint_32t digest[8], uint_64t num_blks);
#endif
-/* SHA512 mixing function definitions */
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+ void sha256_compress_nayuki(uint_32t state[8], const uint_8t block[64]);
+#endif
-#ifdef s_0
-# undef s_0
-# undef s_1
-# undef g_0
-# undef g_1
-# undef k_0
+#if defined(__cplusplus)
+}
#endif
-#define s_0(x) (rotr64((x), 28) ^ rotr64((x), 34) ^ rotr64((x), 39))
-#define s_1(x) (rotr64((x), 14) ^ rotr64((x), 18) ^ rotr64((x), 41))
-#define g_0(x) (rotr64((x), 1) ^ rotr64((x), 8) ^ ((x) >> 7))
-#define g_1(x) (rotr64((x), 19) ^ rotr64((x), 61) ^ ((x) >> 6))
-#define k_0 k512
+#endif
-/* SHA384/SHA512 mixing data */
+CRYPTOPP_ALIGN_DATA(16) 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,
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+ };
+
+#if (defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X32_ASM_AVAILABLE))
+
+#ifdef _MSC_VER
+# pragma warning(disable: 4100 4731)
+#endif
-const uint_64t k512[80] =
+static void CRYPTOPP_FASTCALL X86_SHA256_HashBlocks(uint_32t *state, const uint_32t *data, size_t len)
{
- li_64(428a2f98d728ae22), li_64(7137449123ef65cd),
- li_64(b5c0fbcfec4d3b2f), li_64(e9b5dba58189dbbc),
- li_64(3956c25bf348b538), li_64(59f111f1b605d019),
- li_64(923f82a4af194f9b), li_64(ab1c5ed5da6d8118),
- li_64(d807aa98a3030242), li_64(12835b0145706fbe),
- li_64(243185be4ee4b28c), li_64(550c7dc3d5ffb4e2),
- li_64(72be5d74f27b896f), li_64(80deb1fe3b1696b1),
- li_64(9bdc06a725c71235), li_64(c19bf174cf692694),
- li_64(e49b69c19ef14ad2), li_64(efbe4786384f25e3),
- li_64(0fc19dc68b8cd5b5), li_64(240ca1cc77ac9c65),
- li_64(2de92c6f592b0275), li_64(4a7484aa6ea6e483),
- li_64(5cb0a9dcbd41fbd4), li_64(76f988da831153b5),
- li_64(983e5152ee66dfab), li_64(a831c66d2db43210),
- li_64(b00327c898fb213f), li_64(bf597fc7beef0ee4),
- li_64(c6e00bf33da88fc2), li_64(d5a79147930aa725),
- li_64(06ca6351e003826f), li_64(142929670a0e6e70),
- li_64(27b70a8546d22ffc), li_64(2e1b21385c26c926),
- li_64(4d2c6dfc5ac42aed), li_64(53380d139d95b3df),
- li_64(650a73548baf63de), li_64(766a0abb3c77b2a8),
- li_64(81c2c92e47edaee6), li_64(92722c851482353b),
- li_64(a2bfe8a14cf10364), li_64(a81a664bbc423001),
- li_64(c24b8b70d0f89791), li_64(c76c51a30654be30),
- li_64(d192e819d6ef5218), li_64(d69906245565a910),
- li_64(f40e35855771202a), li_64(106aa07032bbd1b8),
- li_64(19a4c116b8d2d0c8), li_64(1e376c085141ab53),
- li_64(2748774cdf8eeb99), li_64(34b0bcb5e19b48a8),
- li_64(391c0cb3c5c95a63), li_64(4ed8aa4ae3418acb),
- li_64(5b9cca4f7763e373), li_64(682e6ff3d6b2b8a3),
- li_64(748f82ee5defb2fc), li_64(78a5636f43172f60),
- li_64(84c87814a1f0ab72), li_64(8cc702081a6439ec),
- li_64(90befffa23631e28), li_64(a4506cebde82bde9),
- li_64(bef9a3f7b2c67915), li_64(c67178f2e372532b),
- li_64(ca273eceea26619c), li_64(d186b8c721c0c207),
- li_64(eada7dd6cde0eb1e), li_64(f57d4f7fee6ed178),
- li_64(06f067aa72176fba), li_64(0a637dc5a2c898a6),
- li_64(113f9804bef90dae), li_64(1b710b35131c471b),
- li_64(28db77f523047d84), li_64(32caab7b40c72493),
- li_64(3c9ebe0a15c9bebc), li_64(431d67c49c100d4c),
- li_64(4cc5d4becb3e42b6), li_64(597f299cfc657e2a),
- li_64(5fcb6fab3ad6faec), li_64(6c44198c4a475817)
-};
-
-/* Compile 128 bytes of hash data into SHA384/512 digest */
-/* NOTE: this routine assumes that the byte order in the */
-/* ctx->wbuf[] at this point is such that low address bytes */
-/* in the ORIGINAL byte stream will go into the high end of */
-/* words on BOTH big and little endian systems */
-
-VOID_RETURN sha512_compile(sha512_ctx ctx[1])
-{ uint_64t v[8], *p = ctx->wbuf;
- uint_32t j;
-
- memcpy(v, ctx->hash, 8 * sizeof(uint_64t));
-
- for(j = 0; j < 80; j += 16)
- {
- v_cycle( 0, j); v_cycle( 1, j);
- v_cycle( 2, j); v_cycle( 3, j);
- v_cycle( 4, j); v_cycle( 5, j);
- v_cycle( 6, j); v_cycle( 7, j);
- v_cycle( 8, j); v_cycle( 9, j);
- v_cycle(10, j); v_cycle(11, j);
- v_cycle(12, j); v_cycle(13, j);
- v_cycle(14, j); v_cycle(15, j);
- }
-
- ctx->hash[0] += v[0]; ctx->hash[1] += v[1];
- ctx->hash[2] += v[2]; ctx->hash[3] += v[3];
- ctx->hash[4] += v[4]; ctx->hash[5] += v[5];
- ctx->hash[6] += v[6]; ctx->hash[7] += v[7];
-}
+ #define LOCALS_SIZE 8*4 + 16*4 + 4*WORD_SZ
+ #define H(i) [BASE+ASM_MOD(1024+7-(i),8)*4]
+ #define G(i) H(i+1)
+ #define F(i) H(i+2)
+ #define E(i) H(i+3)
+ #define D(i) H(i+4)
+ #define C(i) H(i+5)
+ #define B(i) H(i+6)
+ #define A(i) H(i+7)
+ #define Wt(i) BASE+8*4+ASM_MOD(1024+15-(i),16)*4
+ #define Wt_2(i) Wt((i)-2)
+ #define Wt_15(i) Wt((i)-15)
+ #define Wt_7(i) Wt((i)-7)
+ #define K_END [BASE+8*4+16*4+0*WORD_SZ]
+ #define STATE_SAVE [BASE+8*4+16*4+1*WORD_SZ]
+ #define DATA_SAVE [BASE+8*4+16*4+2*WORD_SZ]
+ #define DATA_END [BASE+8*4+16*4+3*WORD_SZ]
+ #define Kt(i) WORD_REG(si)+(i)*4
+#if CRYPTOPP_BOOL_X32
+ #define BASE esp+8
+#elif CRYPTOPP_BOOL_X86
+ #define BASE esp+4
+#elif defined(__GNUC__)
+ #define BASE r8
+#else
+ #define BASE rsp
+#endif
-/* Compile 128 bytes of hash data into SHA256 digest value */
-/* NOTE: this routine assumes that the byte order in the */
-/* ctx->wbuf[] at this point is in such an order that low */
-/* address bytes in the ORIGINAL byte stream placed in this */
-/* buffer will now go to the high end of words on BOTH big */
-/* and little endian systems */
-
-VOID_RETURN sha512_hash(const unsigned char data[], unsigned long len, sha512_ctx ctx[1])
-{ uint_32t pos = (uint_32t)(ctx->count[0] & SHA512_MASK),
- space = SHA512_BLOCK_SIZE - pos;
- const unsigned char *sp = data;
-
- if((ctx->count[0] += len) < len)
- ++(ctx->count[1]);
-
- while(len >= space) /* tranfer whole blocks while possible */
- {
- memcpy(((unsigned char*)ctx->wbuf) + pos, sp, space);
- sp += space; len -= space; space = SHA512_BLOCK_SIZE; pos = 0;
- bsw_64(ctx->wbuf, SHA512_BLOCK_SIZE >> 3);
- sha512_compile(ctx);
- }
-
- memcpy(((unsigned char*)ctx->wbuf) + pos, sp, len);
-}
+#define RA0(i, edx, edi) \
+ AS2( add edx, [Kt(i)] )\
+ AS2( add edx, [Wt(i)] )\
+ AS2( add edx, H(i) )\
+
+#define RA1(i, edx, edi)
+
+#define RB0(i, edx, edi)
+
+#define RB1(i, edx, edi) \
+ AS2( mov AS_REG_7d, [Wt_2(i)] )\
+ AS2( mov edi, [Wt_15(i)])\
+ AS2( mov ebx, AS_REG_7d )\
+ AS2( shr AS_REG_7d, 10 )\
+ AS2( ror ebx, 17 )\
+ AS2( xor AS_REG_7d, ebx )\
+ AS2( ror ebx, 2 )\
+ AS2( xor ebx, AS_REG_7d )/* s1(W_t-2) */\
+ AS2( add ebx, [Wt_7(i)])\
+ AS2( mov AS_REG_7d, edi )\
+ AS2( shr AS_REG_7d, 3 )\
+ AS2( ror edi, 7 )\
+ AS2( add ebx, [Wt(i)])/* s1(W_t-2) + W_t-7 + W_t-16 */\
+ AS2( xor AS_REG_7d, edi )\
+ AS2( add edx, [Kt(i)])\
+ AS2( ror edi, 11 )\
+ AS2( add edx, H(i) )\
+ AS2( xor AS_REG_7d, edi )/* s0(W_t-15) */\
+ AS2( add AS_REG_7d, ebx )/* W_t = s1(W_t-2) + W_t-7 + s0(W_t-15) W_t-16*/\
+ AS2( mov [Wt(i)], AS_REG_7d)\
+ AS2( add edx, AS_REG_7d )\
+
+#define ROUND(i, r, eax, ecx, edi, edx)\
+ /* in: edi = E */\
+ /* unused: eax, ecx, temp: ebx, AS_REG_7d, out: edx = T1 */\
+ AS2( mov edx, F(i) )\
+ AS2( xor edx, G(i) )\
+ AS2( and edx, edi )\
+ AS2( xor edx, G(i) )/* Ch(E,F,G) = (G^(E&(F^G))) */\
+ AS2( mov AS_REG_7d, edi )\
+ AS2( ror edi, 6 )\
+ AS2( ror AS_REG_7d, 25 )\
+ RA##r(i, edx, edi )/* H + Wt + Kt + Ch(E,F,G) */\
+ AS2( xor AS_REG_7d, edi )\
+ AS2( ror edi, 5 )\
+ AS2( xor AS_REG_7d, edi )/* S1(E) */\
+ AS2( add edx, AS_REG_7d )/* T1 = S1(E) + Ch(E,F,G) + H + Wt + Kt */\
+ RB##r(i, edx, edi )/* H + Wt + Kt + Ch(E,F,G) */\
+ /* in: ecx = A, eax = B^C, edx = T1 */\
+ /* unused: edx, temp: ebx, AS_REG_7d, out: eax = A, ecx = B^C, edx = E */\
+ AS2( mov ebx, ecx )\
+ AS2( xor ecx, B(i) )/* A^B */\
+ AS2( and eax, ecx )\
+ AS2( xor eax, B(i) )/* Maj(A,B,C) = B^((A^B)&(B^C) */\
+ AS2( mov AS_REG_7d, ebx )\
+ AS2( ror ebx, 2 )\
+ AS2( add eax, edx )/* T1 + Maj(A,B,C) */\
+ AS2( add edx, D(i) )\
+ AS2( mov D(i), edx )\
+ AS2( ror AS_REG_7d, 22 )\
+ AS2( xor AS_REG_7d, ebx )\
+ AS2( ror ebx, 11 )\
+ AS2( xor AS_REG_7d, ebx )\
+ AS2( add eax, AS_REG_7d )/* T1 + S0(A) + Maj(A,B,C) */\
+ AS2( mov H(i), eax )\
+
+// Unroll the use of CRYPTOPP_BOOL_X64 in assembler math. The GAS assembler on X32 (version 2.25)
+// complains "Error: invalid operands (*ABS* and *UND* sections) for `*` and `-`"
+#if CRYPTOPP_BOOL_X64
+#define SWAP_COPY(i) \
+ AS2( mov WORD_REG(bx), [WORD_REG(dx)+i*WORD_SZ])\
+ AS1( bswap WORD_REG(bx))\
+ AS2( mov [Wt(i*2+1)], WORD_REG(bx))
+#else // X86 and X32
+#define SWAP_COPY(i) \
+ AS2( mov WORD_REG(bx), [WORD_REG(dx)+i*WORD_SZ])\
+ AS1( bswap WORD_REG(bx))\
+ AS2( mov [Wt(i)], WORD_REG(bx))
+#endif
-/* SHA384/512 Final padding and digest calculation */
-
-static void sha_end2(unsigned char hval[], sha512_ctx ctx[1], const unsigned int hlen)
-{ uint_32t i = (uint_32t)(ctx->count[0] & SHA512_MASK);
-
- /* put bytes in the buffer in an order in which references to */
- /* 32-bit words will put bytes with lower addresses into the */
- /* top of 32 bit words on BOTH big and little endian machines */
- bsw_64(ctx->wbuf, (i + 7) >> 3);
-
- /* we now need to mask valid bytes and add the padding which is */
- /* a single 1 bit and as many zero bits as necessary. Note that */
- /* we can always add the first padding byte here because the */
- /* buffer always has at least one empty slot */
- ctx->wbuf[i >> 3] &= li_64(ffffffffffffff00) << 8 * (~i & 7);
- ctx->wbuf[i >> 3] |= li_64(0000000000000080) << 8 * (~i & 7);
-
- /* we need 17 or more empty byte positions, one for the padding */
- /* byte (above) and sixteen for the length count. If there is */
- /* not enough space pad and empty the buffer */
- if(i > SHA512_BLOCK_SIZE - 17)
- {
- if(i < 120) ctx->wbuf[15] = 0;
- sha512_compile(ctx);
- i = 0;
- }
- else
- i = (i >> 3) + 1;
-
- while(i < 14)
- ctx->wbuf[i++] = 0;
-
- /* the following 64-bit length fields are assembled in the */
- /* wrong byte order on little endian machines but this is */
- /* corrected later since they are only ever used as 64-bit */
- /* word values. */
- ctx->wbuf[14] = (ctx->count[1] << 3) | (ctx->count[0] >> 61);
- ctx->wbuf[15] = ctx->count[0] << 3;
- sha512_compile(ctx);
-
- /* extract the hash value as bytes in case the hash buffer is */
- /* misaligned for 32-bit words */
- for(i = 0; i < hlen; ++i)
- hval[i] = (unsigned char)(ctx->hash[i >> 3] >> (8 * (~i & 7)));
-}
+#if defined(__GNUC__)
+ #if CRYPTOPP_BOOL_X64
+ CRYPTOPP_ALIGN_DATA(16) byte workspace[LOCALS_SIZE] ;
+ #endif
+ __asm__ __volatile__
+ (
+ #if CRYPTOPP_BOOL_X64
+ "lea %4, %%r8;"
+ #endif
+ INTEL_NOPREFIX
+#endif
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+ #ifndef __GNUC__
+ AS2( mov edi, [len])
+ AS2( lea WORD_REG(si), [SHA256_K+48*4])
+ #endif
+ #if !defined(_MSC_VER) || (_MSC_VER < 1400)
+ AS_PUSH_IF86(bx)
+ #endif
+
+ AS_PUSH_IF86(bp)
+ AS2( mov ebx, esp)
+ AS2( and esp, -16)
+ AS2( sub WORD_REG(sp), LOCALS_SIZE)
+ AS_PUSH_IF86(bx)
+#endif
+ AS2( mov STATE_SAVE, WORD_REG(cx))
+ AS2( mov DATA_SAVE, WORD_REG(dx))
+ AS2( lea WORD_REG(ax), [WORD_REG(di) + WORD_REG(dx)])
+ AS2( mov DATA_END, WORD_REG(ax))
+ AS2( mov K_END, WORD_REG(si))
+
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+ AS2( test edi, 1)
+ ASJ( jnz, 2, f)
+ AS1( dec DWORD PTR K_END)
+#endif
+ AS2( movdqu xmm0, XMMWORD_PTR [WORD_REG(cx)+0*16])
+ AS2( movdqu xmm1, XMMWORD_PTR [WORD_REG(cx)+1*16])
#endif
-#if defined(SHA_384)
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+ ASJ( jmp, 0, f)
+#endif
+ ASL(2) // non-SSE2
+ AS2( mov esi, ecx)
+ AS2( lea edi, A(0))
+ AS2( mov ecx, 8)
+ATT_NOPREFIX
+ AS1( rep movsd)
+INTEL_NOPREFIX
+ AS2( mov esi, K_END)
+ ASJ( jmp, 3, f)
+#endif
-/* SHA384 initialisation data */
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+ ASL(0)
+ AS2( movdqu E(0), xmm1)
+ AS2( movdqu A(0), xmm0)
+#endif
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+ ASL(3)
+#endif
+ AS2( sub WORD_REG(si), 48*4)
+ SWAP_COPY(0) SWAP_COPY(1) SWAP_COPY(2) SWAP_COPY(3)
+ SWAP_COPY(4) SWAP_COPY(5) SWAP_COPY(6) SWAP_COPY(7)
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+ SWAP_COPY(8) SWAP_COPY(9) SWAP_COPY(10) SWAP_COPY(11)
+ SWAP_COPY(12) SWAP_COPY(13) SWAP_COPY(14) SWAP_COPY(15)
+#endif
+ AS2( mov edi, E(0)) // E
+ AS2( mov eax, B(0)) // B
+ AS2( xor eax, C(0)) // B^C
+ AS2( mov ecx, A(0)) // A
+
+ ROUND(0, 0, eax, ecx, edi, edx)
+ ROUND(1, 0, ecx, eax, edx, edi)
+ ROUND(2, 0, eax, ecx, edi, edx)
+ ROUND(3, 0, ecx, eax, edx, edi)
+ ROUND(4, 0, eax, ecx, edi, edx)
+ ROUND(5, 0, ecx, eax, edx, edi)
+ ROUND(6, 0, eax, ecx, edi, edx)
+ ROUND(7, 0, ecx, eax, edx, edi)
+ ROUND(8, 0, eax, ecx, edi, edx)
+ ROUND(9, 0, ecx, eax, edx, edi)
+ ROUND(10, 0, eax, ecx, edi, edx)
+ ROUND(11, 0, ecx, eax, edx, edi)
+ ROUND(12, 0, eax, ecx, edi, edx)
+ ROUND(13, 0, ecx, eax, edx, edi)
+ ROUND(14, 0, eax, ecx, edi, edx)
+ ROUND(15, 0, ecx, eax, edx, edi)
+
+ ASL(1)
+ AS2(add WORD_REG(si), 4*16)
+ ROUND(0, 1, eax, ecx, edi, edx)
+ ROUND(1, 1, ecx, eax, edx, edi)
+ ROUND(2, 1, eax, ecx, edi, edx)
+ ROUND(3, 1, ecx, eax, edx, edi)
+ ROUND(4, 1, eax, ecx, edi, edx)
+ ROUND(5, 1, ecx, eax, edx, edi)
+ ROUND(6, 1, eax, ecx, edi, edx)
+ ROUND(7, 1, ecx, eax, edx, edi)
+ ROUND(8, 1, eax, ecx, edi, edx)
+ ROUND(9, 1, ecx, eax, edx, edi)
+ ROUND(10, 1, eax, ecx, edi, edx)
+ ROUND(11, 1, ecx, eax, edx, edi)
+ ROUND(12, 1, eax, ecx, edi, edx)
+ ROUND(13, 1, ecx, eax, edx, edi)
+ ROUND(14, 1, eax, ecx, edi, edx)
+ ROUND(15, 1, ecx, eax, edx, edi)
+ AS2( cmp WORD_REG(si), K_END)
+ ATT_NOPREFIX
+ ASJ( jb, 1, b)
+ INTEL_NOPREFIX
+
+ AS2( mov WORD_REG(dx), DATA_SAVE)
+ AS2( add WORD_REG(dx), 64)
+ AS2( mov AS_REG_7, STATE_SAVE)
+ AS2( mov DATA_SAVE, WORD_REG(dx))
+
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+ AS2( test DWORD PTR K_END, 1)
+ ASJ( jz, 4, f)
+#endif
+ AS2( movdqu xmm1, XMMWORD_PTR [AS_REG_7+1*16])
+ AS2( movdqu xmm0, XMMWORD_PTR [AS_REG_7+0*16])
+ AS2( paddd xmm1, E(0))
+ AS2( paddd xmm0, A(0))
+ AS2( movdqu [AS_REG_7+1*16], xmm1)
+ AS2( movdqu [AS_REG_7+0*16], xmm0)
+ AS2( cmp WORD_REG(dx), DATA_END)
+ ATT_NOPREFIX
+ ASJ( jb, 0, b)
+ INTEL_NOPREFIX
+#endif
-const uint_64t i384[80] =
-{
- li_64(cbbb9d5dc1059ed8), li_64(629a292a367cd507),
- li_64(9159015a3070dd17), li_64(152fecd8f70e5939),
- li_64(67332667ffc00b31), li_64(8eb44a8768581511),
- li_64(db0c2e0d64f98fa7), li_64(47b5481dbefa4fa4)
-};
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+ ASJ( jmp, 5, f)
+ ASL(4) // non-SSE2
+#endif
+ AS2( add [AS_REG_7+0*4], ecx) // A
+ AS2( add [AS_REG_7+4*4], edi) // E
+ AS2( mov eax, B(0))
+ AS2( mov ebx, C(0))
+ AS2( mov ecx, D(0))
+ AS2( add [AS_REG_7+1*4], eax)
+ AS2( add [AS_REG_7+2*4], ebx)
+ AS2( add [AS_REG_7+3*4], ecx)
+ AS2( mov eax, F(0))
+ AS2( mov ebx, G(0))
+ AS2( mov ecx, H(0))
+ AS2( add [AS_REG_7+5*4], eax)
+ AS2( add [AS_REG_7+6*4], ebx)
+ AS2( add [AS_REG_7+7*4], ecx)
+ AS2( mov ecx, AS_REG_7d)
+ AS2( cmp WORD_REG(dx), DATA_END)
+ ASJ( jb, 2, b)
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+ ASL(5)
+#endif
+#endif
-VOID_RETURN sha384_begin(sha384_ctx ctx[1])
-{
- ctx->count[0] = ctx->count[1] = 0;
- memcpy(ctx->hash, i384, 8 * sizeof(uint_64t));
+ AS_POP_IF86(sp)
+ AS_POP_IF86(bp)
+ #if !defined(_MSC_VER) || (_MSC_VER < 1400)
+ AS_POP_IF86(bx)
+ #endif
+
+#ifdef __GNUC__
+ ATT_PREFIX
+ :
+ : "c" (state), "d" (data), "S" (SHA256_K+48), "D" (len)
+ #if CRYPTOPP_BOOL_X64
+ , "m" (workspace[0])
+ #endif
+ : "memory", "cc", "%eax"
+ #if CRYPTOPP_BOOL_X64
+ , "%rbx", "%r8", "%r10"
+ #endif
+ );
+#endif
}
-VOID_RETURN sha384_end(unsigned char hval[], sha384_ctx ctx[1])
-{
- sha_end2(hval, ctx, SHA384_DIGEST_SIZE);
-}
+#endif // (defined(CRYPTOPP_X86_ASM_AVAILABLE))
-VOID_RETURN sha384(unsigned char hval[], const unsigned char data[], unsigned long len)
-{ sha384_ctx cx[1];
+#undef sum0
+#undef sum1
+#undef sigma0
+#undef sigma1
- sha384_begin(cx);
- sha384_hash(data, len, cx);
- sha_end2(hval, cx, SHA384_DIGEST_SIZE);
-}
+#define sum0(x) (rotr32((x), 2) ^ rotr32((x), 13) ^ rotr32((x), 22))
+#define sum1(x) (rotr32((x), 6) ^ rotr32((x), 11) ^ rotr32((x), 25))
+#define sigma0(x) (rotr32((x), 7) ^ rotr32((x), 18) ^ ((x) >> 3))
+#define sigma1(x) (rotr32((x), 17) ^ rotr32((x), 19) ^ ((x) >> 10))
-#endif
-#if defined(SHA_512)
+typedef void (*sha256transformFn)(sha256_ctx* ctx, void* m, uint_64t num_blks);
-/* SHA512 initialisation data */
+sha256transformFn sha256transfunc = NULL;
-const uint_64t i512[80] =
+void StdSha256Transform(sha256_ctx* ctx, void* mp, uint_64t num_blks)
{
- li_64(6a09e667f3bcc908), li_64(bb67ae8584caa73b),
- li_64(3c6ef372fe94f82b), li_64(a54ff53a5f1d36f1),
- li_64(510e527fade682d1), li_64(9b05688c2b3e6c1f),
- li_64(1f83d9abfb41bd6b), li_64(5be0cd19137e2179)
-};
+ uint_64t blk;
+ for (blk = 0; blk < num_blks; blk++)
+ {
+ uint_32t W[16];
+ uint_32t a,b,c,d,e,f,g,h;
+ uint_32t T1, T2;
+ int i;
+#if defined (TC_WINDOWS_DRIVER) && defined (DEBUG)
+ int j;
+#endif
-VOID_RETURN sha512_begin(sha512_ctx ctx[1])
-{
- ctx->count[0] = ctx->count[1] = 0;
- memcpy(ctx->hash, i512, 8 * sizeof(uint_64t));
+ for (i = 0; i < 64 / 4; i++)
+ {
+ W[i] = bswap_32((((const uint_32t*)(mp))[blk * 16 + i]));
+ }
+
+ a = ctx->hash[0];
+ b = ctx->hash[1];
+ c = ctx->hash[2];
+ d = ctx->hash[3];
+ e = ctx->hash[4];
+ f = ctx->hash[5];
+ g = ctx->hash[6];
+ h = ctx->hash[7];
+
+ for (i = 0; i <= 63; i+=16)
+ {
+#if defined (TC_WINDOWS_DRIVER) && defined (DEBUG)
+ for (j = 0; j < 16; j++)
+ {
+ COMPRESS_ROUND(i, j, SHA256_K);
+ }
+#else
+ COMPRESS_ROUND(i, 0, SHA256_K);
+ COMPRESS_ROUND(i, 1, SHA256_K);
+ COMPRESS_ROUND(i , 2, SHA256_K);
+ COMPRESS_ROUND(i, 3, SHA256_K);
+ COMPRESS_ROUND(i, 4, SHA256_K);
+ COMPRESS_ROUND(i, 5, SHA256_K);
+ COMPRESS_ROUND(i, 6, SHA256_K);
+ COMPRESS_ROUND(i, 7, SHA256_K);
+ COMPRESS_ROUND(i, 8, SHA256_K);
+ COMPRESS_ROUND(i, 9, SHA256_K);
+ COMPRESS_ROUND(i, 10, SHA256_K);
+ COMPRESS_ROUND(i, 11, SHA256_K);
+ COMPRESS_ROUND(i, 12, SHA256_K);
+ COMPRESS_ROUND(i, 13, SHA256_K);
+ COMPRESS_ROUND(i, 14, SHA256_K);
+ COMPRESS_ROUND(i, 15, SHA256_K);
+#endif
+ }
+ ctx->hash[0] += a;
+ ctx->hash[1] += b;
+ ctx->hash[2] += c;
+ ctx->hash[3] += d;
+ ctx->hash[4] += e;
+ ctx->hash[5] += f;
+ ctx->hash[6] += g;
+ ctx->hash[7] += h;
+ }
}
-VOID_RETURN sha512_end(unsigned char hval[], sha512_ctx ctx[1])
+#ifndef NO_OPTIMIZED_VERSIONS
+
+#if CRYPTOPP_BOOL_X64
+void Avx2Sha256Transform(sha256_ctx* ctx, void* mp, uint_64t num_blks)
{
- sha_end2(hval, ctx, SHA512_DIGEST_SIZE);
+ if (num_blks > 1)
+ sha256_rorx(mp, ctx->hash, num_blks);
+ else
+ sha256_sse4(mp, ctx->hash, num_blks);
}
-VOID_RETURN sha512(unsigned char hval[], const unsigned char data[], unsigned long len)
-{ sha512_ctx cx[1];
+void AvxSha256Transform(sha256_ctx* ctx, void* mp, uint_64t num_blks)
+{
+ if (num_blks > 1)
+ sha256_avx(mp, ctx->hash, num_blks);
+ else
+ sha256_sse4(mp, ctx->hash, num_blks);
+}
- sha512_begin(cx);
- sha512_hash(data, len, cx);
- sha_end2(hval, cx, SHA512_DIGEST_SIZE);
+void SSE4Sha256Transform(sha256_ctx* ctx, void* mp, uint_64t num_blks)
+{
+ sha256_sse4(mp, ctx->hash, num_blks);
}
#endif
-#if defined(SHA_2)
-
-#define CTX_224(x) ((x)->uu->ctx256)
-#define CTX_256(x) ((x)->uu->ctx256)
-#define CTX_384(x) ((x)->uu->ctx512)
-#define CTX_512(x) ((x)->uu->ctx512)
-
-/* SHA2 initialisation */
-
-INT_RETURN sha2_begin(unsigned long len, sha2_ctx ctx[1])
+#if (defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X32_ASM_AVAILABLE))
+void SSE2Sha256Transform(sha256_ctx* ctx, void* mp, uint_64t num_blks)
{
- switch(len)
- {
-#if defined(SHA_224)
- case 224:
- case 28: CTX_256(ctx)->count[0] = CTX_256(ctx)->count[1] = 0;
- memcpy(CTX_256(ctx)->hash, i224, 32);
- ctx->sha2_len = 28; return EXIT_SUCCESS;
-#endif
-#if defined(SHA_256)
- case 256:
- case 32: CTX_256(ctx)->count[0] = CTX_256(ctx)->count[1] = 0;
- memcpy(CTX_256(ctx)->hash, i256, 32);
- ctx->sha2_len = 32; return EXIT_SUCCESS;
-#endif
-#if defined(SHA_384)
- case 384:
- case 48: CTX_384(ctx)->count[0] = CTX_384(ctx)->count[1] = 0;
- memcpy(CTX_384(ctx)->hash, i384, 64);
- ctx->sha2_len = 48; return EXIT_SUCCESS;
-#endif
-#if defined(SHA_512)
- case 512:
- case 64: CTX_512(ctx)->count[0] = CTX_512(ctx)->count[1] = 0;
- memcpy(CTX_512(ctx)->hash, i512, 64);
- ctx->sha2_len = 64; return EXIT_SUCCESS;
-#endif
- default: return EXIT_FAILURE;
- }
+ X86_SHA256_HashBlocks(ctx->hash, (const uint_32t*)mp, (size_t)(num_blks * 64));
}
+#endif
-VOID_RETURN sha2_hash(const unsigned char data[], unsigned long len, sha2_ctx ctx[1])
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+void Sha256AsmTransform(sha256_ctx* ctx, void* mp, uint_64t num_blks)
{
- switch(ctx->sha2_len)
- {
-#if defined(SHA_224)
- case 28: sha224_hash(data, len, CTX_224(ctx)); return;
-#endif
-#if defined(SHA_256)
- case 32: sha256_hash(data, len, CTX_256(ctx)); return;
-#endif
-#if defined(SHA_384)
- case 48: sha384_hash(data, len, CTX_384(ctx)); return;
+ uint_64t i;
+ for (i = 0; i < num_blks; i++)
+ sha256_compress_nayuki(ctx->hash, (uint_8t*)mp + i * 64);
+}
#endif
-#if defined(SHA_512)
- case 64: sha512_hash(data, len, CTX_512(ctx)); return;
+
#endif
- }
-}
-VOID_RETURN sha2_end(unsigned char hval[], sha2_ctx ctx[1])
+void sha256_begin(sha256_ctx* ctx)
{
- switch(ctx->sha2_len)
- {
-#if defined(SHA_224)
- case 28: sha_end1(hval, CTX_224(ctx), SHA224_DIGEST_SIZE); return;
+ ctx->hash[0] = 0x6a09e667;
+ ctx->hash[1] = 0xbb67ae85;
+ ctx->hash[2] = 0x3c6ef372;
+ ctx->hash[3] = 0xa54ff53a;
+ ctx->hash[4] = 0x510e527f;
+ ctx->hash[5] = 0x9b05688c;
+ ctx->hash[6] = 0x1f83d9ab;
+ ctx->hash[7] = 0x5be0cd19;
+ ctx->count[0] = 0;
+ ctx->count[1] = 0;
+
+ if (!sha256transfunc)
+ {
+#ifndef NO_OPTIMIZED_VERSIONS
+#ifdef _M_X64
+ if (g_isIntel && HasSAVX2() && HasSBMI2())
+ sha256transfunc = Avx2Sha256Transform;
+ else if (g_isIntel && HasSAVX())
+ sha256transfunc = AvxSha256Transform;
+ else if (HasSSE41())
+ sha256transfunc = SSE4Sha256Transform;
+ else
#endif
-#if defined(SHA_256)
- case 32: sha_end1(hval, CTX_256(ctx), SHA256_DIGEST_SIZE); return;
+
+#if (defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X32_ASM_AVAILABLE))
+ if (HasSSE2 ())
+ sha256transfunc = SSE2Sha256Transform;
+ else
#endif
-#if defined(SHA_384)
- case 48: sha_end2(hval, CTX_384(ctx), SHA384_DIGEST_SIZE); return;
+
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32
+ sha256transfunc = Sha256AsmTransform;
+#else
+ sha256transfunc = StdSha256Transform;
#endif
-#if defined(SHA_512)
- case 64: sha_end2(hval, CTX_512(ctx), SHA512_DIGEST_SIZE); return;
+#else
+ sha256transfunc = StdSha256Transform;
#endif
- }
+ }
}
-INT_RETURN sha2(unsigned char hval[], unsigned long size,
- const unsigned char data[], unsigned long len)
-{ sha2_ctx cx[1];
+void sha256_end(unsigned char * result, sha256_ctx* ctx)
+{
+ int i;
+ uint_64t mlen, pos = ctx->count[0];
+ uint_8t* m = (uint_8t*) ctx->wbuf;
+ m[pos++] = 0x80;
+ if (pos > 56)
+ {
+ memset(m + pos, 0, (size_t) (64 - pos));
+ sha256transfunc(ctx, m, 1);
+ pos = 0;
+ }
+ memset(m + pos, 0, (size_t) (56 - pos));
+ mlen = bswap_64((uint_64t) ctx->count[1]);
+ memcpy(m + (64 - 8), &mlen, 64 / 8);
+ sha256transfunc(ctx, m, 1);
+ for (i = 0; i < 8; i++)
+ {
+ ctx->hash[i] = bswap_32(ctx->hash[i]);
+ }
+ memcpy(result, ctx->hash, 32);
+}
- if(sha2_begin(size, cx) == EXIT_SUCCESS)
- {
- sha2_hash(data, len, cx); sha2_end(hval, cx); return EXIT_SUCCESS;
- }
- else
- return EXIT_FAILURE;
+void sha256_hash(const unsigned char * data, uint_32t len, sha256_ctx *ctx)
+{
+ uint_32t pos = ctx->count[0];
+ uint_32t total = ctx->count[1];
+ uint_8t* m = (uint_8t*) ctx->wbuf;
+ if (pos && pos + len >= 64)
+ {
+ memcpy(m + pos, data, 64 - pos);
+ sha256transfunc(ctx, m, 1);
+ len -= 64 - pos;
+ total += (64 - pos) * 8;
+ data += 64 - pos;
+ pos = 0;
+ }
+ if (len >= 64)
+ {
+ uint_32t blocks = len / 64;
+ uint_32t bytes = blocks * 64;
+ sha256transfunc(ctx, (void*)data, blocks);
+ len -= bytes;
+ total += (bytes)* 8;
+ data += bytes;
+ }
+ memcpy(m+pos, data, len);
+ pos += len;
+ total += len * 8;
+ ctx->count[0] = pos;
+ ctx->count[1] = total;
}
-#endif
+void sha256(unsigned char * result, const unsigned char* source, uint_32t sourceLen)
+{
+ sha256_ctx ctx;
-#if defined(__cplusplus)
+ sha256_begin(&ctx);
+ sha256_hash(source, sourceLen, &ctx);
+ sha256_end(result, &ctx);
}
-#endif
diff --git a/src/Crypto/Sha2.h b/src/Crypto/Sha2.h
index 6d0aeb0..37625ce 100644
--- a/src/Crypto/Sha2.h
+++ b/src/Crypto/Sha2.h
@@ -1,155 +1,60 @@
/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software is allowed (with or without
- changes) provided that:
-
- 1. source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- 2. binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation;
-
- 3. the name of the copyright holder is not used to endorse products
- built using this software without specific written permission.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 01/08/2005
-*/
+ * 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.
+ */
#ifndef _SHA2_H
#define _SHA2_H
#include "Common/Tcdefs.h"
#include "Common/Endian.h"
-
-#define SHA_64BIT
-
-/* define the hash functions that you need */
-#define SHA_2 /* for dynamic hash length */
-#define SHA_224
-#define SHA_256
-#ifdef SHA_64BIT
-# define SHA_384
-# define SHA_512
-# define NEED_UINT_64T
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-#endif
-
-#define li_64(h) 0x##h##ull
-
-#define VOID_RETURN void
-#define INT_RETURN int
+#include "Crypto/config.h"
#if defined(__cplusplus)
-extern "C"
-{
+extern "C" {
#endif
-/* Note that the following function prototypes are the same */
-/* for both the bit and byte oriented implementations. But */
-/* the length fields are in bytes or bits as is appropriate */
-/* for the version used. Bit sequences are arrays of bytes */
-/* in which bit sequence indexes increase from the most to */
-/* the least significant end of each byte */
-
-#define SHA224_DIGEST_SIZE 28
-#define SHA224_BLOCK_SIZE 64
#define SHA256_DIGEST_SIZE 32
#define SHA256_BLOCK_SIZE 64
-/* type to hold the SHA256 (and SHA224) context */
-
-typedef struct
-{ uint_32t count[2];
- uint_32t hash[8];
- uint_32t wbuf[16];
-} sha256_ctx;
-
-typedef sha256_ctx sha224_ctx;
-
-VOID_RETURN sha256_compile(sha256_ctx ctx[1]);
-
-VOID_RETURN sha224_begin(sha224_ctx ctx[1]);
-#define sha224_hash sha256_hash
-VOID_RETURN sha224_end(unsigned char hval[], sha224_ctx ctx[1]);
-VOID_RETURN sha224(unsigned char hval[], const unsigned char data[], unsigned long len);
-
-VOID_RETURN sha256_begin(sha256_ctx ctx[1]);
-VOID_RETURN sha256_hash(const unsigned char data[], unsigned long len, sha256_ctx ctx[1]);
-VOID_RETURN sha256_end(unsigned char hval[], sha256_ctx ctx[1]);
-VOID_RETURN sha256(unsigned char hval[], const unsigned char data[], unsigned long len);
-
-#ifndef SHA_64BIT
-
-typedef struct
-{ union
- { sha256_ctx ctx256[1];
- } uu[1];
- uint_32t sha2_len;
-} sha2_ctx;
-
-#define SHA2_MAX_DIGEST_SIZE SHA256_DIGEST_SIZE
-
-#else
-
-#define SHA384_DIGEST_SIZE 48
-#define SHA384_BLOCK_SIZE 128
#define SHA512_DIGEST_SIZE 64
#define SHA512_BLOCK_SIZE 128
-#define SHA2_MAX_DIGEST_SIZE SHA512_DIGEST_SIZE
-/* type to hold the SHA384 (and SHA512) context */
+#if CRYPTOPP_BOOL_X64
+#define SHA2_ALIGN CRYPTOPP_ALIGN_DATA(32)
+#else
+#define SHA2_ALIGN CRYPTOPP_ALIGN_DATA(16)
+#endif
typedef struct
{ uint_64t count[2];
- uint_64t hash[8];
- uint_64t wbuf[16];
+ SHA2_ALIGN uint_64t hash[8];
+ SHA2_ALIGN uint_64t wbuf[16];
} sha512_ctx;
-typedef sha512_ctx sha384_ctx;
-
typedef struct
-{ union
- { sha256_ctx ctx256[1];
- sha512_ctx ctx512[1];
- } uu[1];
- uint_32t sha2_len;
-} sha2_ctx;
-
-VOID_RETURN sha512_compile(sha512_ctx ctx[1]);
-
-VOID_RETURN sha384_begin(sha384_ctx ctx[1]);
-#define sha384_hash sha512_hash
-VOID_RETURN sha384_end(unsigned char hval[], sha384_ctx ctx[1]);
-VOID_RETURN sha384(unsigned char hval[], const unsigned char data[], unsigned long len);
+{ uint_32t count[2];
+ SHA2_ALIGN uint_32t hash[8];
+ SHA2_ALIGN uint_32t wbuf[16];
+} sha256_ctx;
-VOID_RETURN sha512_begin(sha512_ctx ctx[1]);
-VOID_RETURN sha512_hash(const unsigned char data[], unsigned long len, sha512_ctx ctx[1]);
-VOID_RETURN sha512_end(unsigned char hval[], sha512_ctx ctx[1]);
-VOID_RETURN sha512(unsigned char hval[], const unsigned char data[], unsigned long len);
-INT_RETURN sha2_begin(unsigned long size, sha2_ctx ctx[1]);
-VOID_RETURN sha2_hash(const unsigned char data[], unsigned long len, sha2_ctx ctx[1]);
-VOID_RETURN sha2_end(unsigned char hval[], sha2_ctx ctx[1]);
-INT_RETURN sha2(unsigned char hval[], unsigned long size, const unsigned char data[], unsigned long len);
+void sha512_begin(sha512_ctx* ctx);
+void sha512_hash(const unsigned char * source, uint_64t sourceLen, sha512_ctx *ctx);
+void sha512_end(unsigned char * result, sha512_ctx* ctx);
+void sha512(unsigned char * result, const unsigned char* source, uint_64t sourceLen);
-#endif
+void sha256_begin(sha256_ctx* ctx);
+void sha256_hash(const unsigned char * source, uint_32t sourceLen, sha256_ctx *ctx);
+void sha256_end(unsigned char * result, sha256_ctx* ctx);
+void sha256(unsigned char * result, const unsigned char* source, uint_32t sourceLen);
#if defined(__cplusplus)
}
#endif
+
+
#endif
diff --git a/src/Crypto/Sources b/src/Crypto/Sources
index 07e66b7..a93f953 100644
--- a/src/Crypto/Sources
+++ b/src/Crypto/Sources
@@ -6,7 +6,18 @@ INCLUDES = ..
NTTARGETFILES = \
"$(OBJ_PATH)\$(O)\Aes_$(TC_ARCH).obj" \
"$(OBJ_PATH)\$(O)\Aes_hw_cpu.obj" \
- "$(OBJ_PATH)\$(O)\gost89_$(TC_ARCH).obj"
+ "$(OBJ_PATH)\$(O)\gost89_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\Twofish_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\Camellia_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\Camellia_aesni_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\sha256-$(TC_ARCH)-nayuki.obj" \
+ "$(OBJ_PATH)\$(O)\sha512-$(TC_ARCH)-nayuki.obj" \
+ "$(OBJ_PATH)\$(O)\sha512_avx1_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\sha512_avx2_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\sha512_sse4_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\sha256_avx1_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\sha256_avx2_$(TC_ARCH).obj" \
+ "$(OBJ_PATH)\$(O)\sha256_sse4_$(TC_ARCH).obj"
SOURCES = \
Aes_$(TC_ARCH).asm \
@@ -20,8 +31,19 @@ SOURCES = \
SerpentFast_simd.cpp \
Sha2.c \
Twofish.c \
+ Twofish_$(TC_ARCH).S \
GostCipher.c \
Streebog.c \
kuznyechik.c \
Whirlpool.c \
- Camellia.c
+ Camellia.c \
+ Camellia_$(TC_ARCH).S \
+ Camellia_aesni_$(TC_ARCH).S \
+ sha256-$(TC_ARCH)-nayuki.S \
+ sha512-$(TC_ARCH)-nayuki.S \
+ sha512_avx1_$(TC_ARCH).asm \
+ sha512_avx2_$(TC_ARCH).asm \
+ sha512_sse4_$(TC_ARCH).asm \
+ sha256_avx1_$(TC_ARCH).asm \
+ sha256_avx2_$(TC_ARCH).asm \
+ sha256_sse4_$(TC_ARCH).asm
diff --git a/src/Crypto/Twofish.c b/src/Crypto/Twofish.c
index a04f36e..8ab5908 100644
--- a/src/Crypto/Twofish.c
+++ b/src/Crypto/Twofish.c
@@ -44,354 +44,608 @@
#include "misc.h"
-/* Implementation based on ideas from Botan library
- (C) 1999-2007 Jack Lloyd
+/* C implementation based on code written by kerukuro for cppcrypto library
+ (http://cppcrypto.sourceforge.net/) and released into public domain.
+ With ideas from Botan library (C) 1999-2007 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
*/
-#define get_byte(i,n) (byte) (n >> (((~i)&3) << 3))
-
-static const byte Q0[256] = {
- 0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76, 0x9A, 0x92, 0x80, 0x78,
- 0xE4, 0xDD, 0xD1, 0x38, 0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C,
- 0x43, 0x75, 0x37, 0x26, 0xFA, 0x13, 0x94, 0x48, 0xF2, 0xD0, 0x8B, 0x30,
- 0x84, 0x54, 0xDF, 0x23, 0x19, 0x5B, 0x3D, 0x59, 0xF3, 0xAE, 0xA2, 0x82,
- 0x63, 0x01, 0x83, 0x2E, 0xD9, 0x51, 0x9B, 0x7C, 0xA6, 0xEB, 0xA5, 0xBE,
- 0x16, 0x0C, 0xE3, 0x61, 0xC0, 0x8C, 0x3A, 0xF5, 0x73, 0x2C, 0x25, 0x0B,
- 0xBB, 0x4E, 0x89, 0x6B, 0x53, 0x6A, 0xB4, 0xF1, 0xE1, 0xE6, 0xBD, 0x45,
- 0xE2, 0xF4, 0xB6, 0x66, 0xCC, 0x95, 0x03, 0x56, 0xD4, 0x1C, 0x1E, 0xD7,
- 0xFB, 0xC3, 0x8E, 0xB5, 0xE9, 0xCF, 0xBF, 0xBA, 0xEA, 0x77, 0x39, 0xAF,
- 0x33, 0xC9, 0x62, 0x71, 0x81, 0x79, 0x09, 0xAD, 0x24, 0xCD, 0xF9, 0xD8,
- 0xE5, 0xC5, 0xB9, 0x4D, 0x44, 0x08, 0x86, 0xE7, 0xA1, 0x1D, 0xAA, 0xED,
- 0x06, 0x70, 0xB2, 0xD2, 0x41, 0x7B, 0xA0, 0x11, 0x31, 0xC2, 0x27, 0x90,
- 0x20, 0xF6, 0x60, 0xFF, 0x96, 0x5C, 0xB1, 0xAB, 0x9E, 0x9C, 0x52, 0x1B,
- 0x5F, 0x93, 0x0A, 0xEF, 0x91, 0x85, 0x49, 0xEE, 0x2D, 0x4F, 0x8F, 0x3B,
- 0x47, 0x87, 0x6D, 0x46, 0xD6, 0x3E, 0x69, 0x64, 0x2A, 0xCE, 0xCB, 0x2F,
- 0xFC, 0x97, 0x05, 0x7A, 0xAC, 0x7F, 0xD5, 0x1A, 0x4B, 0x0E, 0xA7, 0x5A,
- 0x28, 0x14, 0x3F, 0x29, 0x88, 0x3C, 0x4C, 0x02, 0xB8, 0xDA, 0xB0, 0x17,
- 0x55, 0x1F, 0x8A, 0x7D, 0x57, 0xC7, 0x8D, 0x74, 0xB7, 0xC4, 0x9F, 0x72,
- 0x7E, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34, 0x6E, 0x50, 0xDE, 0x68,
- 0x65, 0xBC, 0xDB, 0xF8, 0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4,
- 0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00, 0x6F, 0x9D, 0x36, 0x42,
- 0x4A, 0x5E, 0xC1, 0xE0 };
-
-static const byte Q1[256] = {
- 0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8, 0x4A, 0xD3, 0xE6, 0x6B,
- 0x45, 0x7D, 0xE8, 0x4B, 0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1,
- 0x30, 0x0F, 0xF8, 0x1B, 0x87, 0xFA, 0x06, 0x3F, 0x5E, 0xBA, 0xAE, 0x5B,
- 0x8A, 0x00, 0xBC, 0x9D, 0x6D, 0xC1, 0xB1, 0x0E, 0x80, 0x5D, 0xD2, 0xD5,
- 0xA0, 0x84, 0x07, 0x14, 0xB5, 0x90, 0x2C, 0xA3, 0xB2, 0x73, 0x4C, 0x54,
- 0x92, 0x74, 0x36, 0x51, 0x38, 0xB0, 0xBD, 0x5A, 0xFC, 0x60, 0x62, 0x96,
- 0x6C, 0x42, 0xF7, 0x10, 0x7C, 0x28, 0x27, 0x8C, 0x13, 0x95, 0x9C, 0xC7,
- 0x24, 0x46, 0x3B, 0x70, 0xCA, 0xE3, 0x85, 0xCB, 0x11, 0xD0, 0x93, 0xB8,
- 0xA6, 0x83, 0x20, 0xFF, 0x9F, 0x77, 0xC3, 0xCC, 0x03, 0x6F, 0x08, 0xBF,
- 0x40, 0xE7, 0x2B, 0xE2, 0x79, 0x0C, 0xAA, 0x82, 0x41, 0x3A, 0xEA, 0xB9,
- 0xE4, 0x9A, 0xA4, 0x97, 0x7E, 0xDA, 0x7A, 0x17, 0x66, 0x94, 0xA1, 0x1D,
- 0x3D, 0xF0, 0xDE, 0xB3, 0x0B, 0x72, 0xA7, 0x1C, 0xEF, 0xD1, 0x53, 0x3E,
- 0x8F, 0x33, 0x26, 0x5F, 0xEC, 0x76, 0x2A, 0x49, 0x81, 0x88, 0xEE, 0x21,
- 0xC4, 0x1A, 0xEB, 0xD9, 0xC5, 0x39, 0x99, 0xCD, 0xAD, 0x31, 0x8B, 0x01,
- 0x18, 0x23, 0xDD, 0x1F, 0x4E, 0x2D, 0xF9, 0x48, 0x4F, 0xF2, 0x65, 0x8E,
- 0x78, 0x5C, 0x58, 0x19, 0x8D, 0xE5, 0x98, 0x57, 0x67, 0x7F, 0x05, 0x64,
- 0xAF, 0x63, 0xB6, 0xFE, 0xF5, 0xB7, 0x3C, 0xA5, 0xCE, 0xE9, 0x68, 0x44,
- 0xE0, 0x4D, 0x43, 0x69, 0x29, 0x2E, 0xAC, 0x15, 0x59, 0xA8, 0x0A, 0x9E,
- 0x6E, 0x47, 0xDF, 0x34, 0x35, 0x6A, 0xCF, 0xDC, 0x22, 0xC9, 0xC0, 0x9B,
- 0x89, 0xD4, 0xED, 0xAB, 0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9,
- 0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2, 0x16, 0x25, 0x86, 0x56,
- 0x55, 0x09, 0xBE, 0x91 };
-
-static const byte RS[32] = {
- 0x01, 0xA4, 0x02, 0xA4, 0xA4, 0x56, 0xA1, 0x55, 0x55, 0x82, 0xFC, 0x87,
- 0x87, 0xF3, 0xC1, 0x5A, 0x5A, 0x1E, 0x47, 0x58, 0x58, 0xC6, 0xAE, 0xDB,
- 0xDB, 0x68, 0x3D, 0x9E, 0x9E, 0xE5, 0x19, 0x03 };
-
-static const byte EXP_TO_POLY[255] = {
- 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x4D, 0x9A, 0x79, 0xF2,
- 0xA9, 0x1F, 0x3E, 0x7C, 0xF8, 0xBD, 0x37, 0x6E, 0xDC, 0xF5, 0xA7, 0x03,
- 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xCD, 0xD7, 0xE3, 0x8B, 0x5B, 0xB6,
- 0x21, 0x42, 0x84, 0x45, 0x8A, 0x59, 0xB2, 0x29, 0x52, 0xA4, 0x05, 0x0A,
- 0x14, 0x28, 0x50, 0xA0, 0x0D, 0x1A, 0x34, 0x68, 0xD0, 0xED, 0x97, 0x63,
- 0xC6, 0xC1, 0xCF, 0xD3, 0xEB, 0x9B, 0x7B, 0xF6, 0xA1, 0x0F, 0x1E, 0x3C,
- 0x78, 0xF0, 0xAD, 0x17, 0x2E, 0x5C, 0xB8, 0x3D, 0x7A, 0xF4, 0xA5, 0x07,
- 0x0E, 0x1C, 0x38, 0x70, 0xE0, 0x8D, 0x57, 0xAE, 0x11, 0x22, 0x44, 0x88,
- 0x5D, 0xBA, 0x39, 0x72, 0xE4, 0x85, 0x47, 0x8E, 0x51, 0xA2, 0x09, 0x12,
- 0x24, 0x48, 0x90, 0x6D, 0xDA, 0xF9, 0xBF, 0x33, 0x66, 0xCC, 0xD5, 0xE7,
- 0x83, 0x4B, 0x96, 0x61, 0xC2, 0xC9, 0xDF, 0xF3, 0xAB, 0x1B, 0x36, 0x6C,
- 0xD8, 0xFD, 0xB7, 0x23, 0x46, 0x8C, 0x55, 0xAA, 0x19, 0x32, 0x64, 0xC8,
- 0xDD, 0xF7, 0xA3, 0x0B, 0x16, 0x2C, 0x58, 0xB0, 0x2D, 0x5A, 0xB4, 0x25,
- 0x4A, 0x94, 0x65, 0xCA, 0xD9, 0xFF, 0xB3, 0x2B, 0x56, 0xAC, 0x15, 0x2A,
- 0x54, 0xA8, 0x1D, 0x3A, 0x74, 0xE8, 0x9D, 0x77, 0xEE, 0x91, 0x6F, 0xDE,
- 0xF1, 0xAF, 0x13, 0x26, 0x4C, 0x98, 0x7D, 0xFA, 0xB9, 0x3F, 0x7E, 0xFC,
- 0xB5, 0x27, 0x4E, 0x9C, 0x75, 0xEA, 0x99, 0x7F, 0xFE, 0xB1, 0x2F, 0x5E,
- 0xBC, 0x35, 0x6A, 0xD4, 0xE5, 0x87, 0x43, 0x86, 0x41, 0x82, 0x49, 0x92,
- 0x69, 0xD2, 0xE9, 0x9F, 0x73, 0xE6, 0x81, 0x4F, 0x9E, 0x71, 0xE2, 0x89,
- 0x5F, 0xBE, 0x31, 0x62, 0xC4, 0xC5, 0xC7, 0xC3, 0xCB, 0xDB, 0xFB, 0xBB,
- 0x3B, 0x76, 0xEC, 0x95, 0x67, 0xCE, 0xD1, 0xEF, 0x93, 0x6B, 0xD6, 0xE1,
- 0x8F, 0x53, 0xA6 };
-
-static const byte POLY_TO_EXP[255] = {
- 0x00, 0x01, 0x17, 0x02, 0x2E, 0x18, 0x53, 0x03, 0x6A, 0x2F, 0x93, 0x19,
- 0x34, 0x54, 0x45, 0x04, 0x5C, 0x6B, 0xB6, 0x30, 0xA6, 0x94, 0x4B, 0x1A,
- 0x8C, 0x35, 0x81, 0x55, 0xAA, 0x46, 0x0D, 0x05, 0x24, 0x5D, 0x87, 0x6C,
- 0x9B, 0xB7, 0xC1, 0x31, 0x2B, 0xA7, 0xA3, 0x95, 0x98, 0x4C, 0xCA, 0x1B,
- 0xE6, 0x8D, 0x73, 0x36, 0xCD, 0x82, 0x12, 0x56, 0x62, 0xAB, 0xF0, 0x47,
- 0x4F, 0x0E, 0xBD, 0x06, 0xD4, 0x25, 0xD2, 0x5E, 0x27, 0x88, 0x66, 0x6D,
- 0xD6, 0x9C, 0x79, 0xB8, 0x08, 0xC2, 0xDF, 0x32, 0x68, 0x2C, 0xFD, 0xA8,
- 0x8A, 0xA4, 0x5A, 0x96, 0x29, 0x99, 0x22, 0x4D, 0x60, 0xCB, 0xE4, 0x1C,
- 0x7B, 0xE7, 0x3B, 0x8E, 0x9E, 0x74, 0xF4, 0x37, 0xD8, 0xCE, 0xF9, 0x83,
- 0x6F, 0x13, 0xB2, 0x57, 0xE1, 0x63, 0xDC, 0xAC, 0xC4, 0xF1, 0xAF, 0x48,
- 0x0A, 0x50, 0x42, 0x0F, 0xBA, 0xBE, 0xC7, 0x07, 0xDE, 0xD5, 0x78, 0x26,
- 0x65, 0xD3, 0xD1, 0x5F, 0xE3, 0x28, 0x21, 0x89, 0x59, 0x67, 0xFC, 0x6E,
- 0xB1, 0xD7, 0xF8, 0x9D, 0xF3, 0x7A, 0x3A, 0xB9, 0xC6, 0x09, 0x41, 0xC3,
- 0xAE, 0xE0, 0xDB, 0x33, 0x44, 0x69, 0x92, 0x2D, 0x52, 0xFE, 0x16, 0xA9,
- 0x0C, 0x8B, 0x80, 0xA5, 0x4A, 0x5B, 0xB5, 0x97, 0xC9, 0x2A, 0xA2, 0x9A,
- 0xC0, 0x23, 0x86, 0x4E, 0xBC, 0x61, 0xEF, 0xCC, 0x11, 0xE5, 0x72, 0x1D,
- 0x3D, 0x7C, 0xEB, 0xE8, 0xE9, 0x3C, 0xEA, 0x8F, 0x7D, 0x9F, 0xEC, 0x75,
- 0x1E, 0xF5, 0x3E, 0x38, 0xF6, 0xD9, 0x3F, 0xCF, 0x76, 0xFA, 0x1F, 0x84,
- 0xA0, 0x70, 0xED, 0x14, 0x90, 0xB3, 0x7E, 0x58, 0xFB, 0xE2, 0x20, 0x64,
- 0xD0, 0xDD, 0x77, 0xAD, 0xDA, 0xC5, 0x40, 0xF2, 0x39, 0xB0, 0xF7, 0x49,
- 0xB4, 0x0B, 0x7F, 0x51, 0x15, 0x43, 0x91, 0x10, 0x71, 0xBB, 0xEE, 0xBF,
- 0x85, 0xC8, 0xA1 };
-
-static const uint32 MDS0[256] = {
- 0xBCBC3275, 0xECEC21F3, 0x202043C6, 0xB3B3C9F4, 0xDADA03DB, 0x02028B7B,
- 0xE2E22BFB, 0x9E9EFAC8, 0xC9C9EC4A, 0xD4D409D3, 0x18186BE6, 0x1E1E9F6B,
- 0x98980E45, 0xB2B2387D, 0xA6A6D2E8, 0x2626B74B, 0x3C3C57D6, 0x93938A32,
- 0x8282EED8, 0x525298FD, 0x7B7BD437, 0xBBBB3771, 0x5B5B97F1, 0x474783E1,
- 0x24243C30, 0x5151E20F, 0xBABAC6F8, 0x4A4AF31B, 0xBFBF4887, 0x0D0D70FA,
- 0xB0B0B306, 0x7575DE3F, 0xD2D2FD5E, 0x7D7D20BA, 0x666631AE, 0x3A3AA35B,
- 0x59591C8A, 0x00000000, 0xCDCD93BC, 0x1A1AE09D, 0xAEAE2C6D, 0x7F7FABC1,
- 0x2B2BC7B1, 0xBEBEB90E, 0xE0E0A080, 0x8A8A105D, 0x3B3B52D2, 0x6464BAD5,
- 0xD8D888A0, 0xE7E7A584, 0x5F5FE807, 0x1B1B1114, 0x2C2CC2B5, 0xFCFCB490,
- 0x3131272C, 0x808065A3, 0x73732AB2, 0x0C0C8173, 0x79795F4C, 0x6B6B4154,
- 0x4B4B0292, 0x53536974, 0x94948F36, 0x83831F51, 0x2A2A3638, 0xC4C49CB0,
- 0x2222C8BD, 0xD5D5F85A, 0xBDBDC3FC, 0x48487860, 0xFFFFCE62, 0x4C4C0796,
- 0x4141776C, 0xC7C7E642, 0xEBEB24F7, 0x1C1C1410, 0x5D5D637C, 0x36362228,
- 0x6767C027, 0xE9E9AF8C, 0x4444F913, 0x1414EA95, 0xF5F5BB9C, 0xCFCF18C7,
- 0x3F3F2D24, 0xC0C0E346, 0x7272DB3B, 0x54546C70, 0x29294CCA, 0xF0F035E3,
- 0x0808FE85, 0xC6C617CB, 0xF3F34F11, 0x8C8CE4D0, 0xA4A45993, 0xCACA96B8,
- 0x68683BA6, 0xB8B84D83, 0x38382820, 0xE5E52EFF, 0xADAD569F, 0x0B0B8477,
- 0xC8C81DC3, 0x9999FFCC, 0x5858ED03, 0x19199A6F, 0x0E0E0A08, 0x95957EBF,
- 0x70705040, 0xF7F730E7, 0x6E6ECF2B, 0x1F1F6EE2, 0xB5B53D79, 0x09090F0C,
- 0x616134AA, 0x57571682, 0x9F9F0B41, 0x9D9D803A, 0x111164EA, 0x2525CDB9,
- 0xAFAFDDE4, 0x4545089A, 0xDFDF8DA4, 0xA3A35C97, 0xEAEAD57E, 0x353558DA,
- 0xEDEDD07A, 0x4343FC17, 0xF8F8CB66, 0xFBFBB194, 0x3737D3A1, 0xFAFA401D,
- 0xC2C2683D, 0xB4B4CCF0, 0x32325DDE, 0x9C9C71B3, 0x5656E70B, 0xE3E3DA72,
- 0x878760A7, 0x15151B1C, 0xF9F93AEF, 0x6363BFD1, 0x3434A953, 0x9A9A853E,
- 0xB1B1428F, 0x7C7CD133, 0x88889B26, 0x3D3DA65F, 0xA1A1D7EC, 0xE4E4DF76,
- 0x8181942A, 0x91910149, 0x0F0FFB81, 0xEEEEAA88, 0x161661EE, 0xD7D77321,
- 0x9797F5C4, 0xA5A5A81A, 0xFEFE3FEB, 0x6D6DB5D9, 0x7878AEC5, 0xC5C56D39,
- 0x1D1DE599, 0x7676A4CD, 0x3E3EDCAD, 0xCBCB6731, 0xB6B6478B, 0xEFEF5B01,
- 0x12121E18, 0x6060C523, 0x6A6AB0DD, 0x4D4DF61F, 0xCECEE94E, 0xDEDE7C2D,
- 0x55559DF9, 0x7E7E5A48, 0x2121B24F, 0x03037AF2, 0xA0A02665, 0x5E5E198E,
- 0x5A5A6678, 0x65654B5C, 0x62624E58, 0xFDFD4519, 0x0606F48D, 0x404086E5,
- 0xF2F2BE98, 0x3333AC57, 0x17179067, 0x05058E7F, 0xE8E85E05, 0x4F4F7D64,
- 0x89896AAF, 0x10109563, 0x74742FB6, 0x0A0A75FE, 0x5C5C92F5, 0x9B9B74B7,
- 0x2D2D333C, 0x3030D6A5, 0x2E2E49CE, 0x494989E9, 0x46467268, 0x77775544,
- 0xA8A8D8E0, 0x9696044D, 0x2828BD43, 0xA9A92969, 0xD9D97929, 0x8686912E,
- 0xD1D187AC, 0xF4F44A15, 0x8D8D1559, 0xD6D682A8, 0xB9B9BC0A, 0x42420D9E,
- 0xF6F6C16E, 0x2F2FB847, 0xDDDD06DF, 0x23233934, 0xCCCC6235, 0xF1F1C46A,
- 0xC1C112CF, 0x8585EBDC, 0x8F8F9E22, 0x7171A1C9, 0x9090F0C0, 0xAAAA539B,
- 0x0101F189, 0x8B8BE1D4, 0x4E4E8CED, 0x8E8E6FAB, 0xABABA212, 0x6F6F3EA2,
- 0xE6E6540D, 0xDBDBF252, 0x92927BBB, 0xB7B7B602, 0x6969CA2F, 0x3939D9A9,
- 0xD3D30CD7, 0xA7A72361, 0xA2A2AD1E, 0xC3C399B4, 0x6C6C4450, 0x07070504,
- 0x04047FF6, 0x272746C2, 0xACACA716, 0xD0D07625, 0x50501386, 0xDCDCF756,
- 0x84841A55, 0xE1E15109, 0x7A7A25BE, 0x1313EF91 };
-
-static const uint32 MDS1[256] = {
- 0xA9D93939, 0x67901717, 0xB3719C9C, 0xE8D2A6A6, 0x04050707, 0xFD985252,
- 0xA3658080, 0x76DFE4E4, 0x9A084545, 0x92024B4B, 0x80A0E0E0, 0x78665A5A,
- 0xE4DDAFAF, 0xDDB06A6A, 0xD1BF6363, 0x38362A2A, 0x0D54E6E6, 0xC6432020,
- 0x3562CCCC, 0x98BEF2F2, 0x181E1212, 0xF724EBEB, 0xECD7A1A1, 0x6C774141,
- 0x43BD2828, 0x7532BCBC, 0x37D47B7B, 0x269B8888, 0xFA700D0D, 0x13F94444,
- 0x94B1FBFB, 0x485A7E7E, 0xF27A0303, 0xD0E48C8C, 0x8B47B6B6, 0x303C2424,
- 0x84A5E7E7, 0x54416B6B, 0xDF06DDDD, 0x23C56060, 0x1945FDFD, 0x5BA33A3A,
- 0x3D68C2C2, 0x59158D8D, 0xF321ECEC, 0xAE316666, 0xA23E6F6F, 0x82165757,
- 0x63951010, 0x015BEFEF, 0x834DB8B8, 0x2E918686, 0xD9B56D6D, 0x511F8383,
- 0x9B53AAAA, 0x7C635D5D, 0xA63B6868, 0xEB3FFEFE, 0xA5D63030, 0xBE257A7A,
- 0x16A7ACAC, 0x0C0F0909, 0xE335F0F0, 0x6123A7A7, 0xC0F09090, 0x8CAFE9E9,
- 0x3A809D9D, 0xF5925C5C, 0x73810C0C, 0x2C273131, 0x2576D0D0, 0x0BE75656,
- 0xBB7B9292, 0x4EE9CECE, 0x89F10101, 0x6B9F1E1E, 0x53A93434, 0x6AC4F1F1,
- 0xB499C3C3, 0xF1975B5B, 0xE1834747, 0xE66B1818, 0xBDC82222, 0x450E9898,
- 0xE26E1F1F, 0xF4C9B3B3, 0xB62F7474, 0x66CBF8F8, 0xCCFF9999, 0x95EA1414,
- 0x03ED5858, 0x56F7DCDC, 0xD4E18B8B, 0x1C1B1515, 0x1EADA2A2, 0xD70CD3D3,
- 0xFB2BE2E2, 0xC31DC8C8, 0x8E195E5E, 0xB5C22C2C, 0xE9894949, 0xCF12C1C1,
- 0xBF7E9595, 0xBA207D7D, 0xEA641111, 0x77840B0B, 0x396DC5C5, 0xAF6A8989,
- 0x33D17C7C, 0xC9A17171, 0x62CEFFFF, 0x7137BBBB, 0x81FB0F0F, 0x793DB5B5,
- 0x0951E1E1, 0xADDC3E3E, 0x242D3F3F, 0xCDA47676, 0xF99D5555, 0xD8EE8282,
- 0xE5864040, 0xC5AE7878, 0xB9CD2525, 0x4D049696, 0x44557777, 0x080A0E0E,
- 0x86135050, 0xE730F7F7, 0xA1D33737, 0x1D40FAFA, 0xAA346161, 0xED8C4E4E,
- 0x06B3B0B0, 0x706C5454, 0xB22A7373, 0xD2523B3B, 0x410B9F9F, 0x7B8B0202,
- 0xA088D8D8, 0x114FF3F3, 0x3167CBCB, 0xC2462727, 0x27C06767, 0x90B4FCFC,
- 0x20283838, 0xF67F0404, 0x60784848, 0xFF2EE5E5, 0x96074C4C, 0x5C4B6565,
- 0xB1C72B2B, 0xAB6F8E8E, 0x9E0D4242, 0x9CBBF5F5, 0x52F2DBDB, 0x1BF34A4A,
- 0x5FA63D3D, 0x9359A4A4, 0x0ABCB9B9, 0xEF3AF9F9, 0x91EF1313, 0x85FE0808,
- 0x49019191, 0xEE611616, 0x2D7CDEDE, 0x4FB22121, 0x8F42B1B1, 0x3BDB7272,
- 0x47B82F2F, 0x8748BFBF, 0x6D2CAEAE, 0x46E3C0C0, 0xD6573C3C, 0x3E859A9A,
- 0x6929A9A9, 0x647D4F4F, 0x2A948181, 0xCE492E2E, 0xCB17C6C6, 0x2FCA6969,
- 0xFCC3BDBD, 0x975CA3A3, 0x055EE8E8, 0x7AD0EDED, 0xAC87D1D1, 0x7F8E0505,
- 0xD5BA6464, 0x1AA8A5A5, 0x4BB72626, 0x0EB9BEBE, 0xA7608787, 0x5AF8D5D5,
- 0x28223636, 0x14111B1B, 0x3FDE7575, 0x2979D9D9, 0x88AAEEEE, 0x3C332D2D,
- 0x4C5F7979, 0x02B6B7B7, 0xB896CACA, 0xDA583535, 0xB09CC4C4, 0x17FC4343,
- 0x551A8484, 0x1FF64D4D, 0x8A1C5959, 0x7D38B2B2, 0x57AC3333, 0xC718CFCF,
- 0x8DF40606, 0x74695353, 0xB7749B9B, 0xC4F59797, 0x9F56ADAD, 0x72DAE3E3,
- 0x7ED5EAEA, 0x154AF4F4, 0x229E8F8F, 0x12A2ABAB, 0x584E6262, 0x07E85F5F,
- 0x99E51D1D, 0x34392323, 0x6EC1F6F6, 0x50446C6C, 0xDE5D3232, 0x68724646,
- 0x6526A0A0, 0xBC93CDCD, 0xDB03DADA, 0xF8C6BABA, 0xC8FA9E9E, 0xA882D6D6,
- 0x2BCF6E6E, 0x40507070, 0xDCEB8585, 0xFE750A0A, 0x328A9393, 0xA48DDFDF,
- 0xCA4C2929, 0x10141C1C, 0x2173D7D7, 0xF0CCB4B4, 0xD309D4D4, 0x5D108A8A,
- 0x0FE25151, 0x00000000, 0x6F9A1919, 0x9DE01A1A, 0x368F9494, 0x42E6C7C7,
- 0x4AECC9C9, 0x5EFDD2D2, 0xC1AB7F7F, 0xE0D8A8A8 };
-
-static const uint32 MDS2[256] = {
- 0xBC75BC32, 0xECF3EC21, 0x20C62043, 0xB3F4B3C9, 0xDADBDA03, 0x027B028B,
- 0xE2FBE22B, 0x9EC89EFA, 0xC94AC9EC, 0xD4D3D409, 0x18E6186B, 0x1E6B1E9F,
- 0x9845980E, 0xB27DB238, 0xA6E8A6D2, 0x264B26B7, 0x3CD63C57, 0x9332938A,
- 0x82D882EE, 0x52FD5298, 0x7B377BD4, 0xBB71BB37, 0x5BF15B97, 0x47E14783,
- 0x2430243C, 0x510F51E2, 0xBAF8BAC6, 0x4A1B4AF3, 0xBF87BF48, 0x0DFA0D70,
- 0xB006B0B3, 0x753F75DE, 0xD25ED2FD, 0x7DBA7D20, 0x66AE6631, 0x3A5B3AA3,
- 0x598A591C, 0x00000000, 0xCDBCCD93, 0x1A9D1AE0, 0xAE6DAE2C, 0x7FC17FAB,
- 0x2BB12BC7, 0xBE0EBEB9, 0xE080E0A0, 0x8A5D8A10, 0x3BD23B52, 0x64D564BA,
- 0xD8A0D888, 0xE784E7A5, 0x5F075FE8, 0x1B141B11, 0x2CB52CC2, 0xFC90FCB4,
- 0x312C3127, 0x80A38065, 0x73B2732A, 0x0C730C81, 0x794C795F, 0x6B546B41,
- 0x4B924B02, 0x53745369, 0x9436948F, 0x8351831F, 0x2A382A36, 0xC4B0C49C,
- 0x22BD22C8, 0xD55AD5F8, 0xBDFCBDC3, 0x48604878, 0xFF62FFCE, 0x4C964C07,
- 0x416C4177, 0xC742C7E6, 0xEBF7EB24, 0x1C101C14, 0x5D7C5D63, 0x36283622,
- 0x672767C0, 0xE98CE9AF, 0x441344F9, 0x149514EA, 0xF59CF5BB, 0xCFC7CF18,
- 0x3F243F2D, 0xC046C0E3, 0x723B72DB, 0x5470546C, 0x29CA294C, 0xF0E3F035,
- 0x088508FE, 0xC6CBC617, 0xF311F34F, 0x8CD08CE4, 0xA493A459, 0xCAB8CA96,
- 0x68A6683B, 0xB883B84D, 0x38203828, 0xE5FFE52E, 0xAD9FAD56, 0x0B770B84,
- 0xC8C3C81D, 0x99CC99FF, 0x580358ED, 0x196F199A, 0x0E080E0A, 0x95BF957E,
- 0x70407050, 0xF7E7F730, 0x6E2B6ECF, 0x1FE21F6E, 0xB579B53D, 0x090C090F,
- 0x61AA6134, 0x57825716, 0x9F419F0B, 0x9D3A9D80, 0x11EA1164, 0x25B925CD,
- 0xAFE4AFDD, 0x459A4508, 0xDFA4DF8D, 0xA397A35C, 0xEA7EEAD5, 0x35DA3558,
- 0xED7AEDD0, 0x431743FC, 0xF866F8CB, 0xFB94FBB1, 0x37A137D3, 0xFA1DFA40,
- 0xC23DC268, 0xB4F0B4CC, 0x32DE325D, 0x9CB39C71, 0x560B56E7, 0xE372E3DA,
- 0x87A78760, 0x151C151B, 0xF9EFF93A, 0x63D163BF, 0x345334A9, 0x9A3E9A85,
- 0xB18FB142, 0x7C337CD1, 0x8826889B, 0x3D5F3DA6, 0xA1ECA1D7, 0xE476E4DF,
- 0x812A8194, 0x91499101, 0x0F810FFB, 0xEE88EEAA, 0x16EE1661, 0xD721D773,
- 0x97C497F5, 0xA51AA5A8, 0xFEEBFE3F, 0x6DD96DB5, 0x78C578AE, 0xC539C56D,
- 0x1D991DE5, 0x76CD76A4, 0x3EAD3EDC, 0xCB31CB67, 0xB68BB647, 0xEF01EF5B,
- 0x1218121E, 0x602360C5, 0x6ADD6AB0, 0x4D1F4DF6, 0xCE4ECEE9, 0xDE2DDE7C,
- 0x55F9559D, 0x7E487E5A, 0x214F21B2, 0x03F2037A, 0xA065A026, 0x5E8E5E19,
- 0x5A785A66, 0x655C654B, 0x6258624E, 0xFD19FD45, 0x068D06F4, 0x40E54086,
- 0xF298F2BE, 0x335733AC, 0x17671790, 0x057F058E, 0xE805E85E, 0x4F644F7D,
- 0x89AF896A, 0x10631095, 0x74B6742F, 0x0AFE0A75, 0x5CF55C92, 0x9BB79B74,
- 0x2D3C2D33, 0x30A530D6, 0x2ECE2E49, 0x49E94989, 0x46684672, 0x77447755,
- 0xA8E0A8D8, 0x964D9604, 0x284328BD, 0xA969A929, 0xD929D979, 0x862E8691,
- 0xD1ACD187, 0xF415F44A, 0x8D598D15, 0xD6A8D682, 0xB90AB9BC, 0x429E420D,
- 0xF66EF6C1, 0x2F472FB8, 0xDDDFDD06, 0x23342339, 0xCC35CC62, 0xF16AF1C4,
- 0xC1CFC112, 0x85DC85EB, 0x8F228F9E, 0x71C971A1, 0x90C090F0, 0xAA9BAA53,
- 0x018901F1, 0x8BD48BE1, 0x4EED4E8C, 0x8EAB8E6F, 0xAB12ABA2, 0x6FA26F3E,
- 0xE60DE654, 0xDB52DBF2, 0x92BB927B, 0xB702B7B6, 0x692F69CA, 0x39A939D9,
- 0xD3D7D30C, 0xA761A723, 0xA21EA2AD, 0xC3B4C399, 0x6C506C44, 0x07040705,
- 0x04F6047F, 0x27C22746, 0xAC16ACA7, 0xD025D076, 0x50865013, 0xDC56DCF7,
- 0x8455841A, 0xE109E151, 0x7ABE7A25, 0x139113EF };
-
-static const uint32 MDS3[256] = {
- 0xD939A9D9, 0x90176790, 0x719CB371, 0xD2A6E8D2, 0x05070405, 0x9852FD98,
- 0x6580A365, 0xDFE476DF, 0x08459A08, 0x024B9202, 0xA0E080A0, 0x665A7866,
- 0xDDAFE4DD, 0xB06ADDB0, 0xBF63D1BF, 0x362A3836, 0x54E60D54, 0x4320C643,
- 0x62CC3562, 0xBEF298BE, 0x1E12181E, 0x24EBF724, 0xD7A1ECD7, 0x77416C77,
- 0xBD2843BD, 0x32BC7532, 0xD47B37D4, 0x9B88269B, 0x700DFA70, 0xF94413F9,
- 0xB1FB94B1, 0x5A7E485A, 0x7A03F27A, 0xE48CD0E4, 0x47B68B47, 0x3C24303C,
- 0xA5E784A5, 0x416B5441, 0x06DDDF06, 0xC56023C5, 0x45FD1945, 0xA33A5BA3,
- 0x68C23D68, 0x158D5915, 0x21ECF321, 0x3166AE31, 0x3E6FA23E, 0x16578216,
- 0x95106395, 0x5BEF015B, 0x4DB8834D, 0x91862E91, 0xB56DD9B5, 0x1F83511F,
- 0x53AA9B53, 0x635D7C63, 0x3B68A63B, 0x3FFEEB3F, 0xD630A5D6, 0x257ABE25,
- 0xA7AC16A7, 0x0F090C0F, 0x35F0E335, 0x23A76123, 0xF090C0F0, 0xAFE98CAF,
- 0x809D3A80, 0x925CF592, 0x810C7381, 0x27312C27, 0x76D02576, 0xE7560BE7,
- 0x7B92BB7B, 0xE9CE4EE9, 0xF10189F1, 0x9F1E6B9F, 0xA93453A9, 0xC4F16AC4,
- 0x99C3B499, 0x975BF197, 0x8347E183, 0x6B18E66B, 0xC822BDC8, 0x0E98450E,
- 0x6E1FE26E, 0xC9B3F4C9, 0x2F74B62F, 0xCBF866CB, 0xFF99CCFF, 0xEA1495EA,
- 0xED5803ED, 0xF7DC56F7, 0xE18BD4E1, 0x1B151C1B, 0xADA21EAD, 0x0CD3D70C,
- 0x2BE2FB2B, 0x1DC8C31D, 0x195E8E19, 0xC22CB5C2, 0x8949E989, 0x12C1CF12,
- 0x7E95BF7E, 0x207DBA20, 0x6411EA64, 0x840B7784, 0x6DC5396D, 0x6A89AF6A,
- 0xD17C33D1, 0xA171C9A1, 0xCEFF62CE, 0x37BB7137, 0xFB0F81FB, 0x3DB5793D,
- 0x51E10951, 0xDC3EADDC, 0x2D3F242D, 0xA476CDA4, 0x9D55F99D, 0xEE82D8EE,
- 0x8640E586, 0xAE78C5AE, 0xCD25B9CD, 0x04964D04, 0x55774455, 0x0A0E080A,
- 0x13508613, 0x30F7E730, 0xD337A1D3, 0x40FA1D40, 0x3461AA34, 0x8C4EED8C,
- 0xB3B006B3, 0x6C54706C, 0x2A73B22A, 0x523BD252, 0x0B9F410B, 0x8B027B8B,
- 0x88D8A088, 0x4FF3114F, 0x67CB3167, 0x4627C246, 0xC06727C0, 0xB4FC90B4,
- 0x28382028, 0x7F04F67F, 0x78486078, 0x2EE5FF2E, 0x074C9607, 0x4B655C4B,
- 0xC72BB1C7, 0x6F8EAB6F, 0x0D429E0D, 0xBBF59CBB, 0xF2DB52F2, 0xF34A1BF3,
- 0xA63D5FA6, 0x59A49359, 0xBCB90ABC, 0x3AF9EF3A, 0xEF1391EF, 0xFE0885FE,
- 0x01914901, 0x6116EE61, 0x7CDE2D7C, 0xB2214FB2, 0x42B18F42, 0xDB723BDB,
- 0xB82F47B8, 0x48BF8748, 0x2CAE6D2C, 0xE3C046E3, 0x573CD657, 0x859A3E85,
- 0x29A96929, 0x7D4F647D, 0x94812A94, 0x492ECE49, 0x17C6CB17, 0xCA692FCA,
- 0xC3BDFCC3, 0x5CA3975C, 0x5EE8055E, 0xD0ED7AD0, 0x87D1AC87, 0x8E057F8E,
- 0xBA64D5BA, 0xA8A51AA8, 0xB7264BB7, 0xB9BE0EB9, 0x6087A760, 0xF8D55AF8,
- 0x22362822, 0x111B1411, 0xDE753FDE, 0x79D92979, 0xAAEE88AA, 0x332D3C33,
- 0x5F794C5F, 0xB6B702B6, 0x96CAB896, 0x5835DA58, 0x9CC4B09C, 0xFC4317FC,
- 0x1A84551A, 0xF64D1FF6, 0x1C598A1C, 0x38B27D38, 0xAC3357AC, 0x18CFC718,
- 0xF4068DF4, 0x69537469, 0x749BB774, 0xF597C4F5, 0x56AD9F56, 0xDAE372DA,
- 0xD5EA7ED5, 0x4AF4154A, 0x9E8F229E, 0xA2AB12A2, 0x4E62584E, 0xE85F07E8,
- 0xE51D99E5, 0x39233439, 0xC1F66EC1, 0x446C5044, 0x5D32DE5D, 0x72466872,
- 0x26A06526, 0x93CDBC93, 0x03DADB03, 0xC6BAF8C6, 0xFA9EC8FA, 0x82D6A882,
- 0xCF6E2BCF, 0x50704050, 0xEB85DCEB, 0x750AFE75, 0x8A93328A, 0x8DDFA48D,
- 0x4C29CA4C, 0x141C1014, 0x73D72173, 0xCCB4F0CC, 0x09D4D309, 0x108A5D10,
- 0xE2510FE2, 0x00000000, 0x9A196F9A, 0xE01A9DE0, 0x8F94368F, 0xE6C742E6,
- 0xECC94AEC, 0xFDD25EFD, 0xAB7FC1AB, 0xD8A8E0D8 };
+#if !defined (_MSC_VER) || defined(_M_X64)
+#define UNROLL_TWOFISH
+#endif
+#if CRYPTOPP_BOOL_X64
+/* these are 64-bit assembly implementation taken from https://github.com/jkivilin/supercop-blockciphers
+ Copyright © 2011-2013 Jussi Kivilinna <jussi.kivilinna@iki.fi>
+ */
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
-/*
-* Do one column of the RS matrix multiplcation
-*/
-static void rs_mul(byte S[4], byte key, size_t offset)
+void twofish_enc_blk(TwofishInstance *ks, byte *dst, const byte *src);
+void twofish_dec_blk(TwofishInstance *ks, byte *dst, const byte *src);
+void twofish_enc_blk2(TwofishInstance *ks, byte *dst, const byte *src);
+void twofish_dec_blk2(TwofishInstance *ks, byte *dst, const byte *src);
+void twofish_enc_blk3(TwofishInstance *ks, byte *dst, const byte *src);
+void twofish_dec_blk3(TwofishInstance *ks, byte *dst, const byte *src);
+
+#if defined(__cplusplus)
+}
+#endif
+
+void twofish_encrypt_blocks(TwofishInstance *instance, const byte* in_blk, byte* out_blk, uint32 blockCount)
{
- if(key)
+ while (blockCount >= 3)
{
- byte X = POLY_TO_EXP[key - 1];
-
- byte RS1 = RS[(4*offset ) % 32];
- byte RS2 = RS[(4*offset+1) % 32];
- byte RS3 = RS[(4*offset+2) % 32];
- byte RS4 = RS[(4*offset+3) % 32];
+ twofish_enc_blk3 (instance, out_blk, in_blk);
+ out_blk += 3 * 16;
+ in_blk += 3 * 16;
+ blockCount -= 3;
+ }
+
+ if (blockCount == 2)
+ {
+ twofish_enc_blk2 (instance, out_blk, in_blk);
+ }
+ else
+ {
+ twofish_enc_blk (instance, out_blk, in_blk);
+ }
+
+}
- S[0] ^= EXP_TO_POLY[(X + POLY_TO_EXP[RS1 - 1]) % 255];
- S[1] ^= EXP_TO_POLY[(X + POLY_TO_EXP[RS2 - 1]) % 255];
- S[2] ^= EXP_TO_POLY[(X + POLY_TO_EXP[RS3 - 1]) % 255];
- S[3] ^= EXP_TO_POLY[(X + POLY_TO_EXP[RS4 - 1]) % 255];
+void twofish_decrypt_blocks(TwofishInstance *instance, const byte* in_blk, byte* out_blk, uint32 blockCount)
+{
+ while (blockCount >= 3)
+ {
+ twofish_dec_blk3 (instance, out_blk, in_blk);
+ out_blk += 3 * 16;
+ in_blk += 3 * 16;
+ blockCount -= 3;
+ }
+
+ if (blockCount == 2)
+ {
+ twofish_dec_blk2 (instance, out_blk, in_blk);
+ }
+ else
+ {
+ twofish_dec_blk (instance, out_blk, in_blk);
}
}
-u4byte *twofish_set_key(TwofishInstance *instance, const u4byte in_key[])
+
+
+#endif
+
+static const byte Q[2][256] = {
+ {
+ 0xa9, 0x67, 0xb3, 0xe8, 0x04, 0xfd, 0xa3, 0x76, 0x9a, 0x92, 0x80, 0x78, 0xe4, 0xdd, 0xd1, 0x38,
+ 0x0d, 0xc6, 0x35, 0x98, 0x18, 0xf7, 0xec, 0x6c, 0x43, 0x75, 0x37, 0x26, 0xfa, 0x13, 0x94, 0x48,
+ 0xf2, 0xd0, 0x8b, 0x30, 0x84, 0x54, 0xdf, 0x23, 0x19, 0x5b, 0x3d, 0x59, 0xf3, 0xae, 0xa2, 0x82,
+ 0x63, 0x01, 0x83, 0x2e, 0xd9, 0x51, 0x9b, 0x7c, 0xa6, 0xeb, 0xa5, 0xbe, 0x16, 0x0c, 0xe3, 0x61,
+ 0xc0, 0x8c, 0x3a, 0xf5, 0x73, 0x2c, 0x25, 0x0b, 0xbb, 0x4e, 0x89, 0x6b, 0x53, 0x6a, 0xb4, 0xf1,
+ 0xe1, 0xe6, 0xbd, 0x45, 0xe2, 0xf4, 0xb6, 0x66, 0xcc, 0x95, 0x03, 0x56, 0xd4, 0x1c, 0x1e, 0xd7,
+ 0xfb, 0xc3, 0x8e, 0xb5, 0xe9, 0xcf, 0xbf, 0xba, 0xea, 0x77, 0x39, 0xaf, 0x33, 0xc9, 0x62, 0x71,
+ 0x81, 0x79, 0x09, 0xad, 0x24, 0xcd, 0xf9, 0xd8, 0xe5, 0xc5, 0xb9, 0x4d, 0x44, 0x08, 0x86, 0xe7,
+ 0xa1, 0x1d, 0xaa, 0xed, 0x06, 0x70, 0xb2, 0xd2, 0x41, 0x7b, 0xa0, 0x11, 0x31, 0xc2, 0x27, 0x90,
+ 0x20, 0xf6, 0x60, 0xff, 0x96, 0x5c, 0xb1, 0xab, 0x9e, 0x9c, 0x52, 0x1b, 0x5f, 0x93, 0x0a, 0xef,
+ 0x91, 0x85, 0x49, 0xee, 0x2d, 0x4f, 0x8f, 0x3b, 0x47, 0x87, 0x6d, 0x46, 0xd6, 0x3e, 0x69, 0x64,
+ 0x2a, 0xce, 0xcb, 0x2f, 0xfc, 0x97, 0x05, 0x7a, 0xac, 0x7f, 0xd5, 0x1a, 0x4b, 0x0e, 0xa7, 0x5a,
+ 0x28, 0x14, 0x3f, 0x29, 0x88, 0x3c, 0x4c, 0x02, 0xb8, 0xda, 0xb0, 0x17, 0x55, 0x1f, 0x8a, 0x7d,
+ 0x57, 0xc7, 0x8d, 0x74, 0xb7, 0xc4, 0x9f, 0x72, 0x7e, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34,
+ 0x6e, 0x50, 0xde, 0x68, 0x65, 0xbc, 0xdb, 0xf8, 0xc8, 0xa8, 0x2b, 0x40, 0xdc, 0xfe, 0x32, 0xa4,
+ 0xca, 0x10, 0x21, 0xf0, 0xd3, 0x5d, 0x0f, 0x00, 0x6f, 0x9d, 0x36, 0x42, 0x4a, 0x5e, 0xc1, 0xe0
+ },
+ {
+ 0x75, 0xf3, 0xc6, 0xf4, 0xdb, 0x7b, 0xfb, 0xc8, 0x4a, 0xd3, 0xe6, 0x6b, 0x45, 0x7d, 0xe8, 0x4b,
+ 0xd6, 0x32, 0xd8, 0xfd, 0x37, 0x71, 0xf1, 0xe1, 0x30, 0x0f, 0xf8, 0x1b, 0x87, 0xfa, 0x06, 0x3f,
+ 0x5e, 0xba, 0xae, 0x5b, 0x8a, 0x00, 0xbc, 0x9d, 0x6d, 0xc1, 0xb1, 0x0e, 0x80, 0x5d, 0xd2, 0xd5,
+ 0xa0, 0x84, 0x07, 0x14, 0xb5, 0x90, 0x2c, 0xa3, 0xb2, 0x73, 0x4c, 0x54, 0x92, 0x74, 0x36, 0x51,
+ 0x38, 0xb0, 0xbd, 0x5a, 0xfc, 0x60, 0x62, 0x96, 0x6c, 0x42, 0xf7, 0x10, 0x7c, 0x28, 0x27, 0x8c,
+ 0x13, 0x95, 0x9c, 0xc7, 0x24, 0x46, 0x3b, 0x70, 0xca, 0xe3, 0x85, 0xcb, 0x11, 0xd0, 0x93, 0xb8,
+ 0xa6, 0x83, 0x20, 0xff, 0x9f, 0x77, 0xc3, 0xcc, 0x03, 0x6f, 0x08, 0xbf, 0x40, 0xe7, 0x2b, 0xe2,
+ 0x79, 0x0c, 0xaa, 0x82, 0x41, 0x3a, 0xea, 0xb9, 0xe4, 0x9a, 0xa4, 0x97, 0x7e, 0xda, 0x7a, 0x17,
+ 0x66, 0x94, 0xa1, 0x1d, 0x3d, 0xf0, 0xde, 0xb3, 0x0b, 0x72, 0xa7, 0x1c, 0xef, 0xd1, 0x53, 0x3e,
+ 0x8f, 0x33, 0x26, 0x5f, 0xec, 0x76, 0x2a, 0x49, 0x81, 0x88, 0xee, 0x21, 0xc4, 0x1a, 0xeb, 0xd9,
+ 0xc5, 0x39, 0x99, 0xcd, 0xad, 0x31, 0x8b, 0x01, 0x18, 0x23, 0xdd, 0x1f, 0x4e, 0x2d, 0xf9, 0x48,
+ 0x4f, 0xf2, 0x65, 0x8e, 0x78, 0x5c, 0x58, 0x19, 0x8d, 0xe5, 0x98, 0x57, 0x67, 0x7f, 0x05, 0x64,
+ 0xaf, 0x63, 0xb6, 0xfe, 0xf5, 0xb7, 0x3c, 0xa5, 0xce, 0xe9, 0x68, 0x44, 0xe0, 0x4d, 0x43, 0x69,
+ 0x29, 0x2e, 0xac, 0x15, 0x59, 0xa8, 0x0a, 0x9e, 0x6e, 0x47, 0xdf, 0x34, 0x35, 0x6a, 0xcf, 0xdc,
+ 0x22, 0xc9, 0xc0, 0x9b, 0x89, 0xd4, 0xed, 0xab, 0x12, 0xa2, 0x0d, 0x52, 0xbb, 0x02, 0x2f, 0xa9,
+ 0xd7, 0x61, 0x1e, 0xb4, 0x50, 0x04, 0xf6, 0xc2, 0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xbe, 0x91
+ }
+};
+
+static const uint32 MDSQ[4][256] = {
+ {
+ 0xbcbc3275U, 0xecec21f3U, 0x202043c6U, 0xb3b3c9f4U, 0xdada03dbU, 0x02028b7bU, 0xe2e22bfbU, 0x9e9efac8U,
+ 0xc9c9ec4aU, 0xd4d409d3U, 0x18186be6U, 0x1e1e9f6bU, 0x98980e45U, 0xb2b2387dU, 0xa6a6d2e8U, 0x2626b74bU,
+ 0x3c3c57d6U, 0x93938a32U, 0x8282eed8U, 0x525298fdU, 0x7b7bd437U, 0xbbbb3771U, 0x5b5b97f1U, 0x474783e1U,
+ 0x24243c30U, 0x5151e20fU, 0xbabac6f8U, 0x4a4af31bU, 0xbfbf4887U, 0x0d0d70faU, 0xb0b0b306U, 0x7575de3fU,
+ 0xd2d2fd5eU, 0x7d7d20baU, 0x666631aeU, 0x3a3aa35bU, 0x59591c8aU, 0x00000000U, 0xcdcd93bcU, 0x1a1ae09dU,
+ 0xaeae2c6dU, 0x7f7fabc1U, 0x2b2bc7b1U, 0xbebeb90eU, 0xe0e0a080U, 0x8a8a105dU, 0x3b3b52d2U, 0x6464bad5U,
+ 0xd8d888a0U, 0xe7e7a584U, 0x5f5fe807U, 0x1b1b1114U, 0x2c2cc2b5U, 0xfcfcb490U, 0x3131272cU, 0x808065a3U,
+ 0x73732ab2U, 0x0c0c8173U, 0x79795f4cU, 0x6b6b4154U, 0x4b4b0292U, 0x53536974U, 0x94948f36U, 0x83831f51U,
+ 0x2a2a3638U, 0xc4c49cb0U, 0x2222c8bdU, 0xd5d5f85aU, 0xbdbdc3fcU, 0x48487860U, 0xffffce62U, 0x4c4c0796U,
+ 0x4141776cU, 0xc7c7e642U, 0xebeb24f7U, 0x1c1c1410U, 0x5d5d637cU, 0x36362228U, 0x6767c027U, 0xe9e9af8cU,
+ 0x4444f913U, 0x1414ea95U, 0xf5f5bb9cU, 0xcfcf18c7U, 0x3f3f2d24U, 0xc0c0e346U, 0x7272db3bU, 0x54546c70U,
+ 0x29294ccaU, 0xf0f035e3U, 0x0808fe85U, 0xc6c617cbU, 0xf3f34f11U, 0x8c8ce4d0U, 0xa4a45993U, 0xcaca96b8U,
+ 0x68683ba6U, 0xb8b84d83U, 0x38382820U, 0xe5e52effU, 0xadad569fU, 0x0b0b8477U, 0xc8c81dc3U, 0x9999ffccU,
+ 0x5858ed03U, 0x19199a6fU, 0x0e0e0a08U, 0x95957ebfU, 0x70705040U, 0xf7f730e7U, 0x6e6ecf2bU, 0x1f1f6ee2U,
+ 0xb5b53d79U, 0x09090f0cU, 0x616134aaU, 0x57571682U, 0x9f9f0b41U, 0x9d9d803aU, 0x111164eaU, 0x2525cdb9U,
+ 0xafafdde4U, 0x4545089aU, 0xdfdf8da4U, 0xa3a35c97U, 0xeaead57eU, 0x353558daU, 0xededd07aU, 0x4343fc17U,
+ 0xf8f8cb66U, 0xfbfbb194U, 0x3737d3a1U, 0xfafa401dU, 0xc2c2683dU, 0xb4b4ccf0U, 0x32325ddeU, 0x9c9c71b3U,
+ 0x5656e70bU, 0xe3e3da72U, 0x878760a7U, 0x15151b1cU, 0xf9f93aefU, 0x6363bfd1U, 0x3434a953U, 0x9a9a853eU,
+ 0xb1b1428fU, 0x7c7cd133U, 0x88889b26U, 0x3d3da65fU, 0xa1a1d7ecU, 0xe4e4df76U, 0x8181942aU, 0x91910149U,
+ 0x0f0ffb81U, 0xeeeeaa88U, 0x161661eeU, 0xd7d77321U, 0x9797f5c4U, 0xa5a5a81aU, 0xfefe3febU, 0x6d6db5d9U,
+ 0x7878aec5U, 0xc5c56d39U, 0x1d1de599U, 0x7676a4cdU, 0x3e3edcadU, 0xcbcb6731U, 0xb6b6478bU, 0xefef5b01U,
+ 0x12121e18U, 0x6060c523U, 0x6a6ab0ddU, 0x4d4df61fU, 0xcecee94eU, 0xdede7c2dU, 0x55559df9U, 0x7e7e5a48U,
+ 0x2121b24fU, 0x03037af2U, 0xa0a02665U, 0x5e5e198eU, 0x5a5a6678U, 0x65654b5cU, 0x62624e58U, 0xfdfd4519U,
+ 0x0606f48dU, 0x404086e5U, 0xf2f2be98U, 0x3333ac57U, 0x17179067U, 0x05058e7fU, 0xe8e85e05U, 0x4f4f7d64U,
+ 0x89896aafU, 0x10109563U, 0x74742fb6U, 0x0a0a75feU, 0x5c5c92f5U, 0x9b9b74b7U, 0x2d2d333cU, 0x3030d6a5U,
+ 0x2e2e49ceU, 0x494989e9U, 0x46467268U, 0x77775544U, 0xa8a8d8e0U, 0x9696044dU, 0x2828bd43U, 0xa9a92969U,
+ 0xd9d97929U, 0x8686912eU, 0xd1d187acU, 0xf4f44a15U, 0x8d8d1559U, 0xd6d682a8U, 0xb9b9bc0aU, 0x42420d9eU,
+ 0xf6f6c16eU, 0x2f2fb847U, 0xdddd06dfU, 0x23233934U, 0xcccc6235U, 0xf1f1c46aU, 0xc1c112cfU, 0x8585ebdcU,
+ 0x8f8f9e22U, 0x7171a1c9U, 0x9090f0c0U, 0xaaaa539bU, 0x0101f189U, 0x8b8be1d4U, 0x4e4e8cedU, 0x8e8e6fabU,
+ 0xababa212U, 0x6f6f3ea2U, 0xe6e6540dU, 0xdbdbf252U, 0x92927bbbU, 0xb7b7b602U, 0x6969ca2fU, 0x3939d9a9U,
+ 0xd3d30cd7U, 0xa7a72361U, 0xa2a2ad1eU, 0xc3c399b4U, 0x6c6c4450U, 0x07070504U, 0x04047ff6U, 0x272746c2U,
+ 0xacaca716U, 0xd0d07625U, 0x50501386U, 0xdcdcf756U, 0x84841a55U, 0xe1e15109U, 0x7a7a25beU, 0x1313ef91U
+ },
+ {
+ 0xa9d93939U, 0x67901717U, 0xb3719c9cU, 0xe8d2a6a6U, 0x04050707U, 0xfd985252U, 0xa3658080U, 0x76dfe4e4U,
+ 0x9a084545U, 0x92024b4bU, 0x80a0e0e0U, 0x78665a5aU, 0xe4ddafafU, 0xddb06a6aU, 0xd1bf6363U, 0x38362a2aU,
+ 0x0d54e6e6U, 0xc6432020U, 0x3562ccccU, 0x98bef2f2U, 0x181e1212U, 0xf724ebebU, 0xecd7a1a1U, 0x6c774141U,
+ 0x43bd2828U, 0x7532bcbcU, 0x37d47b7bU, 0x269b8888U, 0xfa700d0dU, 0x13f94444U, 0x94b1fbfbU, 0x485a7e7eU,
+ 0xf27a0303U, 0xd0e48c8cU, 0x8b47b6b6U, 0x303c2424U, 0x84a5e7e7U, 0x54416b6bU, 0xdf06ddddU, 0x23c56060U,
+ 0x1945fdfdU, 0x5ba33a3aU, 0x3d68c2c2U, 0x59158d8dU, 0xf321ececU, 0xae316666U, 0xa23e6f6fU, 0x82165757U,
+ 0x63951010U, 0x015befefU, 0x834db8b8U, 0x2e918686U, 0xd9b56d6dU, 0x511f8383U, 0x9b53aaaaU, 0x7c635d5dU,
+ 0xa63b6868U, 0xeb3ffefeU, 0xa5d63030U, 0xbe257a7aU, 0x16a7acacU, 0x0c0f0909U, 0xe335f0f0U, 0x6123a7a7U,
+ 0xc0f09090U, 0x8cafe9e9U, 0x3a809d9dU, 0xf5925c5cU, 0x73810c0cU, 0x2c273131U, 0x2576d0d0U, 0x0be75656U,
+ 0xbb7b9292U, 0x4ee9ceceU, 0x89f10101U, 0x6b9f1e1eU, 0x53a93434U, 0x6ac4f1f1U, 0xb499c3c3U, 0xf1975b5bU,
+ 0xe1834747U, 0xe66b1818U, 0xbdc82222U, 0x450e9898U, 0xe26e1f1fU, 0xf4c9b3b3U, 0xb62f7474U, 0x66cbf8f8U,
+ 0xccff9999U, 0x95ea1414U, 0x03ed5858U, 0x56f7dcdcU, 0xd4e18b8bU, 0x1c1b1515U, 0x1eada2a2U, 0xd70cd3d3U,
+ 0xfb2be2e2U, 0xc31dc8c8U, 0x8e195e5eU, 0xb5c22c2cU, 0xe9894949U, 0xcf12c1c1U, 0xbf7e9595U, 0xba207d7dU,
+ 0xea641111U, 0x77840b0bU, 0x396dc5c5U, 0xaf6a8989U, 0x33d17c7cU, 0xc9a17171U, 0x62ceffffU, 0x7137bbbbU,
+ 0x81fb0f0fU, 0x793db5b5U, 0x0951e1e1U, 0xaddc3e3eU, 0x242d3f3fU, 0xcda47676U, 0xf99d5555U, 0xd8ee8282U,
+ 0xe5864040U, 0xc5ae7878U, 0xb9cd2525U, 0x4d049696U, 0x44557777U, 0x080a0e0eU, 0x86135050U, 0xe730f7f7U,
+ 0xa1d33737U, 0x1d40fafaU, 0xaa346161U, 0xed8c4e4eU, 0x06b3b0b0U, 0x706c5454U, 0xb22a7373U, 0xd2523b3bU,
+ 0x410b9f9fU, 0x7b8b0202U, 0xa088d8d8U, 0x114ff3f3U, 0x3167cbcbU, 0xc2462727U, 0x27c06767U, 0x90b4fcfcU,
+ 0x20283838U, 0xf67f0404U, 0x60784848U, 0xff2ee5e5U, 0x96074c4cU, 0x5c4b6565U, 0xb1c72b2bU, 0xab6f8e8eU,
+ 0x9e0d4242U, 0x9cbbf5f5U, 0x52f2dbdbU, 0x1bf34a4aU, 0x5fa63d3dU, 0x9359a4a4U, 0x0abcb9b9U, 0xef3af9f9U,
+ 0x91ef1313U, 0x85fe0808U, 0x49019191U, 0xee611616U, 0x2d7cdedeU, 0x4fb22121U, 0x8f42b1b1U, 0x3bdb7272U,
+ 0x47b82f2fU, 0x8748bfbfU, 0x6d2caeaeU, 0x46e3c0c0U, 0xd6573c3cU, 0x3e859a9aU, 0x6929a9a9U, 0x647d4f4fU,
+ 0x2a948181U, 0xce492e2eU, 0xcb17c6c6U, 0x2fca6969U, 0xfcc3bdbdU, 0x975ca3a3U, 0x055ee8e8U, 0x7ad0ededU,
+ 0xac87d1d1U, 0x7f8e0505U, 0xd5ba6464U, 0x1aa8a5a5U, 0x4bb72626U, 0x0eb9bebeU, 0xa7608787U, 0x5af8d5d5U,
+ 0x28223636U, 0x14111b1bU, 0x3fde7575U, 0x2979d9d9U, 0x88aaeeeeU, 0x3c332d2dU, 0x4c5f7979U, 0x02b6b7b7U,
+ 0xb896cacaU, 0xda583535U, 0xb09cc4c4U, 0x17fc4343U, 0x551a8484U, 0x1ff64d4dU, 0x8a1c5959U, 0x7d38b2b2U,
+ 0x57ac3333U, 0xc718cfcfU, 0x8df40606U, 0x74695353U, 0xb7749b9bU, 0xc4f59797U, 0x9f56adadU, 0x72dae3e3U,
+ 0x7ed5eaeaU, 0x154af4f4U, 0x229e8f8fU, 0x12a2ababU, 0x584e6262U, 0x07e85f5fU, 0x99e51d1dU, 0x34392323U,
+ 0x6ec1f6f6U, 0x50446c6cU, 0xde5d3232U, 0x68724646U, 0x6526a0a0U, 0xbc93cdcdU, 0xdb03dadaU, 0xf8c6babaU,
+ 0xc8fa9e9eU, 0xa882d6d6U, 0x2bcf6e6eU, 0x40507070U, 0xdceb8585U, 0xfe750a0aU, 0x328a9393U, 0xa48ddfdfU,
+ 0xca4c2929U, 0x10141c1cU, 0x2173d7d7U, 0xf0ccb4b4U, 0xd309d4d4U, 0x5d108a8aU, 0x0fe25151U, 0x00000000U,
+ 0x6f9a1919U, 0x9de01a1aU, 0x368f9494U, 0x42e6c7c7U, 0x4aecc9c9U, 0x5efdd2d2U, 0xc1ab7f7fU, 0xe0d8a8a8U
+ },
+ {
+ 0xbc75bc32U, 0xecf3ec21U, 0x20c62043U, 0xb3f4b3c9U, 0xdadbda03U, 0x027b028bU, 0xe2fbe22bU, 0x9ec89efaU,
+ 0xc94ac9ecU, 0xd4d3d409U, 0x18e6186bU, 0x1e6b1e9fU, 0x9845980eU, 0xb27db238U, 0xa6e8a6d2U, 0x264b26b7U,
+ 0x3cd63c57U, 0x9332938aU, 0x82d882eeU, 0x52fd5298U, 0x7b377bd4U, 0xbb71bb37U, 0x5bf15b97U, 0x47e14783U,
+ 0x2430243cU, 0x510f51e2U, 0xbaf8bac6U, 0x4a1b4af3U, 0xbf87bf48U, 0x0dfa0d70U, 0xb006b0b3U, 0x753f75deU,
+ 0xd25ed2fdU, 0x7dba7d20U, 0x66ae6631U, 0x3a5b3aa3U, 0x598a591cU, 0x00000000U, 0xcdbccd93U, 0x1a9d1ae0U,
+ 0xae6dae2cU, 0x7fc17fabU, 0x2bb12bc7U, 0xbe0ebeb9U, 0xe080e0a0U, 0x8a5d8a10U, 0x3bd23b52U, 0x64d564baU,
+ 0xd8a0d888U, 0xe784e7a5U, 0x5f075fe8U, 0x1b141b11U, 0x2cb52cc2U, 0xfc90fcb4U, 0x312c3127U, 0x80a38065U,
+ 0x73b2732aU, 0x0c730c81U, 0x794c795fU, 0x6b546b41U, 0x4b924b02U, 0x53745369U, 0x9436948fU, 0x8351831fU,
+ 0x2a382a36U, 0xc4b0c49cU, 0x22bd22c8U, 0xd55ad5f8U, 0xbdfcbdc3U, 0x48604878U, 0xff62ffceU, 0x4c964c07U,
+ 0x416c4177U, 0xc742c7e6U, 0xebf7eb24U, 0x1c101c14U, 0x5d7c5d63U, 0x36283622U, 0x672767c0U, 0xe98ce9afU,
+ 0x441344f9U, 0x149514eaU, 0xf59cf5bbU, 0xcfc7cf18U, 0x3f243f2dU, 0xc046c0e3U, 0x723b72dbU, 0x5470546cU,
+ 0x29ca294cU, 0xf0e3f035U, 0x088508feU, 0xc6cbc617U, 0xf311f34fU, 0x8cd08ce4U, 0xa493a459U, 0xcab8ca96U,
+ 0x68a6683bU, 0xb883b84dU, 0x38203828U, 0xe5ffe52eU, 0xad9fad56U, 0x0b770b84U, 0xc8c3c81dU, 0x99cc99ffU,
+ 0x580358edU, 0x196f199aU, 0x0e080e0aU, 0x95bf957eU, 0x70407050U, 0xf7e7f730U, 0x6e2b6ecfU, 0x1fe21f6eU,
+ 0xb579b53dU, 0x090c090fU, 0x61aa6134U, 0x57825716U, 0x9f419f0bU, 0x9d3a9d80U, 0x11ea1164U, 0x25b925cdU,
+ 0xafe4afddU, 0x459a4508U, 0xdfa4df8dU, 0xa397a35cU, 0xea7eead5U, 0x35da3558U, 0xed7aedd0U, 0x431743fcU,
+ 0xf866f8cbU, 0xfb94fbb1U, 0x37a137d3U, 0xfa1dfa40U, 0xc23dc268U, 0xb4f0b4ccU, 0x32de325dU, 0x9cb39c71U,
+ 0x560b56e7U, 0xe372e3daU, 0x87a78760U, 0x151c151bU, 0xf9eff93aU, 0x63d163bfU, 0x345334a9U, 0x9a3e9a85U,
+ 0xb18fb142U, 0x7c337cd1U, 0x8826889bU, 0x3d5f3da6U, 0xa1eca1d7U, 0xe476e4dfU, 0x812a8194U, 0x91499101U,
+ 0x0f810ffbU, 0xee88eeaaU, 0x16ee1661U, 0xd721d773U, 0x97c497f5U, 0xa51aa5a8U, 0xfeebfe3fU, 0x6dd96db5U,
+ 0x78c578aeU, 0xc539c56dU, 0x1d991de5U, 0x76cd76a4U, 0x3ead3edcU, 0xcb31cb67U, 0xb68bb647U, 0xef01ef5bU,
+ 0x1218121eU, 0x602360c5U, 0x6add6ab0U, 0x4d1f4df6U, 0xce4ecee9U, 0xde2dde7cU, 0x55f9559dU, 0x7e487e5aU,
+ 0x214f21b2U, 0x03f2037aU, 0xa065a026U, 0x5e8e5e19U, 0x5a785a66U, 0x655c654bU, 0x6258624eU, 0xfd19fd45U,
+ 0x068d06f4U, 0x40e54086U, 0xf298f2beU, 0x335733acU, 0x17671790U, 0x057f058eU, 0xe805e85eU, 0x4f644f7dU,
+ 0x89af896aU, 0x10631095U, 0x74b6742fU, 0x0afe0a75U, 0x5cf55c92U, 0x9bb79b74U, 0x2d3c2d33U, 0x30a530d6U,
+ 0x2ece2e49U, 0x49e94989U, 0x46684672U, 0x77447755U, 0xa8e0a8d8U, 0x964d9604U, 0x284328bdU, 0xa969a929U,
+ 0xd929d979U, 0x862e8691U, 0xd1acd187U, 0xf415f44aU, 0x8d598d15U, 0xd6a8d682U, 0xb90ab9bcU, 0x429e420dU,
+ 0xf66ef6c1U, 0x2f472fb8U, 0xdddfdd06U, 0x23342339U, 0xcc35cc62U, 0xf16af1c4U, 0xc1cfc112U, 0x85dc85ebU,
+ 0x8f228f9eU, 0x71c971a1U, 0x90c090f0U, 0xaa9baa53U, 0x018901f1U, 0x8bd48be1U, 0x4eed4e8cU, 0x8eab8e6fU,
+ 0xab12aba2U, 0x6fa26f3eU, 0xe60de654U, 0xdb52dbf2U, 0x92bb927bU, 0xb702b7b6U, 0x692f69caU, 0x39a939d9U,
+ 0xd3d7d30cU, 0xa761a723U, 0xa21ea2adU, 0xc3b4c399U, 0x6c506c44U, 0x07040705U, 0x04f6047fU, 0x27c22746U,
+ 0xac16aca7U, 0xd025d076U, 0x50865013U, 0xdc56dcf7U, 0x8455841aU, 0xe109e151U, 0x7abe7a25U, 0x139113efU
+ },
+ {
+ 0xd939a9d9U, 0x90176790U, 0x719cb371U, 0xd2a6e8d2U, 0x05070405U, 0x9852fd98U, 0x6580a365U, 0xdfe476dfU,
+ 0x08459a08U, 0x024b9202U, 0xa0e080a0U, 0x665a7866U, 0xddafe4ddU, 0xb06addb0U, 0xbf63d1bfU, 0x362a3836U,
+ 0x54e60d54U, 0x4320c643U, 0x62cc3562U, 0xbef298beU, 0x1e12181eU, 0x24ebf724U, 0xd7a1ecd7U, 0x77416c77U,
+ 0xbd2843bdU, 0x32bc7532U, 0xd47b37d4U, 0x9b88269bU, 0x700dfa70U, 0xf94413f9U, 0xb1fb94b1U, 0x5a7e485aU,
+ 0x7a03f27aU, 0xe48cd0e4U, 0x47b68b47U, 0x3c24303cU, 0xa5e784a5U, 0x416b5441U, 0x06dddf06U, 0xc56023c5U,
+ 0x45fd1945U, 0xa33a5ba3U, 0x68c23d68U, 0x158d5915U, 0x21ecf321U, 0x3166ae31U, 0x3e6fa23eU, 0x16578216U,
+ 0x95106395U, 0x5bef015bU, 0x4db8834dU, 0x91862e91U, 0xb56dd9b5U, 0x1f83511fU, 0x53aa9b53U, 0x635d7c63U,
+ 0x3b68a63bU, 0x3ffeeb3fU, 0xd630a5d6U, 0x257abe25U, 0xa7ac16a7U, 0x0f090c0fU, 0x35f0e335U, 0x23a76123U,
+ 0xf090c0f0U, 0xafe98cafU, 0x809d3a80U, 0x925cf592U, 0x810c7381U, 0x27312c27U, 0x76d02576U, 0xe7560be7U,
+ 0x7b92bb7bU, 0xe9ce4ee9U, 0xf10189f1U, 0x9f1e6b9fU, 0xa93453a9U, 0xc4f16ac4U, 0x99c3b499U, 0x975bf197U,
+ 0x8347e183U, 0x6b18e66bU, 0xc822bdc8U, 0x0e98450eU, 0x6e1fe26eU, 0xc9b3f4c9U, 0x2f74b62fU, 0xcbf866cbU,
+ 0xff99ccffU, 0xea1495eaU, 0xed5803edU, 0xf7dc56f7U, 0xe18bd4e1U, 0x1b151c1bU, 0xada21eadU, 0x0cd3d70cU,
+ 0x2be2fb2bU, 0x1dc8c31dU, 0x195e8e19U, 0xc22cb5c2U, 0x8949e989U, 0x12c1cf12U, 0x7e95bf7eU, 0x207dba20U,
+ 0x6411ea64U, 0x840b7784U, 0x6dc5396dU, 0x6a89af6aU, 0xd17c33d1U, 0xa171c9a1U, 0xceff62ceU, 0x37bb7137U,
+ 0xfb0f81fbU, 0x3db5793dU, 0x51e10951U, 0xdc3eaddcU, 0x2d3f242dU, 0xa476cda4U, 0x9d55f99dU, 0xee82d8eeU,
+ 0x8640e586U, 0xae78c5aeU, 0xcd25b9cdU, 0x04964d04U, 0x55774455U, 0x0a0e080aU, 0x13508613U, 0x30f7e730U,
+ 0xd337a1d3U, 0x40fa1d40U, 0x3461aa34U, 0x8c4eed8cU, 0xb3b006b3U, 0x6c54706cU, 0x2a73b22aU, 0x523bd252U,
+ 0x0b9f410bU, 0x8b027b8bU, 0x88d8a088U, 0x4ff3114fU, 0x67cb3167U, 0x4627c246U, 0xc06727c0U, 0xb4fc90b4U,
+ 0x28382028U, 0x7f04f67fU, 0x78486078U, 0x2ee5ff2eU, 0x074c9607U, 0x4b655c4bU, 0xc72bb1c7U, 0x6f8eab6fU,
+ 0x0d429e0dU, 0xbbf59cbbU, 0xf2db52f2U, 0xf34a1bf3U, 0xa63d5fa6U, 0x59a49359U, 0xbcb90abcU, 0x3af9ef3aU,
+ 0xef1391efU, 0xfe0885feU, 0x01914901U, 0x6116ee61U, 0x7cde2d7cU, 0xb2214fb2U, 0x42b18f42U, 0xdb723bdbU,
+ 0xb82f47b8U, 0x48bf8748U, 0x2cae6d2cU, 0xe3c046e3U, 0x573cd657U, 0x859a3e85U, 0x29a96929U, 0x7d4f647dU,
+ 0x94812a94U, 0x492ece49U, 0x17c6cb17U, 0xca692fcaU, 0xc3bdfcc3U, 0x5ca3975cU, 0x5ee8055eU, 0xd0ed7ad0U,
+ 0x87d1ac87U, 0x8e057f8eU, 0xba64d5baU, 0xa8a51aa8U, 0xb7264bb7U, 0xb9be0eb9U, 0x6087a760U, 0xf8d55af8U,
+ 0x22362822U, 0x111b1411U, 0xde753fdeU, 0x79d92979U, 0xaaee88aaU, 0x332d3c33U, 0x5f794c5fU, 0xb6b702b6U,
+ 0x96cab896U, 0x5835da58U, 0x9cc4b09cU, 0xfc4317fcU, 0x1a84551aU, 0xf64d1ff6U, 0x1c598a1cU, 0x38b27d38U,
+ 0xac3357acU, 0x18cfc718U, 0xf4068df4U, 0x69537469U, 0x749bb774U, 0xf597c4f5U, 0x56ad9f56U, 0xdae372daU,
+ 0xd5ea7ed5U, 0x4af4154aU, 0x9e8f229eU, 0xa2ab12a2U, 0x4e62584eU, 0xe85f07e8U, 0xe51d99e5U, 0x39233439U,
+ 0xc1f66ec1U, 0x446c5044U, 0x5d32de5dU, 0x72466872U, 0x26a06526U, 0x93cdbc93U, 0x03dadb03U, 0xc6baf8c6U,
+ 0xfa9ec8faU, 0x82d6a882U, 0xcf6e2bcfU, 0x50704050U, 0xeb85dcebU, 0x750afe75U, 0x8a93328aU, 0x8ddfa48dU,
+ 0x4c29ca4cU, 0x141c1014U, 0x73d72173U, 0xccb4f0ccU, 0x09d4d309U, 0x108a5d10U, 0xe2510fe2U, 0x00000000U,
+ 0x9a196f9aU, 0xe01a9de0U, 0x8f94368fU, 0xe6c742e6U, 0xecc94aecU, 0xfdd25efdU, 0xab7fc1abU, 0xd8a8e0d8U
+ },
+};
+
+static const uint32 RS[8][256] = {
+ {
+ 0x00000000U, 0xa402a401U, 0x05040502U, 0xa106a103U, 0x0a080a04U, 0xae0aae05U, 0x0f0c0f06U, 0xab0eab07U,
+ 0x14101408U, 0xb012b009U, 0x1114110aU, 0xb516b50bU, 0x1e181e0cU, 0xba1aba0dU, 0x1b1c1b0eU, 0xbf1ebf0fU,
+ 0x28202810U, 0x8c228c11U, 0x2d242d12U, 0x89268913U, 0x22282214U, 0x862a8615U, 0x272c2716U, 0x832e8317U,
+ 0x3c303c18U, 0x98329819U, 0x3934391aU, 0x9d369d1bU, 0x3638361cU, 0x923a921dU, 0x333c331eU, 0x973e971fU,
+ 0x50405020U, 0xf442f421U, 0x55445522U, 0xf146f123U, 0x5a485a24U, 0xfe4afe25U, 0x5f4c5f26U, 0xfb4efb27U,
+ 0x44504428U, 0xe052e029U, 0x4154412aU, 0xe556e52bU, 0x4e584e2cU, 0xea5aea2dU, 0x4b5c4b2eU, 0xef5eef2fU,
+ 0x78607830U, 0xdc62dc31U, 0x7d647d32U, 0xd966d933U, 0x72687234U, 0xd66ad635U, 0x776c7736U, 0xd36ed337U,
+ 0x6c706c38U, 0xc872c839U, 0x6974693aU, 0xcd76cd3bU, 0x6678663cU, 0xc27ac23dU, 0x637c633eU, 0xc77ec73fU,
+ 0xa080a040U, 0x04820441U, 0xa584a542U, 0x01860143U, 0xaa88aa44U, 0x0e8a0e45U, 0xaf8caf46U, 0x0b8e0b47U,
+ 0xb490b448U, 0x10921049U, 0xb194b14aU, 0x1596154bU, 0xbe98be4cU, 0x1a9a1a4dU, 0xbb9cbb4eU, 0x1f9e1f4fU,
+ 0x88a08850U, 0x2ca22c51U, 0x8da48d52U, 0x29a62953U, 0x82a88254U, 0x26aa2655U, 0x87ac8756U, 0x23ae2357U,
+ 0x9cb09c58U, 0x38b23859U, 0x99b4995aU, 0x3db63d5bU, 0x96b8965cU, 0x32ba325dU, 0x93bc935eU, 0x37be375fU,
+ 0xf0c0f060U, 0x54c25461U, 0xf5c4f562U, 0x51c65163U, 0xfac8fa64U, 0x5eca5e65U, 0xffccff66U, 0x5bce5b67U,
+ 0xe4d0e468U, 0x40d24069U, 0xe1d4e16aU, 0x45d6456bU, 0xeed8ee6cU, 0x4ada4a6dU, 0xebdceb6eU, 0x4fde4f6fU,
+ 0xd8e0d870U, 0x7ce27c71U, 0xdde4dd72U, 0x79e67973U, 0xd2e8d274U, 0x76ea7675U, 0xd7ecd776U, 0x73ee7377U,
+ 0xccf0cc78U, 0x68f26879U, 0xc9f4c97aU, 0x6df66d7bU, 0xc6f8c67cU, 0x62fa627dU, 0xc3fcc37eU, 0x67fe677fU,
+ 0x0d4d0d80U, 0xa94fa981U, 0x08490882U, 0xac4bac83U, 0x07450784U, 0xa347a385U, 0x02410286U, 0xa643a687U,
+ 0x195d1988U, 0xbd5fbd89U, 0x1c591c8aU, 0xb85bb88bU, 0x1355138cU, 0xb757b78dU, 0x1651168eU, 0xb253b28fU,
+ 0x256d2590U, 0x816f8191U, 0x20692092U, 0x846b8493U, 0x2f652f94U, 0x8b678b95U, 0x2a612a96U, 0x8e638e97U,
+ 0x317d3198U, 0x957f9599U, 0x3479349aU, 0x907b909bU, 0x3b753b9cU, 0x9f779f9dU, 0x3e713e9eU, 0x9a739a9fU,
+ 0x5d0d5da0U, 0xf90ff9a1U, 0x580958a2U, 0xfc0bfca3U, 0x570557a4U, 0xf307f3a5U, 0x520152a6U, 0xf603f6a7U,
+ 0x491d49a8U, 0xed1feda9U, 0x4c194caaU, 0xe81be8abU, 0x431543acU, 0xe717e7adU, 0x461146aeU, 0xe213e2afU,
+ 0x752d75b0U, 0xd12fd1b1U, 0x702970b2U, 0xd42bd4b3U, 0x7f257fb4U, 0xdb27dbb5U, 0x7a217ab6U, 0xde23deb7U,
+ 0x613d61b8U, 0xc53fc5b9U, 0x643964baU, 0xc03bc0bbU, 0x6b356bbcU, 0xcf37cfbdU, 0x6e316ebeU, 0xca33cabfU,
+ 0xadcdadc0U, 0x09cf09c1U, 0xa8c9a8c2U, 0x0ccb0cc3U, 0xa7c5a7c4U, 0x03c703c5U, 0xa2c1a2c6U, 0x06c306c7U,
+ 0xb9ddb9c8U, 0x1ddf1dc9U, 0xbcd9bccaU, 0x18db18cbU, 0xb3d5b3ccU, 0x17d717cdU, 0xb6d1b6ceU, 0x12d312cfU,
+ 0x85ed85d0U, 0x21ef21d1U, 0x80e980d2U, 0x24eb24d3U, 0x8fe58fd4U, 0x2be72bd5U, 0x8ae18ad6U, 0x2ee32ed7U,
+ 0x91fd91d8U, 0x35ff35d9U, 0x94f994daU, 0x30fb30dbU, 0x9bf59bdcU, 0x3ff73fddU, 0x9ef19edeU, 0x3af33adfU,
+ 0xfd8dfde0U, 0x598f59e1U, 0xf889f8e2U, 0x5c8b5ce3U, 0xf785f7e4U, 0x538753e5U, 0xf281f2e6U, 0x568356e7U,
+ 0xe99de9e8U, 0x4d9f4de9U, 0xec99eceaU, 0x489b48ebU, 0xe395e3ecU, 0x479747edU, 0xe691e6eeU, 0x429342efU,
+ 0xd5add5f0U, 0x71af71f1U, 0xd0a9d0f2U, 0x74ab74f3U, 0xdfa5dff4U, 0x7ba77bf5U, 0xdaa1daf6U, 0x7ea37ef7U,
+ 0xc1bdc1f8U, 0x65bf65f9U, 0xc4b9c4faU, 0x60bb60fbU, 0xcbb5cbfcU, 0x6fb76ffdU, 0xceb1cefeU, 0x6ab36affU
+ },
+ {
+ 0x00000000U, 0x55a156a4U, 0xaa0fac05U, 0xffaefaa1U, 0x191e150aU, 0x4cbf43aeU, 0xb311b90fU, 0xe6b0efabU,
+ 0x323c2a14U, 0x679d7cb0U, 0x98338611U, 0xcd92d0b5U, 0x2b223f1eU, 0x7e8369baU, 0x812d931bU, 0xd48cc5bfU,
+ 0x64785428U, 0x31d9028cU, 0xce77f82dU, 0x9bd6ae89U, 0x7d664122U, 0x28c71786U, 0xd769ed27U, 0x82c8bb83U,
+ 0x56447e3cU, 0x03e52898U, 0xfc4bd239U, 0xa9ea849dU, 0x4f5a6b36U, 0x1afb3d92U, 0xe555c733U, 0xb0f49197U,
+ 0xc8f0a850U, 0x9d51fef4U, 0x62ff0455U, 0x375e52f1U, 0xd1eebd5aU, 0x844febfeU, 0x7be1115fU, 0x2e4047fbU,
+ 0xfacc8244U, 0xaf6dd4e0U, 0x50c32e41U, 0x056278e5U, 0xe3d2974eU, 0xb673c1eaU, 0x49dd3b4bU, 0x1c7c6defU,
+ 0xac88fc78U, 0xf929aadcU, 0x0687507dU, 0x532606d9U, 0xb596e972U, 0xe037bfd6U, 0x1f994577U, 0x4a3813d3U,
+ 0x9eb4d66cU, 0xcb1580c8U, 0x34bb7a69U, 0x611a2ccdU, 0x87aac366U, 0xd20b95c2U, 0x2da56f63U, 0x780439c7U,
+ 0xddad1da0U, 0x880c4b04U, 0x77a2b1a5U, 0x2203e701U, 0xc4b308aaU, 0x91125e0eU, 0x6ebca4afU, 0x3b1df20bU,
+ 0xef9137b4U, 0xba306110U, 0x459e9bb1U, 0x103fcd15U, 0xf68f22beU, 0xa32e741aU, 0x5c808ebbU, 0x0921d81fU,
+ 0xb9d54988U, 0xec741f2cU, 0x13dae58dU, 0x467bb329U, 0xa0cb5c82U, 0xf56a0a26U, 0x0ac4f087U, 0x5f65a623U,
+ 0x8be9639cU, 0xde483538U, 0x21e6cf99U, 0x7447993dU, 0x92f77696U, 0xc7562032U, 0x38f8da93U, 0x6d598c37U,
+ 0x155db5f0U, 0x40fce354U, 0xbf5219f5U, 0xeaf34f51U, 0x0c43a0faU, 0x59e2f65eU, 0xa64c0cffU, 0xf3ed5a5bU,
+ 0x27619fe4U, 0x72c0c940U, 0x8d6e33e1U, 0xd8cf6545U, 0x3e7f8aeeU, 0x6bdedc4aU, 0x947026ebU, 0xc1d1704fU,
+ 0x7125e1d8U, 0x2484b77cU, 0xdb2a4dddU, 0x8e8b1b79U, 0x683bf4d2U, 0x3d9aa276U, 0xc23458d7U, 0x97950e73U,
+ 0x4319cbccU, 0x16b89d68U, 0xe91667c9U, 0xbcb7316dU, 0x5a07dec6U, 0x0fa68862U, 0xf00872c3U, 0xa5a92467U,
+ 0xf7173a0dU, 0xa2b66ca9U, 0x5d189608U, 0x08b9c0acU, 0xee092f07U, 0xbba879a3U, 0x44068302U, 0x11a7d5a6U,
+ 0xc52b1019U, 0x908a46bdU, 0x6f24bc1cU, 0x3a85eab8U, 0xdc350513U, 0x899453b7U, 0x763aa916U, 0x239bffb2U,
+ 0x936f6e25U, 0xc6ce3881U, 0x3960c220U, 0x6cc19484U, 0x8a717b2fU, 0xdfd02d8bU, 0x207ed72aU, 0x75df818eU,
+ 0xa1534431U, 0xf4f21295U, 0x0b5ce834U, 0x5efdbe90U, 0xb84d513bU, 0xedec079fU, 0x1242fd3eU, 0x47e3ab9aU,
+ 0x3fe7925dU, 0x6a46c4f9U, 0x95e83e58U, 0xc04968fcU, 0x26f98757U, 0x7358d1f3U, 0x8cf62b52U, 0xd9577df6U,
+ 0x0ddbb849U, 0x587aeeedU, 0xa7d4144cU, 0xf27542e8U, 0x14c5ad43U, 0x4164fbe7U, 0xbeca0146U, 0xeb6b57e2U,
+ 0x5b9fc675U, 0x0e3e90d1U, 0xf1906a70U, 0xa4313cd4U, 0x4281d37fU, 0x172085dbU, 0xe88e7f7aU, 0xbd2f29deU,
+ 0x69a3ec61U, 0x3c02bac5U, 0xc3ac4064U, 0x960d16c0U, 0x70bdf96bU, 0x251cafcfU, 0xdab2556eU, 0x8f1303caU,
+ 0x2aba27adU, 0x7f1b7109U, 0x80b58ba8U, 0xd514dd0cU, 0x33a432a7U, 0x66056403U, 0x99ab9ea2U, 0xcc0ac806U,
+ 0x18860db9U, 0x4d275b1dU, 0xb289a1bcU, 0xe728f718U, 0x019818b3U, 0x54394e17U, 0xab97b4b6U, 0xfe36e212U,
+ 0x4ec27385U, 0x1b632521U, 0xe4cddf80U, 0xb16c8924U, 0x57dc668fU, 0x027d302bU, 0xfdd3ca8aU, 0xa8729c2eU,
+ 0x7cfe5991U, 0x295f0f35U, 0xd6f1f594U, 0x8350a330U, 0x65e04c9bU, 0x30411a3fU, 0xcfefe09eU, 0x9a4eb63aU,
+ 0xe24a8ffdU, 0xb7ebd959U, 0x484523f8U, 0x1de4755cU, 0xfb549af7U, 0xaef5cc53U, 0x515b36f2U, 0x04fa6056U,
+ 0xd076a5e9U, 0x85d7f34dU, 0x7a7909ecU, 0x2fd85f48U, 0xc968b0e3U, 0x9cc9e647U, 0x63671ce6U, 0x36c64a42U,
+ 0x8632dbd5U, 0xd3938d71U, 0x2c3d77d0U, 0x799c2174U, 0x9f2ccedfU, 0xca8d987bU, 0x352362daU, 0x6082347eU,
+ 0xb40ef1c1U, 0xe1afa765U, 0x1e015dc4U, 0x4ba00b60U, 0xad10e4cbU, 0xf8b1b26fU, 0x071f48ceU, 0x52be1e6aU
+ },
+ {
+ 0x00000000U, 0x87fc8255U, 0x43b549aaU, 0xc449cbffU, 0x86279219U, 0x01db104cU, 0xc592dbb3U, 0x426e59e6U,
+ 0x414e6932U, 0xc6b2eb67U, 0x02fb2098U, 0x8507a2cdU, 0xc769fb2bU, 0x4095797eU, 0x84dcb281U, 0x032030d4U,
+ 0x829cd264U, 0x05605031U, 0xc1299bceU, 0x46d5199bU, 0x04bb407dU, 0x8347c228U, 0x470e09d7U, 0xc0f28b82U,
+ 0xc3d2bb56U, 0x442e3903U, 0x8067f2fcU, 0x079b70a9U, 0x45f5294fU, 0xc209ab1aU, 0x064060e5U, 0x81bce2b0U,
+ 0x4975e9c8U, 0xce896b9dU, 0x0ac0a062U, 0x8d3c2237U, 0xcf527bd1U, 0x48aef984U, 0x8ce7327bU, 0x0b1bb02eU,
+ 0x083b80faU, 0x8fc702afU, 0x4b8ec950U, 0xcc724b05U, 0x8e1c12e3U, 0x09e090b6U, 0xcda95b49U, 0x4a55d91cU,
+ 0xcbe93bacU, 0x4c15b9f9U, 0x885c7206U, 0x0fa0f053U, 0x4dcea9b5U, 0xca322be0U, 0x0e7be01fU, 0x8987624aU,
+ 0x8aa7529eU, 0x0d5bd0cbU, 0xc9121b34U, 0x4eee9961U, 0x0c80c087U, 0x8b7c42d2U, 0x4f35892dU, 0xc8c90b78U,
+ 0x92ea9fddU, 0x15161d88U, 0xd15fd677U, 0x56a35422U, 0x14cd0dc4U, 0x93318f91U, 0x5778446eU, 0xd084c63bU,
+ 0xd3a4f6efU, 0x545874baU, 0x9011bf45U, 0x17ed3d10U, 0x558364f6U, 0xd27fe6a3U, 0x16362d5cU, 0x91caaf09U,
+ 0x10764db9U, 0x978acfecU, 0x53c30413U, 0xd43f8646U, 0x9651dfa0U, 0x11ad5df5U, 0xd5e4960aU, 0x5218145fU,
+ 0x5138248bU, 0xd6c4a6deU, 0x128d6d21U, 0x9571ef74U, 0xd71fb692U, 0x50e334c7U, 0x94aaff38U, 0x13567d6dU,
+ 0xdb9f7615U, 0x5c63f440U, 0x982a3fbfU, 0x1fd6bdeaU, 0x5db8e40cU, 0xda446659U, 0x1e0dada6U, 0x99f12ff3U,
+ 0x9ad11f27U, 0x1d2d9d72U, 0xd964568dU, 0x5e98d4d8U, 0x1cf68d3eU, 0x9b0a0f6bU, 0x5f43c494U, 0xd8bf46c1U,
+ 0x5903a471U, 0xdeff2624U, 0x1ab6eddbU, 0x9d4a6f8eU, 0xdf243668U, 0x58d8b43dU, 0x9c917fc2U, 0x1b6dfd97U,
+ 0x184dcd43U, 0x9fb14f16U, 0x5bf884e9U, 0xdc0406bcU, 0x9e6a5f5aU, 0x1996dd0fU, 0xdddf16f0U, 0x5a2394a5U,
+ 0x699973f7U, 0xee65f1a2U, 0x2a2c3a5dU, 0xadd0b808U, 0xefbee1eeU, 0x684263bbU, 0xac0ba844U, 0x2bf72a11U,
+ 0x28d71ac5U, 0xaf2b9890U, 0x6b62536fU, 0xec9ed13aU, 0xaef088dcU, 0x290c0a89U, 0xed45c176U, 0x6ab94323U,
+ 0xeb05a193U, 0x6cf923c6U, 0xa8b0e839U, 0x2f4c6a6cU, 0x6d22338aU, 0xeadeb1dfU, 0x2e977a20U, 0xa96bf875U,
+ 0xaa4bc8a1U, 0x2db74af4U, 0xe9fe810bU, 0x6e02035eU, 0x2c6c5ab8U, 0xab90d8edU, 0x6fd91312U, 0xe8259147U,
+ 0x20ec9a3fU, 0xa710186aU, 0x6359d395U, 0xe4a551c0U, 0xa6cb0826U, 0x21378a73U, 0xe57e418cU, 0x6282c3d9U,
+ 0x61a2f30dU, 0xe65e7158U, 0x2217baa7U, 0xa5eb38f2U, 0xe7856114U, 0x6079e341U, 0xa43028beU, 0x23ccaaebU,
+ 0xa270485bU, 0x258cca0eU, 0xe1c501f1U, 0x663983a4U, 0x2457da42U, 0xa3ab5817U, 0x67e293e8U, 0xe01e11bdU,
+ 0xe33e2169U, 0x64c2a33cU, 0xa08b68c3U, 0x2777ea96U, 0x6519b370U, 0xe2e53125U, 0x26acfadaU, 0xa150788fU,
+ 0xfb73ec2aU, 0x7c8f6e7fU, 0xb8c6a580U, 0x3f3a27d5U, 0x7d547e33U, 0xfaa8fc66U, 0x3ee13799U, 0xb91db5ccU,
+ 0xba3d8518U, 0x3dc1074dU, 0xf988ccb2U, 0x7e744ee7U, 0x3c1a1701U, 0xbbe69554U, 0x7faf5eabU, 0xf853dcfeU,
+ 0x79ef3e4eU, 0xfe13bc1bU, 0x3a5a77e4U, 0xbda6f5b1U, 0xffc8ac57U, 0x78342e02U, 0xbc7de5fdU, 0x3b8167a8U,
+ 0x38a1577cU, 0xbf5dd529U, 0x7b141ed6U, 0xfce89c83U, 0xbe86c565U, 0x397a4730U, 0xfd338ccfU, 0x7acf0e9aU,
+ 0xb20605e2U, 0x35fa87b7U, 0xf1b34c48U, 0x764fce1dU, 0x342197fbU, 0xb3dd15aeU, 0x7794de51U, 0xf0685c04U,
+ 0xf3486cd0U, 0x74b4ee85U, 0xb0fd257aU, 0x3701a72fU, 0x756ffec9U, 0xf2937c9cU, 0x36dab763U, 0xb1263536U,
+ 0x309ad786U, 0xb76655d3U, 0x732f9e2cU, 0xf4d31c79U, 0xb6bd459fU, 0x3141c7caU, 0xf5080c35U, 0x72f48e60U,
+ 0x71d4beb4U, 0xf6283ce1U, 0x3261f71eU, 0xb59d754bU, 0xf7f32cadU, 0x700faef8U, 0xb4466507U, 0x33bae752U
+ },
+ {
+ 0x00000000U, 0x5ac1f387U, 0xb4cfab43U, 0xee0e58c4U, 0x25d31b86U, 0x7f12e801U, 0x911cb0c5U, 0xcbdd4342U,
+ 0x4aeb3641U, 0x102ac5c6U, 0xfe249d02U, 0xa4e56e85U, 0x6f382dc7U, 0x35f9de40U, 0xdbf78684U, 0x81367503U,
+ 0x949b6c82U, 0xce5a9f05U, 0x2054c7c1U, 0x7a953446U, 0xb1487704U, 0xeb898483U, 0x0587dc47U, 0x5f462fc0U,
+ 0xde705ac3U, 0x84b1a944U, 0x6abff180U, 0x307e0207U, 0xfba34145U, 0xa162b2c2U, 0x4f6cea06U, 0x15ad1981U,
+ 0x657bd849U, 0x3fba2bceU, 0xd1b4730aU, 0x8b75808dU, 0x40a8c3cfU, 0x1a693048U, 0xf467688cU, 0xaea69b0bU,
+ 0x2f90ee08U, 0x75511d8fU, 0x9b5f454bU, 0xc19eb6ccU, 0x0a43f58eU, 0x50820609U, 0xbe8c5ecdU, 0xe44dad4aU,
+ 0xf1e0b4cbU, 0xab21474cU, 0x452f1f88U, 0x1feeec0fU, 0xd433af4dU, 0x8ef25ccaU, 0x60fc040eU, 0x3a3df789U,
+ 0xbb0b828aU, 0xe1ca710dU, 0x0fc429c9U, 0x5505da4eU, 0x9ed8990cU, 0xc4196a8bU, 0x2a17324fU, 0x70d6c1c8U,
+ 0xcaf6fd92U, 0x90370e15U, 0x7e3956d1U, 0x24f8a556U, 0xef25e614U, 0xb5e41593U, 0x5bea4d57U, 0x012bbed0U,
+ 0x801dcbd3U, 0xdadc3854U, 0x34d26090U, 0x6e139317U, 0xa5ced055U, 0xff0f23d2U, 0x11017b16U, 0x4bc08891U,
+ 0x5e6d9110U, 0x04ac6297U, 0xeaa23a53U, 0xb063c9d4U, 0x7bbe8a96U, 0x217f7911U, 0xcf7121d5U, 0x95b0d252U,
+ 0x1486a751U, 0x4e4754d6U, 0xa0490c12U, 0xfa88ff95U, 0x3155bcd7U, 0x6b944f50U, 0x859a1794U, 0xdf5be413U,
+ 0xaf8d25dbU, 0xf54cd65cU, 0x1b428e98U, 0x41837d1fU, 0x8a5e3e5dU, 0xd09fcddaU, 0x3e91951eU, 0x64506699U,
+ 0xe566139aU, 0xbfa7e01dU, 0x51a9b8d9U, 0x0b684b5eU, 0xc0b5081cU, 0x9a74fb9bU, 0x747aa35fU, 0x2ebb50d8U,
+ 0x3b164959U, 0x61d7badeU, 0x8fd9e21aU, 0xd518119dU, 0x1ec552dfU, 0x4404a158U, 0xaa0af99cU, 0xf0cb0a1bU,
+ 0x71fd7f18U, 0x2b3c8c9fU, 0xc532d45bU, 0x9ff327dcU, 0x542e649eU, 0x0eef9719U, 0xe0e1cfddU, 0xba203c5aU,
+ 0xd9a1b769U, 0x836044eeU, 0x6d6e1c2aU, 0x37afefadU, 0xfc72acefU, 0xa6b35f68U, 0x48bd07acU, 0x127cf42bU,
+ 0x934a8128U, 0xc98b72afU, 0x27852a6bU, 0x7d44d9ecU, 0xb6999aaeU, 0xec586929U, 0x025631edU, 0x5897c26aU,
+ 0x4d3adbebU, 0x17fb286cU, 0xf9f570a8U, 0xa334832fU, 0x68e9c06dU, 0x322833eaU, 0xdc266b2eU, 0x86e798a9U,
+ 0x07d1edaaU, 0x5d101e2dU, 0xb31e46e9U, 0xe9dfb56eU, 0x2202f62cU, 0x78c305abU, 0x96cd5d6fU, 0xcc0caee8U,
+ 0xbcda6f20U, 0xe61b9ca7U, 0x0815c463U, 0x52d437e4U, 0x990974a6U, 0xc3c88721U, 0x2dc6dfe5U, 0x77072c62U,
+ 0xf6315961U, 0xacf0aae6U, 0x42fef222U, 0x183f01a5U, 0xd3e242e7U, 0x8923b160U, 0x672de9a4U, 0x3dec1a23U,
+ 0x284103a2U, 0x7280f025U, 0x9c8ea8e1U, 0xc64f5b66U, 0x0d921824U, 0x5753eba3U, 0xb95db367U, 0xe39c40e0U,
+ 0x62aa35e3U, 0x386bc664U, 0xd6659ea0U, 0x8ca46d27U, 0x47792e65U, 0x1db8dde2U, 0xf3b68526U, 0xa97776a1U,
+ 0x13574afbU, 0x4996b97cU, 0xa798e1b8U, 0xfd59123fU, 0x3684517dU, 0x6c45a2faU, 0x824bfa3eU, 0xd88a09b9U,
+ 0x59bc7cbaU, 0x037d8f3dU, 0xed73d7f9U, 0xb7b2247eU, 0x7c6f673cU, 0x26ae94bbU, 0xc8a0cc7fU, 0x92613ff8U,
+ 0x87cc2679U, 0xdd0dd5feU, 0x33038d3aU, 0x69c27ebdU, 0xa21f3dffU, 0xf8dece78U, 0x16d096bcU, 0x4c11653bU,
+ 0xcd271038U, 0x97e6e3bfU, 0x79e8bb7bU, 0x232948fcU, 0xe8f40bbeU, 0xb235f839U, 0x5c3ba0fdU, 0x06fa537aU,
+ 0x762c92b2U, 0x2ced6135U, 0xc2e339f1U, 0x9822ca76U, 0x53ff8934U, 0x093e7ab3U, 0xe7302277U, 0xbdf1d1f0U,
+ 0x3cc7a4f3U, 0x66065774U, 0x88080fb0U, 0xd2c9fc37U, 0x1914bf75U, 0x43d54cf2U, 0xaddb1436U, 0xf71ae7b1U,
+ 0xe2b7fe30U, 0xb8760db7U, 0x56785573U, 0x0cb9a6f4U, 0xc764e5b6U, 0x9da51631U, 0x73ab4ef5U, 0x296abd72U,
+ 0xa85cc871U, 0xf29d3bf6U, 0x1c936332U, 0x465290b5U, 0x8d8fd3f7U, 0xd74e2070U, 0x394078b4U, 0x63818b33U
+ },
+ {
+ 0x00000000U, 0x58471e5aU, 0xb08e3cb4U, 0xe8c922eeU, 0x2d517825U, 0x7516667fU, 0x9ddf4491U, 0xc5985acbU,
+ 0x5aa2f04aU, 0x02e5ee10U, 0xea2cccfeU, 0xb26bd2a4U, 0x77f3886fU, 0x2fb49635U, 0xc77db4dbU, 0x9f3aaa81U,
+ 0xb409ad94U, 0xec4eb3ceU, 0x04879120U, 0x5cc08f7aU, 0x9958d5b1U, 0xc11fcbebU, 0x29d6e905U, 0x7191f75fU,
+ 0xeeab5ddeU, 0xb6ec4384U, 0x5e25616aU, 0x06627f30U, 0xc3fa25fbU, 0x9bbd3ba1U, 0x7374194fU, 0x2b330715U,
+ 0x25121765U, 0x7d55093fU, 0x959c2bd1U, 0xcddb358bU, 0x08436f40U, 0x5004711aU, 0xb8cd53f4U, 0xe08a4daeU,
+ 0x7fb0e72fU, 0x27f7f975U, 0xcf3edb9bU, 0x9779c5c1U, 0x52e19f0aU, 0x0aa68150U, 0xe26fa3beU, 0xba28bde4U,
+ 0x911bbaf1U, 0xc95ca4abU, 0x21958645U, 0x79d2981fU, 0xbc4ac2d4U, 0xe40ddc8eU, 0x0cc4fe60U, 0x5483e03aU,
+ 0xcbb94abbU, 0x93fe54e1U, 0x7b37760fU, 0x23706855U, 0xe6e8329eU, 0xbeaf2cc4U, 0x56660e2aU, 0x0e211070U,
+ 0x4a242ecaU, 0x12633090U, 0xfaaa127eU, 0xa2ed0c24U, 0x677556efU, 0x3f3248b5U, 0xd7fb6a5bU, 0x8fbc7401U,
+ 0x1086de80U, 0x48c1c0daU, 0xa008e234U, 0xf84ffc6eU, 0x3dd7a6a5U, 0x6590b8ffU, 0x8d599a11U, 0xd51e844bU,
+ 0xfe2d835eU, 0xa66a9d04U, 0x4ea3bfeaU, 0x16e4a1b0U, 0xd37cfb7bU, 0x8b3be521U, 0x63f2c7cfU, 0x3bb5d995U,
+ 0xa48f7314U, 0xfcc86d4eU, 0x14014fa0U, 0x4c4651faU, 0x89de0b31U, 0xd199156bU, 0x39503785U, 0x611729dfU,
+ 0x6f3639afU, 0x377127f5U, 0xdfb8051bU, 0x87ff1b41U, 0x4267418aU, 0x1a205fd0U, 0xf2e97d3eU, 0xaaae6364U,
+ 0x3594c9e5U, 0x6dd3d7bfU, 0x851af551U, 0xdd5deb0bU, 0x18c5b1c0U, 0x4082af9aU, 0xa84b8d74U, 0xf00c932eU,
+ 0xdb3f943bU, 0x83788a61U, 0x6bb1a88fU, 0x33f6b6d5U, 0xf66eec1eU, 0xae29f244U, 0x46e0d0aaU, 0x1ea7cef0U,
+ 0x819d6471U, 0xd9da7a2bU, 0x311358c5U, 0x6954469fU, 0xaccc1c54U, 0xf48b020eU, 0x1c4220e0U, 0x44053ebaU,
+ 0x94485cd9U, 0xcc0f4283U, 0x24c6606dU, 0x7c817e37U, 0xb91924fcU, 0xe15e3aa6U, 0x09971848U, 0x51d00612U,
+ 0xceeaac93U, 0x96adb2c9U, 0x7e649027U, 0x26238e7dU, 0xe3bbd4b6U, 0xbbfccaecU, 0x5335e802U, 0x0b72f658U,
+ 0x2041f14dU, 0x7806ef17U, 0x90cfcdf9U, 0xc888d3a3U, 0x0d108968U, 0x55579732U, 0xbd9eb5dcU, 0xe5d9ab86U,
+ 0x7ae30107U, 0x22a41f5dU, 0xca6d3db3U, 0x922a23e9U, 0x57b27922U, 0x0ff56778U, 0xe73c4596U, 0xbf7b5bccU,
+ 0xb15a4bbcU, 0xe91d55e6U, 0x01d47708U, 0x59936952U, 0x9c0b3399U, 0xc44c2dc3U, 0x2c850f2dU, 0x74c21177U,
+ 0xebf8bbf6U, 0xb3bfa5acU, 0x5b768742U, 0x03319918U, 0xc6a9c3d3U, 0x9eeedd89U, 0x7627ff67U, 0x2e60e13dU,
+ 0x0553e628U, 0x5d14f872U, 0xb5ddda9cU, 0xed9ac4c6U, 0x28029e0dU, 0x70458057U, 0x988ca2b9U, 0xc0cbbce3U,
+ 0x5ff11662U, 0x07b60838U, 0xef7f2ad6U, 0xb738348cU, 0x72a06e47U, 0x2ae7701dU, 0xc22e52f3U, 0x9a694ca9U,
+ 0xde6c7213U, 0x862b6c49U, 0x6ee24ea7U, 0x36a550fdU, 0xf33d0a36U, 0xab7a146cU, 0x43b33682U, 0x1bf428d8U,
+ 0x84ce8259U, 0xdc899c03U, 0x3440beedU, 0x6c07a0b7U, 0xa99ffa7cU, 0xf1d8e426U, 0x1911c6c8U, 0x4156d892U,
+ 0x6a65df87U, 0x3222c1ddU, 0xdaebe333U, 0x82acfd69U, 0x4734a7a2U, 0x1f73b9f8U, 0xf7ba9b16U, 0xaffd854cU,
+ 0x30c72fcdU, 0x68803197U, 0x80491379U, 0xd80e0d23U, 0x1d9657e8U, 0x45d149b2U, 0xad186b5cU, 0xf55f7506U,
+ 0xfb7e6576U, 0xa3397b2cU, 0x4bf059c2U, 0x13b74798U, 0xd62f1d53U, 0x8e680309U, 0x66a121e7U, 0x3ee63fbdU,
+ 0xa1dc953cU, 0xf99b8b66U, 0x1152a988U, 0x4915b7d2U, 0x8c8ded19U, 0xd4caf343U, 0x3c03d1adU, 0x6444cff7U,
+ 0x4f77c8e2U, 0x1730d6b8U, 0xfff9f456U, 0xa7beea0cU, 0x6226b0c7U, 0x3a61ae9dU, 0xd2a88c73U, 0x8aef9229U,
+ 0x15d538a8U, 0x4d9226f2U, 0xa55b041cU, 0xfd1c1a46U, 0x3884408dU, 0x60c35ed7U, 0x880a7c39U, 0xd04d6263U
+ },
+ {
+ 0x00000000U, 0xdbaec658U, 0xfb11c1b0U, 0x20bf07e8U, 0xbb22cf2dU, 0x608c0975U, 0x40330e9dU, 0x9b9dc8c5U,
+ 0x3b44d35aU, 0xe0ea1502U, 0xc05512eaU, 0x1bfbd4b2U, 0x80661c77U, 0x5bc8da2fU, 0x7b77ddc7U, 0xa0d91b9fU,
+ 0x7688ebb4U, 0xad262decU, 0x8d992a04U, 0x5637ec5cU, 0xcdaa2499U, 0x1604e2c1U, 0x36bbe529U, 0xed152371U,
+ 0x4dcc38eeU, 0x9662feb6U, 0xb6ddf95eU, 0x6d733f06U, 0xf6eef7c3U, 0x2d40319bU, 0x0dff3673U, 0xd651f02bU,
+ 0xec5d9b25U, 0x37f35d7dU, 0x174c5a95U, 0xcce29ccdU, 0x577f5408U, 0x8cd19250U, 0xac6e95b8U, 0x77c053e0U,
+ 0xd719487fU, 0x0cb78e27U, 0x2c0889cfU, 0xf7a64f97U, 0x6c3b8752U, 0xb795410aU, 0x972a46e2U, 0x4c8480baU,
+ 0x9ad57091U, 0x417bb6c9U, 0x61c4b121U, 0xba6a7779U, 0x21f7bfbcU, 0xfa5979e4U, 0xdae67e0cU, 0x0148b854U,
+ 0xa191a3cbU, 0x7a3f6593U, 0x5a80627bU, 0x812ea423U, 0x1ab36ce6U, 0xc11daabeU, 0xe1a2ad56U, 0x3a0c6b0eU,
+ 0x95ba7b4aU, 0x4e14bd12U, 0x6eabbafaU, 0xb5057ca2U, 0x2e98b467U, 0xf536723fU, 0xd58975d7U, 0x0e27b38fU,
+ 0xaefea810U, 0x75506e48U, 0x55ef69a0U, 0x8e41aff8U, 0x15dc673dU, 0xce72a165U, 0xeecda68dU, 0x356360d5U,
+ 0xe33290feU, 0x389c56a6U, 0x1823514eU, 0xc38d9716U, 0x58105fd3U, 0x83be998bU, 0xa3019e63U, 0x78af583bU,
+ 0xd87643a4U, 0x03d885fcU, 0x23678214U, 0xf8c9444cU, 0x63548c89U, 0xb8fa4ad1U, 0x98454d39U, 0x43eb8b61U,
+ 0x79e7e06fU, 0xa2492637U, 0x82f621dfU, 0x5958e787U, 0xc2c52f42U, 0x196be91aU, 0x39d4eef2U, 0xe27a28aaU,
+ 0x42a33335U, 0x990df56dU, 0xb9b2f285U, 0x621c34ddU, 0xf981fc18U, 0x222f3a40U, 0x02903da8U, 0xd93efbf0U,
+ 0x0f6f0bdbU, 0xd4c1cd83U, 0xf47eca6bU, 0x2fd00c33U, 0xb44dc4f6U, 0x6fe302aeU, 0x4f5c0546U, 0x94f2c31eU,
+ 0x342bd881U, 0xef851ed9U, 0xcf3a1931U, 0x1494df69U, 0x8f0917acU, 0x54a7d1f4U, 0x7418d61cU, 0xafb61044U,
+ 0x6739f694U, 0xbc9730ccU, 0x9c283724U, 0x4786f17cU, 0xdc1b39b9U, 0x07b5ffe1U, 0x270af809U, 0xfca43e51U,
+ 0x5c7d25ceU, 0x87d3e396U, 0xa76ce47eU, 0x7cc22226U, 0xe75feae3U, 0x3cf12cbbU, 0x1c4e2b53U, 0xc7e0ed0bU,
+ 0x11b11d20U, 0xca1fdb78U, 0xeaa0dc90U, 0x310e1ac8U, 0xaa93d20dU, 0x713d1455U, 0x518213bdU, 0x8a2cd5e5U,
+ 0x2af5ce7aU, 0xf15b0822U, 0xd1e40fcaU, 0x0a4ac992U, 0x91d70157U, 0x4a79c70fU, 0x6ac6c0e7U, 0xb16806bfU,
+ 0x8b646db1U, 0x50caabe9U, 0x7075ac01U, 0xabdb6a59U, 0x3046a29cU, 0xebe864c4U, 0xcb57632cU, 0x10f9a574U,
+ 0xb020beebU, 0x6b8e78b3U, 0x4b317f5bU, 0x909fb903U, 0x0b0271c6U, 0xd0acb79eU, 0xf013b076U, 0x2bbd762eU,
+ 0xfdec8605U, 0x2642405dU, 0x06fd47b5U, 0xdd5381edU, 0x46ce4928U, 0x9d608f70U, 0xbddf8898U, 0x66714ec0U,
+ 0xc6a8555fU, 0x1d069307U, 0x3db994efU, 0xe61752b7U, 0x7d8a9a72U, 0xa6245c2aU, 0x869b5bc2U, 0x5d359d9aU,
+ 0xf2838ddeU, 0x292d4b86U, 0x09924c6eU, 0xd23c8a36U, 0x49a142f3U, 0x920f84abU, 0xb2b08343U, 0x691e451bU,
+ 0xc9c75e84U, 0x126998dcU, 0x32d69f34U, 0xe978596cU, 0x72e591a9U, 0xa94b57f1U, 0x89f45019U, 0x525a9641U,
+ 0x840b666aU, 0x5fa5a032U, 0x7f1aa7daU, 0xa4b46182U, 0x3f29a947U, 0xe4876f1fU, 0xc43868f7U, 0x1f96aeafU,
+ 0xbf4fb530U, 0x64e17368U, 0x445e7480U, 0x9ff0b2d8U, 0x046d7a1dU, 0xdfc3bc45U, 0xff7cbbadU, 0x24d27df5U,
+ 0x1ede16fbU, 0xc570d0a3U, 0xe5cfd74bU, 0x3e611113U, 0xa5fcd9d6U, 0x7e521f8eU, 0x5eed1866U, 0x8543de3eU,
+ 0x259ac5a1U, 0xfe3403f9U, 0xde8b0411U, 0x0525c249U, 0x9eb80a8cU, 0x4516ccd4U, 0x65a9cb3cU, 0xbe070d64U,
+ 0x6856fd4fU, 0xb3f83b17U, 0x93473cffU, 0x48e9faa7U, 0xd3743262U, 0x08daf43aU, 0x2865f3d2U, 0xf3cb358aU,
+ 0x53122e15U, 0x88bce84dU, 0xa803efa5U, 0x73ad29fdU, 0xe830e138U, 0x339e2760U, 0x13212088U, 0xc88fe6d0U
+ },
+ {
+ 0x00000000U, 0x9e3d68dbU, 0x717ad0fbU, 0xef47b820U, 0xe2f4edbbU, 0x7cc98560U, 0x938e3d40U, 0x0db3559bU,
+ 0x89a5973bU, 0x1798ffe0U, 0xf8df47c0U, 0x66e22f1bU, 0x6b517a80U, 0xf56c125bU, 0x1a2baa7bU, 0x8416c2a0U,
+ 0x5f076376U, 0xc13a0badU, 0x2e7db38dU, 0xb040db56U, 0xbdf38ecdU, 0x23cee616U, 0xcc895e36U, 0x52b436edU,
+ 0xd6a2f44dU, 0x489f9c96U, 0xa7d824b6U, 0x39e54c6dU, 0x345619f6U, 0xaa6b712dU, 0x452cc90dU, 0xdb11a1d6U,
+ 0xbe0ec6ecU, 0x2033ae37U, 0xcf741617U, 0x51497eccU, 0x5cfa2b57U, 0xc2c7438cU, 0x2d80fbacU, 0xb3bd9377U,
+ 0x37ab51d7U, 0xa996390cU, 0x46d1812cU, 0xd8ece9f7U, 0xd55fbc6cU, 0x4b62d4b7U, 0xa4256c97U, 0x3a18044cU,
+ 0xe109a59aU, 0x7f34cd41U, 0x90737561U, 0x0e4e1dbaU, 0x03fd4821U, 0x9dc020faU, 0x728798daU, 0xecbaf001U,
+ 0x68ac32a1U, 0xf6915a7aU, 0x19d6e25aU, 0x87eb8a81U, 0x8a58df1aU, 0x1465b7c1U, 0xfb220fe1U, 0x651f673aU,
+ 0x311cc195U, 0xaf21a94eU, 0x4066116eU, 0xde5b79b5U, 0xd3e82c2eU, 0x4dd544f5U, 0xa292fcd5U, 0x3caf940eU,
+ 0xb8b956aeU, 0x26843e75U, 0xc9c38655U, 0x57feee8eU, 0x5a4dbb15U, 0xc470d3ceU, 0x2b376beeU, 0xb50a0335U,
+ 0x6e1ba2e3U, 0xf026ca38U, 0x1f617218U, 0x815c1ac3U, 0x8cef4f58U, 0x12d22783U, 0xfd959fa3U, 0x63a8f778U,
+ 0xe7be35d8U, 0x79835d03U, 0x96c4e523U, 0x08f98df8U, 0x054ad863U, 0x9b77b0b8U, 0x74300898U, 0xea0d6043U,
+ 0x8f120779U, 0x112f6fa2U, 0xfe68d782U, 0x6055bf59U, 0x6de6eac2U, 0xf3db8219U, 0x1c9c3a39U, 0x82a152e2U,
+ 0x06b79042U, 0x988af899U, 0x77cd40b9U, 0xe9f02862U, 0xe4437df9U, 0x7a7e1522U, 0x9539ad02U, 0x0b04c5d9U,
+ 0xd015640fU, 0x4e280cd4U, 0xa16fb4f4U, 0x3f52dc2fU, 0x32e189b4U, 0xacdce16fU, 0x439b594fU, 0xdda63194U,
+ 0x59b0f334U, 0xc78d9befU, 0x28ca23cfU, 0xb6f74b14U, 0xbb441e8fU, 0x25797654U, 0xca3ece74U, 0x5403a6afU,
+ 0x6238cf67U, 0xfc05a7bcU, 0x13421f9cU, 0x8d7f7747U, 0x80cc22dcU, 0x1ef14a07U, 0xf1b6f227U, 0x6f8b9afcU,
+ 0xeb9d585cU, 0x75a03087U, 0x9ae788a7U, 0x04dae07cU, 0x0969b5e7U, 0x9754dd3cU, 0x7813651cU, 0xe62e0dc7U,
+ 0x3d3fac11U, 0xa302c4caU, 0x4c457ceaU, 0xd2781431U, 0xdfcb41aaU, 0x41f62971U, 0xaeb19151U, 0x308cf98aU,
+ 0xb49a3b2aU, 0x2aa753f1U, 0xc5e0ebd1U, 0x5bdd830aU, 0x566ed691U, 0xc853be4aU, 0x2714066aU, 0xb9296eb1U,
+ 0xdc36098bU, 0x420b6150U, 0xad4cd970U, 0x3371b1abU, 0x3ec2e430U, 0xa0ff8cebU, 0x4fb834cbU, 0xd1855c10U,
+ 0x55939eb0U, 0xcbaef66bU, 0x24e94e4bU, 0xbad42690U, 0xb767730bU, 0x295a1bd0U, 0xc61da3f0U, 0x5820cb2bU,
+ 0x83316afdU, 0x1d0c0226U, 0xf24bba06U, 0x6c76d2ddU, 0x61c58746U, 0xfff8ef9dU, 0x10bf57bdU, 0x8e823f66U,
+ 0x0a94fdc6U, 0x94a9951dU, 0x7bee2d3dU, 0xe5d345e6U, 0xe860107dU, 0x765d78a6U, 0x991ac086U, 0x0727a85dU,
+ 0x53240ef2U, 0xcd196629U, 0x225ede09U, 0xbc63b6d2U, 0xb1d0e349U, 0x2fed8b92U, 0xc0aa33b2U, 0x5e975b69U,
+ 0xda8199c9U, 0x44bcf112U, 0xabfb4932U, 0x35c621e9U, 0x38757472U, 0xa6481ca9U, 0x490fa489U, 0xd732cc52U,
+ 0x0c236d84U, 0x921e055fU, 0x7d59bd7fU, 0xe364d5a4U, 0xeed7803fU, 0x70eae8e4U, 0x9fad50c4U, 0x0190381fU,
+ 0x8586fabfU, 0x1bbb9264U, 0xf4fc2a44U, 0x6ac1429fU, 0x67721704U, 0xf94f7fdfU, 0x1608c7ffU, 0x8835af24U,
+ 0xed2ac81eU, 0x7317a0c5U, 0x9c5018e5U, 0x026d703eU, 0x0fde25a5U, 0x91e34d7eU, 0x7ea4f55eU, 0xe0999d85U,
+ 0x648f5f25U, 0xfab237feU, 0x15f58fdeU, 0x8bc8e705U, 0x867bb29eU, 0x1846da45U, 0xf7016265U, 0x693c0abeU,
+ 0xb22dab68U, 0x2c10c3b3U, 0xc3577b93U, 0x5d6a1348U, 0x50d946d3U, 0xcee42e08U, 0x21a39628U, 0xbf9efef3U,
+ 0x3b883c53U, 0xa5b55488U, 0x4af2eca8U, 0xd4cf8473U, 0xd97cd1e8U, 0x4741b933U, 0xa8060113U, 0x363b69c8U
+ },
+ {
+ 0x00000000U, 0x0319e59eU, 0x06328771U, 0x052b62efU, 0x0c6443e2U, 0x0f7da67cU, 0x0a56c493U, 0x094f210dU,
+ 0x18c88689U, 0x1bd16317U, 0x1efa01f8U, 0x1de3e466U, 0x14acc56bU, 0x17b520f5U, 0x129e421aU, 0x1187a784U,
+ 0x30dd415fU, 0x33c4a4c1U, 0x36efc62eU, 0x35f623b0U, 0x3cb902bdU, 0x3fa0e723U, 0x3a8b85ccU, 0x39926052U,
+ 0x2815c7d6U, 0x2b0c2248U, 0x2e2740a7U, 0x2d3ea539U, 0x24718434U, 0x276861aaU, 0x22430345U, 0x215ae6dbU,
+ 0x60f782beU, 0x63ee6720U, 0x66c505cfU, 0x65dce051U, 0x6c93c15cU, 0x6f8a24c2U, 0x6aa1462dU, 0x69b8a3b3U,
+ 0x783f0437U, 0x7b26e1a9U, 0x7e0d8346U, 0x7d1466d8U, 0x745b47d5U, 0x7742a24bU, 0x7269c0a4U, 0x7170253aU,
+ 0x502ac3e1U, 0x5333267fU, 0x56184490U, 0x5501a10eU, 0x5c4e8003U, 0x5f57659dU, 0x5a7c0772U, 0x5965e2ecU,
+ 0x48e24568U, 0x4bfba0f6U, 0x4ed0c219U, 0x4dc92787U, 0x4486068aU, 0x479fe314U, 0x42b481fbU, 0x41ad6465U,
+ 0xc0a34931U, 0xc3baacafU, 0xc691ce40U, 0xc5882bdeU, 0xccc70ad3U, 0xcfdeef4dU, 0xcaf58da2U, 0xc9ec683cU,
+ 0xd86bcfb8U, 0xdb722a26U, 0xde5948c9U, 0xdd40ad57U, 0xd40f8c5aU, 0xd71669c4U, 0xd23d0b2bU, 0xd124eeb5U,
+ 0xf07e086eU, 0xf367edf0U, 0xf64c8f1fU, 0xf5556a81U, 0xfc1a4b8cU, 0xff03ae12U, 0xfa28ccfdU, 0xf9312963U,
+ 0xe8b68ee7U, 0xebaf6b79U, 0xee840996U, 0xed9dec08U, 0xe4d2cd05U, 0xe7cb289bU, 0xe2e04a74U, 0xe1f9afeaU,
+ 0xa054cb8fU, 0xa34d2e11U, 0xa6664cfeU, 0xa57fa960U, 0xac30886dU, 0xaf296df3U, 0xaa020f1cU, 0xa91bea82U,
+ 0xb89c4d06U, 0xbb85a898U, 0xbeaeca77U, 0xbdb72fe9U, 0xb4f80ee4U, 0xb7e1eb7aU, 0xb2ca8995U, 0xb1d36c0bU,
+ 0x90898ad0U, 0x93906f4eU, 0x96bb0da1U, 0x95a2e83fU, 0x9cedc932U, 0x9ff42cacU, 0x9adf4e43U, 0x99c6abddU,
+ 0x88410c59U, 0x8b58e9c7U, 0x8e738b28U, 0x8d6a6eb6U, 0x84254fbbU, 0x873caa25U, 0x8217c8caU, 0x810e2d54U,
+ 0xcd0b9262U, 0xce1277fcU, 0xcb391513U, 0xc820f08dU, 0xc16fd180U, 0xc276341eU, 0xc75d56f1U, 0xc444b36fU,
+ 0xd5c314ebU, 0xd6daf175U, 0xd3f1939aU, 0xd0e87604U, 0xd9a75709U, 0xdabeb297U, 0xdf95d078U, 0xdc8c35e6U,
+ 0xfdd6d33dU, 0xfecf36a3U, 0xfbe4544cU, 0xf8fdb1d2U, 0xf1b290dfU, 0xf2ab7541U, 0xf78017aeU, 0xf499f230U,
+ 0xe51e55b4U, 0xe607b02aU, 0xe32cd2c5U, 0xe035375bU, 0xe97a1656U, 0xea63f3c8U, 0xef489127U, 0xec5174b9U,
+ 0xadfc10dcU, 0xaee5f542U, 0xabce97adU, 0xa8d77233U, 0xa198533eU, 0xa281b6a0U, 0xa7aad44fU, 0xa4b331d1U,
+ 0xb5349655U, 0xb62d73cbU, 0xb3061124U, 0xb01ff4baU, 0xb950d5b7U, 0xba493029U, 0xbf6252c6U, 0xbc7bb758U,
+ 0x9d215183U, 0x9e38b41dU, 0x9b13d6f2U, 0x980a336cU, 0x91451261U, 0x925cf7ffU, 0x97779510U, 0x946e708eU,
+ 0x85e9d70aU, 0x86f03294U, 0x83db507bU, 0x80c2b5e5U, 0x898d94e8U, 0x8a947176U, 0x8fbf1399U, 0x8ca6f607U,
+ 0x0da8db53U, 0x0eb13ecdU, 0x0b9a5c22U, 0x0883b9bcU, 0x01cc98b1U, 0x02d57d2fU, 0x07fe1fc0U, 0x04e7fa5eU,
+ 0x15605ddaU, 0x1679b844U, 0x1352daabU, 0x104b3f35U, 0x19041e38U, 0x1a1dfba6U, 0x1f369949U, 0x1c2f7cd7U,
+ 0x3d759a0cU, 0x3e6c7f92U, 0x3b471d7dU, 0x385ef8e3U, 0x3111d9eeU, 0x32083c70U, 0x37235e9fU, 0x343abb01U,
+ 0x25bd1c85U, 0x26a4f91bU, 0x238f9bf4U, 0x20967e6aU, 0x29d95f67U, 0x2ac0baf9U, 0x2febd816U, 0x2cf23d88U,
+ 0x6d5f59edU, 0x6e46bc73U, 0x6b6dde9cU, 0x68743b02U, 0x613b1a0fU, 0x6222ff91U, 0x67099d7eU, 0x641078e0U,
+ 0x7597df64U, 0x768e3afaU, 0x73a55815U, 0x70bcbd8bU, 0x79f39c86U, 0x7aea7918U, 0x7fc11bf7U, 0x7cd8fe69U,
+ 0x5d8218b2U, 0x5e9bfd2cU, 0x5bb09fc3U, 0x58a97a5dU, 0x51e65b50U, 0x52ffbeceU, 0x57d4dc21U, 0x54cd39bfU,
+ 0x454a9e3bU, 0x46537ba5U, 0x4378194aU, 0x4061fcd4U, 0x492eddd9U, 0x4a373847U, 0x4f1c5aa8U, 0x4c05bf36U
+ },
+};
+
+#define ROUNDT(x0, x1, r) \
+ f0 = ks->mk_tab[0][x0 & 0xFF] ^ ks->mk_tab[1][(x0 >> 8) & 0xFF] ^ ks->mk_tab[2][(x0 >> 16) & 0xFF] ^ ks->mk_tab[3][(x0 >> 24) & 0xFF]; \
+ f1 = ks->mk_tab[0][(x1 >> 24) & 0xFF] ^ ks->mk_tab[1][x1 & 0xFF] ^ ks->mk_tab[2][(x1 >> 8) & 0xFF] ^ ks->mk_tab[3][(x1 >> 16) & 0xFF]; \
+ f0 += f1; \
+ f1 += f0 + rk[2 * (r) + 9]; \
+ f0 += rk[2 * (r) + 8];
+
+#define ROUNDA(r) \
+ ROUNDT(x0, x1, r) \
+ x2 = rotr32(x2 ^ f0, 1); \
+ x3 = rotl32(x3, 1) ^ f1;
+
+#define ROUNDB(r) \
+ ROUNDT(x2, x3, r) \
+ x0 = rotr32(x0 ^ f0, 1); \
+ x1 = rotl32(x1, 1) ^ f1;
+
+#define RROUNDA(r) \
+ ROUNDT(x0, x1, r) \
+ x2 = rotl32(x2, 1) ^ f0; \
+ x3 = rotr32(x3 ^ f1, 1);
+
+#define RROUNDB(r) \
+ ROUNDT(x2, x3, r) \
+ x0 = rotl32(x0, 1) ^ f0; \
+ x1 = rotr32(x1 ^ f1, 1);
+
+
+void twofish_set_key(TwofishInstance *instance, const u4byte in_key[])
{
+ union {
+ byte S8[16];
+ uint32 S32[4];
+ } us;
int i;
- byte S[16] = {0};
- const byte* key = (const byte*) in_key;
- u4byte *l_key = instance->l_key;
- u4byte *mk_tab = instance->mk_tab;
+ const byte* key = (const byte*) in_key;
- for(i = 0; i != 32; ++i)
- rs_mul(&S[4*(i/8)], key[i], i);
+ us.S32[0] = RS[0][key[0]] ^ RS[1][key[1]] ^ RS[2][key[2]] ^ RS[3][key[3]] ^ RS[4][key[4]] ^ RS[5][key[5]] ^ RS[6][key[6]] ^ RS[7][key[7]];
+ us.S32[1] = RS[0][key[8]] ^ RS[1][key[9]] ^ RS[2][key[10]] ^ RS[3][key[11]] ^ RS[4][key[12]] ^ RS[5][key[13]] ^ RS[6][key[14]] ^ RS[7][key[15]];
+ us.S32[2] = RS[0][key[16]] ^ RS[1][key[17]] ^ RS[2][key[18]] ^ RS[3][key[19]] ^ RS[4][key[20]] ^ RS[5][key[21]] ^ RS[6][key[22]] ^ RS[7][key[23]];
+ us.S32[3] = RS[0][key[24]] ^ RS[1][key[25]] ^ RS[2][key[26]] ^ RS[3][key[27]] ^ RS[4][key[28]] ^ RS[5][key[29]] ^ RS[6][key[30]] ^ RS[7][key[31]];
- for(i = 0; i != 256; ++i)
+ for (i = 0; i < 256; ++i)
{
- mk_tab[ i] = MDS0[Q0[Q0[Q1[Q1[i]^S[ 0]]^S[ 4]]^S[ 8]]^S[12]];
- mk_tab[256+i] = MDS1[Q0[Q1[Q1[Q0[i]^S[ 1]]^S[ 5]]^S[ 9]]^S[13]];
- mk_tab[512+i] = MDS2[Q1[Q0[Q0[Q0[i]^S[ 2]]^S[ 6]]^S[10]]^S[14]];
- mk_tab[768+i] = MDS3[Q1[Q1[Q0[Q1[i]^S[ 3]]^S[ 7]]^S[11]]^S[15]];
+ instance->mk_tab[0][i] = MDSQ[0][Q[0][Q[0][Q[1][Q[1][i] ^ us.S8[0]] ^ us.S8[4]] ^ us.S8[8]] ^ us.S8[12]];
+ instance->mk_tab[1][i] = MDSQ[1][Q[0][Q[1][Q[1][Q[0][i] ^ us.S8[1]] ^ us.S8[5]] ^ us.S8[9]] ^ us.S8[13]];
+ instance->mk_tab[2][i] = MDSQ[2][Q[1][Q[0][Q[0][Q[0][i] ^ us.S8[2]] ^ us.S8[6]] ^ us.S8[10]] ^ us.S8[14]];
+ instance->mk_tab[3][i] = MDSQ[3][Q[1][Q[1][Q[0][Q[1][i] ^ us.S8[3]] ^ us.S8[7]] ^ us.S8[11]] ^ us.S8[15]];
}
- for(i = 0; i != 40; i += 2)
+ for (i = 0; i != 40; i += 2)
{
- uint32 X = MDS0[Q0[Q0[Q1[Q1[i ]^key[24]]^key[16]]^key[ 8]]^key[ 0]] ^
- MDS1[Q0[Q1[Q1[Q0[i ]^key[25]]^key[17]]^key[ 9]]^key[ 1]] ^
- MDS2[Q1[Q0[Q0[Q0[i ]^key[26]]^key[18]]^key[10]]^key[ 2]] ^
- MDS3[Q1[Q1[Q0[Q1[i ]^key[27]]^key[19]]^key[11]]^key[ 3]];
- uint32 Y = MDS0[Q0[Q0[Q1[Q1[i+1]^key[28]]^key[20]]^key[12]]^key[ 4]] ^
- MDS1[Q0[Q1[Q1[Q0[i+1]^key[29]]^key[21]]^key[13]]^key[ 5]] ^
- MDS2[Q1[Q0[Q0[Q0[i+1]^key[30]]^key[22]]^key[14]]^key[ 6]] ^
- MDS3[Q1[Q1[Q0[Q1[i+1]^key[31]]^key[23]]^key[15]]^key[ 7]];
- Y = rotl32(Y, 8);
- X += Y; Y += X;
-
- l_key[i] = X;
- l_key[i+1] = rotl32(Y, 9);
+ uint32 a = MDSQ[0][Q[0][Q[0][Q[1][Q[1][i] ^ key[24]] ^ key[16]] ^ key[8]] ^ key[0]] ^ MDSQ[1][Q[0][Q[1][Q[1][Q[0][i] ^ key[25]] ^ key[17]] ^ key[9]] ^ key[1]]
+ ^ MDSQ[2][Q[1][Q[0][Q[0][Q[0][i] ^ key[26]] ^ key[18]] ^ key[10]] ^ key[2]] ^ MDSQ[3][Q[1][Q[1][Q[0][Q[1][i] ^ key[27]] ^ key[19]] ^ key[11]] ^ key[3]];
+ uint32 b = rotl32(MDSQ[0][Q[0][Q[0][Q[1][Q[1][i + 1] ^ key[28]] ^ key[20]] ^ key[12]] ^ key[4]] ^ MDSQ[1][Q[0][Q[1][Q[1][Q[0][i + 1] ^ key[29]] ^ key[21]] ^ key[13]] ^ key[5]]
+ ^ MDSQ[2][Q[1][Q[0][Q[0][Q[0][i + 1] ^ key[30]] ^ key[22]] ^ key[14]] ^ key[6]] ^ MDSQ[3][Q[1][Q[1][Q[0][Q[1][i + 1] ^ key[31]] ^ key[23]] ^ key[15]] ^ key[7]], 8);
+ a += b;
+#if CRYPTOPP_BOOL_X64
+ if (i < 8)
+ {
+ instance->w[i] = a;
+ instance->w[i + 1] = rotl32(a + b, 9);
+ }
+ else
+ {
+ instance->k[i - 8] = a;
+ instance->k[i + 1 - 8] = rotl32(a + b, 9);
+ }
+#else
+ instance->l_key[i] = a;
+ instance->l_key[i + 1] = rotl32(a + b, 9);
+#endif
}
-
- return l_key;
}
#else
@@ -695,7 +949,7 @@ static u4byte mds_rem(u4byte p0, u4byte p1)
/* initialise the key schedule from the user supplied key */
-u4byte *twofish_set_key(TwofishInstance *instance, const u4byte in_key[])
+void twofish_set_key(TwofishInstance *instance, const u4byte in_key[])
{ u4byte i, a, b, me_key[4], mo_key[4];
u4byte *l_key, *s_key;
@@ -736,8 +990,6 @@ u4byte *twofish_set_key(TwofishInstance *instance, const u4byte in_key[])
#ifdef MK_TABLE
gen_mk_tab(instance, s_key);
#endif
-
- return l_key;
};
#endif
@@ -746,55 +998,41 @@ u4byte *twofish_set_key(TwofishInstance *instance, const u4byte in_key[])
#ifndef TC_MINIMIZE_CODE_SIZE
-void twofish_encrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte out_blk[])
+#if (CRYPTOPP_BOOL_X64 == 0)
+void twofish_encrypt(TwofishInstance *ks, const u4byte in_blk[4], u4byte out_blk[4])
{
- int j;
+ uint32* rk = ks->l_key;
- u4byte *l_key = instance->l_key;
- u4byte *mk_tab = instance->mk_tab;
+ uint32 x0 = in_blk[0] ^ rk[0];
+ uint32 x1 = in_blk[1] ^ rk[1];
+ uint32 x2 = in_blk[2] ^ rk[2];
+ uint32 x3 = in_blk[3] ^ rk[3];
+ uint32 f0, f1;
- u4byte A = LE32(in_blk[0]) ^ l_key[0];
- u4byte B = LE32(in_blk[1]) ^ l_key[1];
- u4byte C = LE32(in_blk[2]) ^ l_key[2];
- u4byte D = LE32(in_blk[3]) ^ l_key[3];
-
- for(j = 0; j != 16; j += 2)
- {
- u4byte X, Y;
- X = mk_tab[ get_byte(3, A)] ^ mk_tab[256+get_byte(2, A)] ^
- mk_tab[512+get_byte(1, A)] ^ mk_tab[768+get_byte(0, A)];
- Y = mk_tab[ get_byte(0, B)] ^ mk_tab[256+get_byte(3, B)] ^
- mk_tab[512+get_byte(2, B)] ^ mk_tab[768+get_byte(1, B)];
- X += Y;
- Y += X + l_key[2*j + 9];
- X += l_key[2*j + 8];
-
- C = rotr32(C ^ X, 1);
- D = rotl32(D, 1) ^ Y;
-
- X = mk_tab[ get_byte(3, C)] ^ mk_tab[256+get_byte(2, C)] ^
- mk_tab[512+get_byte(1, C)] ^ mk_tab[768+get_byte(0, C)];
- Y = mk_tab[ get_byte(0, D)] ^ mk_tab[256+get_byte(3, D)] ^
- mk_tab[512+get_byte(2, D)] ^ mk_tab[768+get_byte(1, D)];
- X += Y;
- Y += X + l_key[2*j + 11];
- X += l_key[2*j + 10];
-
- A = rotr32(A ^ X, 1);
- B = rotl32(B, 1) ^ Y;
- }
+#ifdef UNROLL_TWOFISH
+ ROUNDA(0); ROUNDB(1); ROUNDA(2); ROUNDB(3); ROUNDA(4); ROUNDB(5); ROUNDA(6); ROUNDB(7); ROUNDA(8); ROUNDB(9); ROUNDA(10); ROUNDB(11); ROUNDA(12); ROUNDB(13); ROUNDA(14); ROUNDB(15);
+#else
+ size_t j;
+ for(j = 0; j != 16; j += 2)
+ {
+
+ ROUNDA (j);
+ ROUNDB (j + 1);
+ }
+#endif
- C ^= l_key[4];
- D ^= l_key[5];
- A ^= l_key[6];
- B ^= l_key[7];
+ x2 ^= rk[4];
+ x3 ^= rk[5];
+ x0 ^= rk[6];
+ x1 ^= rk[7];
- out_blk[0] = LE32(C);
- out_blk[1] = LE32(D);
- out_blk[2] = LE32(A);
- out_blk[3] = LE32(B);
-};
+ out_blk[0] = x2;
+ out_blk[1] = x3;
+ out_blk[2] = x0;
+ out_blk[3] = x1;
+}
+#endif
#else // TC_MINIMIZE_CODE_SIZE
void twofish_encrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte out_blk[])
@@ -833,54 +1071,38 @@ void twofish_encrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte o
#ifndef TC_MINIMIZE_CODE_SIZE
-void twofish_decrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte out_blk[4])
+#if (CRYPTOPP_BOOL_X64 == 0)
+void twofish_decrypt(TwofishInstance *ks, const u4byte in_blk[4], u4byte out_blk[4])
{
- int j;
- u4byte *l_key = instance->l_key;
- u4byte *mk_tab = instance->mk_tab;
-
- u4byte A = LE32(in_blk[0]) ^ l_key[4];
- u4byte B = LE32(in_blk[1]) ^ l_key[5];
- u4byte C = LE32(in_blk[2]) ^ l_key[6];
- u4byte D = LE32(in_blk[3]) ^ l_key[7];
-
- for(j = 0; j != 16; j += 2)
- {
- u4byte X, Y;
- X = mk_tab[ get_byte(3, A)] ^ mk_tab[256+get_byte(2, A)] ^
- mk_tab[512+get_byte(1, A)] ^ mk_tab[768+get_byte(0, A)];
- Y = mk_tab[ get_byte(0, B)] ^ mk_tab[256+get_byte(3, B)] ^
- mk_tab[512+get_byte(2, B)] ^ mk_tab[768+get_byte(1, B)];
- X += Y;
- Y += X + l_key[39 - 2*j];
- X += l_key[38 - 2*j];
-
- C = rotl32(C, 1) ^ X;
- D = rotr32(D ^ Y, 1);
-
- X = mk_tab[ get_byte(3, C)] ^ mk_tab[256+get_byte(2, C)] ^
- mk_tab[512+get_byte(1, C)] ^ mk_tab[768+get_byte(0, C)];
- Y = mk_tab[ get_byte(0, D)] ^ mk_tab[256+get_byte(3, D)] ^
- mk_tab[512+get_byte(2, D)] ^ mk_tab[768+get_byte(1, D)];
- X += Y;
- Y += X + l_key[37 - 2*j];
- X += l_key[36 - 2*j];
-
- A = rotl32(A, 1) ^ X;
- B = rotr32(B ^ Y, 1);
- }
-
- C ^= l_key[0];
- D ^= l_key[1];
- A ^= l_key[2];
- B ^= l_key[3];
-
- out_blk[0] = LE32(C);
- out_blk[1] = LE32(D);
- out_blk[2] = LE32(A);
- out_blk[3] = LE32(B);
+ uint32* rk = ks->l_key;
+ uint32 x0 = in_blk[0] ^ rk[4];
+ uint32 x1 = in_blk[1] ^ rk[5];
+ uint32 x2 = in_blk[2] ^ rk[6];
+ uint32 x3 = in_blk[3] ^ rk[7];
+ uint32 f0, f1;
+
+#ifdef UNROLL_TWOFISH
+ RROUNDA(15); RROUNDB(14); RROUNDA(13); RROUNDB(12); RROUNDA(11); RROUNDB(10); RROUNDA(9); RROUNDB(8); RROUNDA(7); RROUNDB(6); RROUNDA(5); RROUNDB(4); RROUNDA(3); RROUNDB(2); RROUNDA(1); RROUNDB(0);
+#else
+ int j;
+ for(j = 15; j != -1; j -= 2)
+ {
+
+ RROUNDA (j);
+ RROUNDB (j - 1);
+ }
+#endif
+ x2 ^= rk[0];
+ x3 ^= rk[1];
+ x0 ^= rk[2];
+ x1 ^= rk[3];
+
+ out_blk[0] = x2;
+ out_blk[1] = x3;
+ out_blk[2] = x0;
+ out_blk[3] = x1;
};
-
+#endif
#else // TC_MINIMIZE_CODE_SIZE
void twofish_decrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte out_blk[4])
diff --git a/src/Crypto/Twofish.h b/src/Crypto/Twofish.h
index aebb6ea..b2d44dd 100644
--- a/src/Crypto/Twofish.h
+++ b/src/Crypto/Twofish.h
@@ -2,6 +2,7 @@
#define TWOFISH_H
#include "Common/Tcdefs.h"
+#include "config.h"
#if defined(__cplusplus)
extern "C"
@@ -34,21 +35,32 @@ extern "C"
#endif
typedef struct
{
+#if CRYPTOPP_BOOL_X64
+ u4byte mk_tab[4][256], w[8], k[32];
+#else
u4byte l_key[40];
#ifdef TC_MINIMIZE_CODE_SIZE
u4byte s_key[4];
-#endif
-#if !defined (TC_MINIMIZE_CODE_SIZE) || defined (TC_WINDOWS_BOOT_TWOFISH)
u4byte mk_tab[4 * 256];
+#else
+ u4byte mk_tab[4][256];
+#endif
#endif
} TwofishInstance;
#define TWOFISH_KS sizeof(TwofishInstance)
/* in_key must be 32-bytes long */
-u4byte * twofish_set_key(TwofishInstance *instance, const u4byte in_key[]);
-void twofish_encrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte out_blk[]);
+void twofish_set_key(TwofishInstance *instance, const u4byte in_key[]);
+#if CRYPTOPP_BOOL_X64
+void twofish_encrypt_blocks(TwofishInstance *instance, const byte* in_blk, byte* out_blk, uint32 blockCount);
+void twofish_decrypt_blocks(TwofishInstance *instance, const byte* in_blk, byte* out_blk, uint32 blockCount);
+#define twofish_encrypt(instance,in_blk,out_blk) twofish_encrypt_blocks(instance, (const byte*) in_blk, (byte*) out_blk, 1)
+#define twofish_decrypt(instance,in_blk,out_blk) twofish_decrypt_blocks(instance, (const byte*) in_blk, (byte*) out_blk, 1)
+#else
+void twofish_encrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte out_blk[4]);
void twofish_decrypt(TwofishInstance *instance, const u4byte in_blk[4], u4byte out_blk[4]);
+#endif
#if defined(__cplusplus)
}
diff --git a/src/Crypto/Twofish_x64.S b/src/Crypto/Twofish_x64.S
new file mode 100644
index 0000000..93f2820
--- /dev/null
+++ b/src/Crypto/Twofish_x64.S
@@ -0,0 +1,320 @@
+/* twofish_asm_3way.S
+ *
+ * Copyright © 2011-2013 Jussi Kivilinna <jussi.kivilinna@iki.fi>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+ /* Adapted tp VeraCrypt */
+
+.text
+
+.align 8
+.global twofish_enc_blk
+.global _twofish_enc_blk
+
+twofish_enc_blk:
+_twofish_enc_blk:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+ pushq %rbp
+ pushq %rbx
+
+ pushq %rsi;
+ movq %rdx, %rsi;
+
+ movq 4*(0)(%rsi), %rax; xorq 4096 +4*0(%rdi), %rax;; movq 4*(2)(%rsi), %rbx; xorq 4096 +4*2(%rdi), %rbx;;;
+
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(0*2)+1)(%rdi), %esi; addl 4128 +4*(2*(0*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(1*2)+1)(%rdi), %esi; addl 4128 +4*(2*(1*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(2*2)+1)(%rdi), %esi; addl 4128 +4*(2*(2*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(3*2)+1)(%rdi), %esi; addl 4128 +4*(2*(3*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(4*2)+1)(%rdi), %esi; addl 4128 +4*(2*(4*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(5*2)+1)(%rdi), %esi; addl 4128 +4*(2*(5*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(6*2)+1)(%rdi), %esi; addl 4128 +4*(2*(6*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(7*2)+1)(%rdi), %esi; addl 4128 +4*(2*(7*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax;;;
+
+ popq %rsi;
+
+ xorq 4096 +4*4(%rdi), %rbx; movq %rbx, 4*(0)(%rsi);; xorq 4096 +4*6(%rdi), %rax; movq %rax, 4*(2)(%rsi);;;
+
+ popq %rbx
+ popq %rbp
+.ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+ ret;
+
+.global twofish_dec_blk
+.global _twofish_dec_blk
+
+twofish_dec_blk:
+_twofish_dec_blk:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+
+ pushq %rbp
+ pushq %rbx
+ pushq %r12
+ pushq %r13
+
+ pushq %rsi;
+ movq %rdx, %rsi;
+
+ movq 4*(0)(%rsi), %rbx; xorq 4096 +4*4(%rdi), %rbx;; movq 4*(2)(%rsi), %rax; xorq 4096 +4*6(%rdi), %rax;; rorq $32, %rbx; rorq $32, %rax;;
+
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((7*2))+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((6*2))+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((5*2))+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((4*2))+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((3*2))+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((2*2))+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((1*2))+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((0*2))+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx;;;
+
+ popq %rsi;
+
+ rorq $32, %rax; rorq $32, %rbx; xorq 4096 +4*0(%rdi), %rax; movq %rax, 4*(0)(%rsi);; xorq 4096 +4*2(%rdi), %rbx; movq %rbx, 4*(2)(%rsi);;;
+
+ popq %r13
+ popq %r12
+ popq %rbx
+ popq %rbp
+
+.ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+
+ ret;
+
+.global twofish_enc_blk2
+.global _twofish_enc_blk2
+
+twofish_enc_blk2:
+_twofish_enc_blk2:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+
+ pushq %rbp
+ pushq %rbx
+
+ pushq %rsi;
+ movq %rdx, %rsi;
+
+ movq 4*(0)(%rsi), %rax; xorq 4096 +4*0(%rdi), %rax; movq 4*(4+(0))(%rsi), %rcx; xorq 4096 +4*0(%rdi), %rcx;; movq 4*(2)(%rsi), %rbx; xorq 4096 +4*2(%rdi), %rbx; movq 4*(4+(2))(%rsi), %rdx; xorq 4096 +4*2(%rdi), %rdx;;;
+
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(0*2)+1)(%rdi), %esi; addl 4128 +4*(2*(0*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(0*2)+1)(%rdi), %esi; addl 4128 +4*(2*(0*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(1*2)+1)(%rdi), %esi; addl 4128 +4*(2*(1*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(1*2)+1)(%rdi), %esi; addl 4128 +4*(2*(1*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(2*2)+1)(%rdi), %esi; addl 4128 +4*(2*(2*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(2*2)+1)(%rdi), %esi; addl 4128 +4*(2*(2*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(3*2)+1)(%rdi), %esi; addl 4128 +4*(2*(3*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(3*2)+1)(%rdi), %esi; addl 4128 +4*(2*(3*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(4*2)+1)(%rdi), %esi; addl 4128 +4*(2*(4*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(4*2)+1)(%rdi), %esi; addl 4128 +4*(2*(4*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(5*2)+1)(%rdi), %esi; addl 4128 +4*(2*(5*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(5*2)+1)(%rdi), %esi; addl 4128 +4*(2*(5*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(6*2)+1)(%rdi), %esi; addl 4128 +4*(2*(6*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(6*2)+1)(%rdi), %esi; addl 4128 +4*(2*(6*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+ movzbl %al, %r8d; movzbl %ah, %esi; rorq $(32), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(48), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(32), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(48), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*(7*2)+1)(%rdi), %esi; addl 4128 +4*(2*(7*2))(%rdi), %r8d; xorl %ebx, %r8d; shrq $32, %rbx; roll $1, %ebx; xorl %esi, %ebx; shlq $32, %rbx; rorl $1, %r8d; orq %r8, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*(7*2)+1)(%rdi), %esi; addl 4128 +4*(2*(7*2))(%rdi), %r9d; xorl %edx, %r9d; shrq $32, %rdx; roll $1, %edx; xorl %esi, %edx; shlq $32, %rdx; rorl $1, %r9d; orq %r9, %rdx;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(32), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(48), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(32), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(48), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)+1))(%rdi), %r8d; xorl %eax, %r8d; shrq $32, %rax; roll $1, %eax; xorl %esi, %eax; shlq $32, %rax; rorl $1, %r8d; orq %r8, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)+1))(%rdi), %r9d; xorl %ecx, %r9d; shrq $32, %rcx; roll $1, %ecx; xorl %esi, %ecx; shlq $32, %rcx; rorl $1, %r9d; orq %r9, %rcx;;;
+
+ popq %rsi;
+
+ xorq 4096 +4*4(%rdi), %rbx; movq %rbx, 4*(0)(%rsi); xorq 4096 +4*4(%rdi), %rdx; movq %rdx, 4*(4+(0))(%rsi);; xorq 4096 +4*6(%rdi), %rax; movq %rax, 4*(2)(%rsi); xorq 4096 +4*6(%rdi), %rcx; movq %rcx, 4*(4+(2))(%rsi);;;
+
+ popq %rbx
+ popq %rbp
+.ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+ ret;
+
+.global twofish_dec_blk2
+.global _twofish_dec_blk2
+
+twofish_dec_blk2:
+_twofish_dec_blk2:
+
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+ pushq %rbp
+ pushq %rbx
+ pushq %r12
+ pushq %r13
+
+ pushq %rsi;
+ movq %rdx, %rsi;
+
+ movq 4*(0)(%rsi), %rbx; xorq 4096 +4*4(%rdi), %rbx; movq 4*(4+(0))(%rsi), %rdx; xorq 4096 +4*4(%rdi), %rdx;; movq 4*(2)(%rsi), %rax; xorq 4096 +4*6(%rdi), %rax; movq 4*(4+(2))(%rsi), %rcx; xorq 4096 +4*6(%rdi), %rcx;; rorq $32, %rbx; rorq $32, %rdx; rorq $32, %rax; rorq $32, %rcx;;
+
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((7*2))+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((7*2))+1)(%rdi), %esi; addl 4128 +4*(2*((7*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((6*2))+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((6*2))+1)(%rdi), %esi; addl 4128 +4*(2*((6*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((5*2))+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((5*2))+1)(%rdi), %esi; addl 4128 +4*(2*((5*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((4*2))+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((4*2))+1)(%rdi), %esi; addl 4128 +4*(2*((4*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((3*2))+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((3*2))+1)(%rdi), %esi; addl 4128 +4*(2*((3*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((2*2))+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((2*2))+1)(%rdi), %esi; addl 4128 +4*(2*((2*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((1*2))+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((1*2))+1)(%rdi), %esi; addl 4128 +4*(2*((1*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+ movzbl %bl, %r10d; movzbl %bh, %esi; rorq $(32), %rbx; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %bl, %r8d; movzbl %bh, %esi; rorq $(48), %rbx; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %dl, %r11d; movzbl %dh, %esi; rorq $(32), %rdx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %dl, %r9d; movzbl %dh, %esi; rorq $(48), %rdx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(32), %rbx; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %bl, %ebp; movzbl %bh, %esi; rorq $(16), %rbx; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(32), %rdx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %dl, %ebp; movzbl %dh, %esi; rorq $(16), %rdx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)+1))(%rdi), %r8d; xorl %eax, %esi; shrq $32, %rax; roll $1, %eax; xorl %r8d, %eax; shlq $32, %rax; rorl $1, %esi; orq %rsi, %rax; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)+1))(%rdi), %r9d; xorl %ecx, %esi; shrq $32, %rcx; roll $1, %ecx; xorl %r9d, %ecx; shlq $32, %rcx; rorl $1, %esi; orq %rsi, %rcx;; movzbl %al, %r10d; movzbl %ah, %esi; rorq $(32), %rax; movl 1024(%rdi, %r10, 4), %r10d; xorl 2048(%rdi, %rsi, 4), %r10d;; movzbl %al, %r8d; movzbl %ah, %esi; rorq $(48), %rax; movl 0(%rdi, %r8, 4), %r8d; xorl 1024(%rdi, %rsi, 4), %r8d;; movzbl %cl, %r11d; movzbl %ch, %esi; rorq $(32), %rcx; movl 1024(%rdi, %r11, 4), %r11d; xorl 2048(%rdi, %rsi, 4), %r11d;; movzbl %cl, %r9d; movzbl %ch, %esi; rorq $(48), %rcx; movl 0(%rdi, %r9, 4), %r9d; xorl 1024(%rdi, %rsi, 4), %r9d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(32), %rax; xorl 3072(%rdi, %rbp, 4), %r10d; xorl 0(%rdi, %rsi, 4), %r10d;; movzbl %al, %ebp; movzbl %ah, %esi; rorq $(16), %rax; xorl 2048(%rdi, %rbp, 4), %r8d; xorl 3072(%rdi, %rsi, 4), %r8d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(32), %rcx; xorl 3072(%rdi, %rbp, 4), %r11d; xorl 0(%rdi, %rsi, 4), %r11d;; movzbl %cl, %ebp; movzbl %ch, %esi; rorq $(16), %rcx; xorl 2048(%rdi, %rbp, 4), %r9d; xorl 3072(%rdi, %rsi, 4), %r9d;;; leal (%r8d, %r10d, 2), %esi; addl %r10d, %r8d; addl 4128 +4*(2*((0*2))+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)))(%rdi), %r8d; xorl %ebx, %esi; shrq $32, %rbx; roll $1, %ebx; xorl %r8d, %ebx; shlq $32, %rbx; rorl $1, %esi; orq %rsi, %rbx; leal (%r9d, %r11d, 2), %esi; addl %r11d, %r9d; addl 4128 +4*(2*((0*2))+1)(%rdi), %esi; addl 4128 +4*(2*((0*2)))(%rdi), %r9d; xorl %edx, %esi; shrq $32, %rdx; roll $1, %edx; xorl %r9d, %edx; shlq $32, %rdx; rorl $1, %esi; orq %rsi, %rdx;;;
+
+ popq %rsi;
+
+ rorq $32, %rax; rorq $32, %rcx; rorq $32, %rbx; rorq $32, %rdx; xorq 4096 +4*0(%rdi), %rax; movq %rax, 4*(0)(%rsi); xorq 4096 +4*0(%rdi), %rcx; movq %rcx, 4*(4+(0))(%rsi);; xorq 4096 +4*2(%rdi), %rbx; movq %rbx, 4*(2)(%rsi); xorq 4096 +4*2(%rdi), %rdx; movq %rdx, 4*(4+(2))(%rsi);;;
+
+ popq %r13
+ popq %r12
+ popq %rbx
+ popq %rbp
+
+.ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+ ret;
+
+.global twofish_enc_blk3
+.global _twofish_enc_blk3
+
+twofish_enc_blk3:
+_twofish_enc_blk3:
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+
+
+
+ pushq %r15;
+ pushq %r14;
+ pushq %r13;
+ pushq %r12;
+ pushq %rbp;
+ pushq %rbx;
+
+ pushq %rsi;
+
+ movq 4*(0)(%rdx), %rax; xorq 4096 +4*0(%rdi), %rax; movq 4*(4+(0))(%rdx), %rbx; xorq 4096 +4*0(%rdi), %rbx; movq 4*(8+(0))(%rdx), %rcx; xorq 4096 +4*0(%rdi), %rcx;; movq 4*(2)(%rdx), %r8; xorq 4096 +4*2(%rdi), %r8; movq 4*(4+(2))(%rdx), %r9; xorq 4096 +4*2(%rdi), %r9; movq 4*(8+(2))(%rdx), %r10; xorq 4096 +4*2(%rdi), %r10;;;
+
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(0*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(0*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(0*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(0*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(0*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(0*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((0*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((0*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((0*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(1*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(1*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(1*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(1*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(1*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(1*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((1*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((1*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((1*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(2*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(2*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(2*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(2*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(2*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(2*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((2*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((2*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((2*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(3*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(3*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(3*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(3*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(3*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(3*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((3*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((3*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((3*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(4*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(4*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(4*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(4*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(4*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(4*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((4*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((4*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((4*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(5*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(5*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(5*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(5*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(5*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(5*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((5*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((5*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((5*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(6*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(6*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(6*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(6*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(6*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(6*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((6*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((6*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((6*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+ movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*(7*2))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*(7*2)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*(7*2))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*(7*2)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*(7*2))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*(7*2)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(32), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(48), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(32), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(48), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(32), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(48), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((7*2)+1))(%rdi), %ebp; xorl %eax, %ebp; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %r13d; shrq $32, %rax; roll $1, %eax; xorl %r13d, %eax; shlq $32, %rax; rorl $1, %ebp; orq %rbp, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((7*2)+1))(%rdi), %r11d; xorl %ebx, %r11d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r14d, %ebx; shlq $32, %rbx; rorl $1, %r11d; orq %r11, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((7*2)+1))(%rdi), %r12d; xorl %ecx, %r12d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r15d, %ecx; shlq $32, %rcx; rorl $1, %r12d; orq %r12, %rcx;;;;
+
+ popq %rdx;
+
+ xorq 4096 +4*6(%rdi), %rax; movq %rax, 4*(2)(%rdx); xorq 4096 +4*6(%rdi), %rbx; movq %rbx, 4*(4+(2))(%rdx); xorq 4096 +4*6(%rdi), %rcx; movq %rcx, 4*(8+(2))(%rdx);; xorq 4096 +4*4(%rdi), %r8; movq %r8, 4*(0)(%rdx); xorq 4096 +4*4(%rdi), %r9; movq %r9, 4*(4+(0))(%rdx); xorq 4096 +4*4(%rdi), %r10; movq %r10, 4*(8+(0))(%rdx);;;
+
+ popq %rbx;
+ popq %rbp;
+ popq %r12;
+ popq %r13;
+ popq %r14;
+ popq %r15;
+.ifdef WINABI
+popq %rdi
+popq %rsi
+.endif
+ ret;
+
+.global twofish_dec_blk3
+.global _twofish_dec_blk3
+
+twofish_dec_blk3:
+_twofish_dec_blk3:
+
+
+.ifdef WINABI
+pushq %rsi
+pushq %rdi
+movq %rcx, %rdi;
+movq %rdx, %rsi;
+movq %r8, %rdx;
+.endif
+
+
+ pushq %r15;
+ pushq %r14;
+ pushq %r13;
+ pushq %r12;
+ pushq %rbp;
+ pushq %rbx;
+
+ pushq %rsi;
+
+ movq 4*(0)(%rdx), %rax; xorq 4096 +4*4(%rdi), %rax; movq 4*(4+(0))(%rdx), %rbx; xorq 4096 +4*4(%rdi), %rbx; movq 4*(8+(0))(%rdx), %rcx; xorq 4096 +4*4(%rdi), %rcx;; rorq $32, %rax; rorq $32, %rbx; rorq $32, %rcx; movq 4*(2)(%rdx), %r8; xorq 4096 +4*6(%rdi), %r8; movq 4*(4+(2))(%rdx), %r9; xorq 4096 +4*6(%rdi), %r9; movq 4*(8+(2))(%rdx), %r10; xorq 4096 +4*6(%rdi), %r10;; rorq $32, %r8; rorq $32, %r9; rorq $32, %r10;;
+
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((7*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((7*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((7*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((7*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((7*2)))(%rdi), %ebp; addl 4128 +4*(2*((7*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((7*2)))(%rdi), %r11d; addl 4128 +4*(2*((7*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((7*2)))(%rdi), %r12d; addl 4128 +4*(2*((7*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((6*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((6*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((6*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((6*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((6*2)))(%rdi), %ebp; addl 4128 +4*(2*((6*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((6*2)))(%rdi), %r11d; addl 4128 +4*(2*((6*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((6*2)))(%rdi), %r12d; addl 4128 +4*(2*((6*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((5*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((5*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((5*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((5*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((5*2)))(%rdi), %ebp; addl 4128 +4*(2*((5*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((5*2)))(%rdi), %r11d; addl 4128 +4*(2*((5*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((5*2)))(%rdi), %r12d; addl 4128 +4*(2*((5*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((4*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((4*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((4*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((4*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((4*2)))(%rdi), %ebp; addl 4128 +4*(2*((4*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((4*2)))(%rdi), %r11d; addl 4128 +4*(2*((4*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((4*2)))(%rdi), %r12d; addl 4128 +4*(2*((4*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((3*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((3*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((3*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((3*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((3*2)))(%rdi), %ebp; addl 4128 +4*(2*((3*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((3*2)))(%rdi), %r11d; addl 4128 +4*(2*((3*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((3*2)))(%rdi), %r12d; addl 4128 +4*(2*((3*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((2*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((2*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((2*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((2*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((2*2)))(%rdi), %ebp; addl 4128 +4*(2*((2*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((2*2)))(%rdi), %r11d; addl 4128 +4*(2*((2*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((2*2)))(%rdi), %r12d; addl 4128 +4*(2*((2*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((1*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((1*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((1*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((1*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((1*2)))(%rdi), %ebp; addl 4128 +4*(2*((1*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((1*2)))(%rdi), %r11d; addl 4128 +4*(2*((1*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((1*2)))(%rdi), %r12d; addl 4128 +4*(2*((1*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+ movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((0*2)+1))(%rdi), %ebp; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((0*2)+1))(%rdi), %r11d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((0*2)+1))(%rdi), %r12d; addl 4128 +4*(2*((0*2)+1)+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;; movzbl %al, %r13d; movzbl %ah, %edx; rorq $(32), %rax; movl 1024(%rdi, %r13, 4), %r13d; xorl 2048(%rdi, %rdx, 4), %r13d;; movzbl %al, %ebp; movzbl %ah, %edx; rorq $(48), %rax; movl 0(%rdi, %rbp, 4), %ebp; xorl 1024(%rdi, %rdx, 4), %ebp;; movzbl %bl, %r14d; movzbl %bh, %edx; rorq $(32), %rbx; movl 1024(%rdi, %r14, 4), %r14d; xorl 2048(%rdi, %rdx, 4), %r14d;; movzbl %bl, %r11d; movzbl %bh, %edx; rorq $(48), %rbx; movl 0(%rdi, %r11, 4), %r11d; xorl 1024(%rdi, %rdx, 4), %r11d;; movzbl %cl, %r15d; movzbl %ch, %edx; rorq $(32), %rcx; movl 1024(%rdi, %r15, 4), %r15d; xorl 2048(%rdi, %rdx, 4), %r15d;; movzbl %cl, %r12d; movzbl %ch, %edx; rorq $(48), %rcx; movl 0(%rdi, %r12, 4), %r12d; xorl 1024(%rdi, %rdx, 4), %r12d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(32), %rax; xorl 3072(%rdi, %rsi, 4), %r13d; xorl 0(%rdi, %rdx, 4), %r13d;; movzbl %al, %esi; movzbl %ah, %edx; rorq $(16), %rax; xorl 2048(%rdi, %rsi, 4), %ebp; xorl 3072(%rdi, %rdx, 4), %ebp;; xchgq %r8, %rax; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(32), %rbx; xorl 3072(%rdi, %rsi, 4), %r14d; xorl 0(%rdi, %rdx, 4), %r14d;; movzbl %bl, %esi; movzbl %bh, %edx; rorq $(16), %rbx; xorl 2048(%rdi, %rsi, 4), %r11d; xorl 3072(%rdi, %rdx, 4), %r11d;; xchgq %r9, %rbx; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(32), %rcx; xorl 3072(%rdi, %rsi, 4), %r15d; xorl 0(%rdi, %rdx, 4), %r15d;; movzbl %cl, %esi; movzbl %ch, %edx; rorq $(16), %rcx; xorl 2048(%rdi, %rsi, 4), %r12d; xorl 3072(%rdi, %rdx, 4), %r12d;; xchgq %r10, %rcx;; addl %r13d, %ebp; addl %ebp, %r13d; addl 4128 +4*(2*((0*2)))(%rdi), %ebp; addl 4128 +4*(2*((0*2))+1)(%rdi), %r13d; xorl %eax, %r13d; shrq $32, %rax; roll $1, %eax; xorl %ebp, %eax; shlq $32, %rax; rorl $1, %r13d; orq %r13, %rax;; addl %r14d, %r11d; addl %r11d, %r14d; addl 4128 +4*(2*((0*2)))(%rdi), %r11d; addl 4128 +4*(2*((0*2))+1)(%rdi), %r14d; xorl %ebx, %r14d; shrq $32, %rbx; roll $1, %ebx; xorl %r11d, %ebx; shlq $32, %rbx; rorl $1, %r14d; orq %r14, %rbx;; addl %r15d, %r12d; addl %r12d, %r15d; addl 4128 +4*(2*((0*2)))(%rdi), %r12d; addl 4128 +4*(2*((0*2))+1)(%rdi), %r15d; xorl %ecx, %r15d; shrq $32, %rcx; roll $1, %ecx; xorl %r12d, %ecx; shlq $32, %rcx; rorl $1, %r15d; orq %r15, %rcx;;;;
+
+ popq %rdx;
+
+ rorq $32, %r8; rorq $32, %r9; rorq $32, %r10; xorq 4096 +4*0(%rdi), %r8; movq %r8, 4*(0)(%rdx); xorq 4096 +4*0(%rdi), %r9; movq %r9, 4*(4+(0))(%rdx); xorq 4096 +4*0(%rdi), %r10; movq %r10, 4*(8+(0))(%rdx);; rorq $32, %rax; rorq $32, %rbx; rorq $32, %rcx; xorq 4096 +4*2(%rdi), %rax; movq %rax, 4*(2)(%rdx); xorq 4096 +4*2(%rdi), %rbx; movq %rbx, 4*(4+(2))(%rdx); xorq 4096 +4*2(%rdi), %rcx; movq %rcx, 4*(8+(2))(%rdx);;;
+
+ popq %rbx;
+ popq %rbp;
+ popq %r12;
+ popq %r13;
+ popq %r14;
+ popq %r15;
+
+ .ifdef WINABI
+ popq %rdi
+ popq %rsi
+ .endif
+ ret;
+
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif
+
diff --git a/src/Crypto/Twofish_x86.S b/src/Crypto/Twofish_x86.S
new file mode 100644
index 0000000..46f0e98
--- /dev/null
+++ b/src/Crypto/Twofish_x86.S
@@ -0,0 +1,5 @@
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif \ No newline at end of file
diff --git a/src/Crypto/Whirlpool.c b/src/Crypto/Whirlpool.c
index 86b3ebf..35188c6 100644
--- a/src/Crypto/Whirlpool.c
+++ b/src/Crypto/Whirlpool.c
@@ -80,6 +80,15 @@
#include "misc.h"
#include "Whirlpool.h"
+// "Inline assembly operands don't work with .intel_syntax",
+// http://llvm.org/bugs/show_bug.cgi?id=24232
+#if defined(CRYPTOPP_DISABLE_INTEL_ASM)
+# undef CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+# undef CRYPTOPP_BOOL_SSSE3_ASM_AVAILABLE
+# define CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE 0
+# define CRYPTOPP_BOOL_SSSE3_ASM_AVAILABLE 0
+#endif
+
/*
* The number of rounds of the internal dedicated block cipher.
*/
@@ -638,7 +647,7 @@ void WhirlpoolTransform(uint64 *digest, const uint64 *block)
{
#ifdef __GNUC__
#if CRYPTOPP_BOOL_X64
- uint64 workspace[16];
+ CRYPTOPP_ALIGN_DATA(16) uint64 workspace[16];
#endif
__asm__ __volatile__
(
diff --git a/src/Crypto/config.h b/src/Crypto/config.h
index 792ac67..396be93 100644
--- a/src/Crypto/config.h
+++ b/src/Crypto/config.h
@@ -9,22 +9,30 @@
#define VC_INLINE static inline
#endif
+// Clang pretends to be VC++, too.
+// See http://github.com/weidai11/cryptopp/issues/147
+#if defined(_MSC_VER) && defined(__clang__) && !defined(_DCSPKG_ANALYZE)
+# error: "Unsupported configuration"
+#endif
+
#ifdef __GNUC__
#define CRYPTOPP_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
// Apple and LLVM's Clang. Apple Clang version 7.0 roughly equals LLVM Clang version 3.7
-#if defined(__clang__ ) && !defined(__apple_build_version__)
- #define CRYPTOPP_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
-#elif defined(__clang__ ) && defined(__apple_build_version__)
- #define CRYPTOPP_APPLE_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
+#if defined(__clang__ ) && !defined(__apple_build_version__) && !defined(_DCSPKG_ANALYZE)
+ #define CRYPTOPP_LLVM_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
+ #define CRYPTOPP_CLANG_INTEGRATED_ASSEMBLER 1
+#elif defined(__clang__ ) && defined(__apple_build_version__) && !defined(_DCSPKG_ANALYZE)
+ #define CRYPTOPP_APPLE_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
+ #define CRYPTOPP_CLANG_INTEGRATED_ASSEMBLER 1
#endif
// Clang due to "Inline assembly operands don't work with .intel_syntax", http://llvm.org/bugs/show_bug.cgi?id=24232
// TODO: supply the upper version when LLVM fixes it. We set it to 20.0 for compilation purposes.
-#if (defined(CRYPTOPP_CLANG_VERSION) && CRYPTOPP_CLANG_VERSION <= 200000) || (defined(CRYPTOPP_APPLE_CLANG_VERSION) && CRYPTOPP_APPLE_CLANG_VERSION <= 200000)
-#define CRYPTOPP_DISABLE_INTEL_ASM 1
+#if (defined(CRYPTOPP_LLVM_CLANG_VERSION) && CRYPTOPP_LLVM_CLANG_VERSION <= 200000) || (defined(CRYPTOPP_APPLE_CLANG_VERSION) && CRYPTOPP_APPLE_CLANG_VERSION <= 200000) || defined(CRYPTOPP_CLANG_INTEGRATED_ASSEMBLER)
+ #define CRYPTOPP_DISABLE_INTEL_ASM 1
#endif
#ifndef CRYPTOPP_L1_CACHE_LINE_SIZE
diff --git a/src/Crypto/cpu.c b/src/Crypto/cpu.c
index 7a4656d..69a7fcf 100644
--- a/src/Crypto/cpu.c
+++ b/src/Crypto/cpu.c
@@ -187,10 +187,23 @@ static int TrySSE2()
#endif
}
-int g_x86DetectionDone = 0;
-int g_hasISSE = 0, g_hasSSE2 = 0, g_hasSSSE3 = 0, g_hasMMX = 0, g_hasAESNI = 0, g_hasCLMUL = 0, g_isP4 = 0;
-int g_hasAVX = 0, g_hasAVX2 = 0, g_hasBMI2 = 0, g_hasSSE42 = 0, g_hasSSE41 = 0;
-uint32 g_cacheLineSize = CRYPTOPP_L1_CACHE_LINE_SIZE;
+static uint64 xgetbv()
+{
+#if defined(_MSC_VER) && defined(_XCR_XFEATURE_ENABLED_MASK) && !defined(_UEFI)
+ return _xgetbv(_XCR_XFEATURE_ENABLED_MASK);
+#elif defined(__GNUC__) || defined(__clang__)
+ uint32 eax, edx;
+ __asm__ __volatile__(".byte 0x0F, 0x01, 0xd0" : "=a"(eax), "=d"(edx) : "c"(0));
+ return ((uint64_t)edx << 32) | eax;
+#else
+ return 0;
+#endif
+}
+
+volatile int g_x86DetectionDone = 0;
+volatile int g_hasISSE = 0, g_hasSSE2 = 0, g_hasSSSE3 = 0, g_hasMMX = 0, g_hasAESNI = 0, g_hasCLMUL = 0, g_isP4 = 0;
+volatile int g_hasAVX = 0, g_hasAVX2 = 0, g_hasBMI2 = 0, g_hasSSE42 = 0, g_hasSSE41 = 0, g_isIntel = 0, g_isAMD = 0;
+volatile uint32 g_cacheLineSize = CRYPTOPP_L1_CACHE_LINE_SIZE;
VC_INLINE int IsIntel(const uint32 output[4])
{
@@ -292,9 +305,13 @@ void DetectX86Features()
g_hasMMX = (cpuid1[3] & (1 << 23)) != 0;
if ((cpuid1[3] & (1 << 26)) != 0)
g_hasSSE2 = TrySSE2();
- g_hasAVX2 = g_hasSSE2 && (cpuid1[1] & (1 << 5));
+ if (g_hasSSE2 && (cpuid1[2] & (1 << 28)) && (cpuid1[2] & (1 << 27)) && (cpuid1[2] & (1 << 26))) /* CPU has AVX and OS supports XSAVE/XRSTORE */
+ {
+ uint64 xcrFeatureMask = xgetbv();
+ g_hasAVX = (xcrFeatureMask & 0x6) == 0x6;
+ }
+ g_hasAVX2 = g_hasAVX && (cpuid1[1] & (1 << 5));
g_hasBMI2 = g_hasSSE2 && (cpuid1[1] & (1 << 8));
- g_hasAVX = g_hasSSE2 && (cpuid1[2] & (1 << 28));
g_hasSSE42 = g_hasSSE2 && (cpuid1[2] & (1 << 20));
g_hasSSE41 = g_hasSSE2 && (cpuid1[2] & (1 << 19));
g_hasSSSE3 = g_hasSSE2 && (cpuid1[2] & (1<<9));
@@ -325,11 +342,13 @@ void DetectX86Features()
if (IsIntel(cpuid))
{
+ g_isIntel = 1;
g_isP4 = ((cpuid1[0] >> 8) & 0xf) == 0xf;
g_cacheLineSize = 8 * GETBYTE(cpuid1[1], 1);
}
else if (IsAMD(cpuid))
{
+ g_isAMD = 1;
CpuId(0x80000005, cpuid);
g_cacheLineSize = GETBYTE(cpuid[2], 0);
}
@@ -362,5 +381,23 @@ int is_aes_hw_cpu_supported ()
return bHasAESNI;
}
+void DisableCPUExtendedFeatures ()
+{
+ g_hasSSE2 = 0;
+ g_hasISSE = 0;
+ g_hasMMX = 0;
+ g_hasSSE2 = 0;
+ g_hasISSE = 0;
+ g_hasMMX = 0;
+ g_hasAVX = 0;
+ g_hasAVX2 = 0;
+ g_hasBMI2 = 0;
+ g_hasSSE42 = 0;
+ g_hasSSE41 = 0;
+ g_hasSSSE3 = 0;
+ g_hasAESNI = 0;
+ g_hasCLMUL = 0;
+}
+
#endif
diff --git a/src/Crypto/cpu.h b/src/Crypto/cpu.h
index ab372cf..cddec05 100644
--- a/src/Crypto/cpu.h
+++ b/src/Crypto/cpu.h
@@ -4,6 +4,27 @@
#include "Common/Tcdefs.h"
#include "config.h"
+// Applies to both X86/X32/X64 and ARM32/ARM64
+#if defined(CRYPTOPP_LLVM_CLANG_VERSION) || defined(CRYPTOPP_APPLE_CLANG_VERSION) || defined(CRYPTOPP_CLANG_INTEGRATED_ASSEMBLER)
+ #define NEW_LINE "\n"
+ #define INTEL_PREFIX ".intel_syntax;"
+ #define INTEL_NOPREFIX ".intel_syntax;"
+ #define ATT_PREFIX ".att_syntax;"
+ #define ATT_NOPREFIX ".att_syntax;"
+#elif defined(__GNUC__)
+ #define NEW_LINE
+ #define INTEL_PREFIX ".intel_syntax prefix;"
+ #define INTEL_NOPREFIX ".intel_syntax noprefix;"
+ #define ATT_PREFIX ".att_syntax prefix;"
+ #define ATT_NOPREFIX ".att_syntax noprefix;"
+#else
+ #define NEW_LINE
+ #define INTEL_PREFIX
+ #define INTEL_NOPREFIX
+ #define ATT_PREFIX
+ #define ATT_NOPREFIX
+#endif
+
#ifdef CRYPTOPP_GENERATE_X64_MASM
#define CRYPTOPP_X86_ASM_AVAILABLE
@@ -165,36 +186,31 @@ extern "C" {
#define CRYPTOPP_CPUID_AVAILABLE
// these should not be used directly
-extern int g_x86DetectionDone;
-extern int g_hasAVX;
-extern int g_hasAVX2;
-extern int g_hasBMI2;
-extern int g_hasSSE42;
-extern int g_hasSSE41;
-extern int g_hasSSSE3;
-extern int g_hasAESNI;
-extern int g_hasCLMUL;
-extern int g_isP4;
-extern uint32 g_cacheLineSize;
+extern volatile int g_x86DetectionDone;
+extern volatile int g_hasSSE2;
+extern volatile int g_hasISSE;
+extern volatile int g_hasMMX;
+extern volatile int g_hasAVX;
+extern volatile int g_hasAVX2;
+extern volatile int g_hasBMI2;
+extern volatile int g_hasSSE42;
+extern volatile int g_hasSSE41;
+extern volatile int g_hasSSSE3;
+extern volatile int g_hasAESNI;
+extern volatile int g_hasCLMUL;
+extern volatile int g_isP4;
+extern volatile int g_isIntel;
+extern volatile int g_isAMD;
+extern volatile uint32 g_cacheLineSize;
void DetectX86Features(); // must be called at the start of the program/driver
int CpuId(uint32 input, uint32 *output);
-
-#if CRYPTOPP_BOOL_X64
-#define HasSSE2() 1
-#define HasISSE() 1
-#define HasMMX() 1
-#else
-
-extern int g_hasSSE2;
-extern int g_hasISSE;
-extern int g_hasMMX;
+// disable all CPU extended features (e.g. SSE, AVX, AES) that may have
+// been enabled by DetectX86Features.
+void DisableCPUExtendedFeatures ();
#define HasSSE2() g_hasSSE2
#define HasISSE() g_hasISSE
#define HasMMX() g_hasMMX
-
-#endif
-
#define HasSSE42() g_hasSSE42
#define HasSSE41() g_hasSSE41
#define HasSAVX() g_hasAVX
@@ -204,6 +220,8 @@ extern int g_hasMMX;
#define HasAESNI() g_hasAESNI
#define HasCLMUL() g_hasCLMUL
#define IsP4() g_isP4
+#define IsCpuIntel() g_isIntel
+#define IsCpuAMD() g_isAMD
#define GetCacheLineSize() g_cacheLineSize
#if defined(__cplusplus)
@@ -218,6 +236,8 @@ extern int g_hasMMX;
#endif
+#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64
+
#ifdef CRYPTOPP_GENERATE_X64_MASM
#define AS1(x) x*newline*
#define AS2(x, y) x, y*newline*
@@ -241,20 +261,6 @@ extern int g_hasMMX;
#else
#define CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
- #if defined(CRYPTOPP_CLANG_VERSION) || defined(CRYPTOPP_APPLE_CLANG_VERSION)
- #define NEW_LINE "\n"
- #define INTEL_PREFIX ".intel_syntax;"
- #define INTEL_NOPREFIX ".intel_syntax;"
- #define ATT_PREFIX ".att_syntax;"
- #define ATT_NOPREFIX ".att_syntax;"
- #else
- #define NEW_LINE
- #define INTEL_PREFIX ".intel_syntax prefix;"
- #define INTEL_NOPREFIX ".intel_syntax noprefix;"
- #define ATT_PREFIX ".att_syntax prefix;"
- #define ATT_NOPREFIX ".att_syntax noprefix;"
- #endif
-
// define these in two steps to allow arguments to be expanded
#define GNU_AS1(x) #x ";" NEW_LINE
#define GNU_AS2(x, y) #x ", " #y ";" NEW_LINE
@@ -275,21 +281,6 @@ extern int g_hasMMX;
#define IF0(y)
#define IF1(y) y
-// Should be confined to GCC, but its used to help manage Clang 3.4 compiler error.
-// Also see LLVM Bug 24232, http://llvm.org/bugs/show_bug.cgi?id=24232 .
-#ifndef INTEL_PREFIX
-#define INTEL_PREFIX
-#endif
-#ifndef INTEL_NOPREFIX
-#define INTEL_NOPREFIX
-#endif
-#ifndef ATT_PREFIX
-#define ATT_PREFIX
-#endif
-#ifndef ATT_NOPREFIX
-#define ATT_NOPREFIX
-#endif
-
#ifdef CRYPTOPP_GENERATE_X64_MASM
#define ASM_MOD(x, y) ((x) MOD (y))
#define XMMWORD_PTR XMMWORD PTR
@@ -420,6 +411,7 @@ extern int g_hasMMX;
ASL(labelPrefix##9)\
AS2( add outputPtr, increment*16)
+#endif // X86/X32/X64
#if defined(TC_WINDOWS_DRIVER) || defined (_UEFI)
#ifdef __cplusplus
diff --git a/src/Crypto/sha256-x64-nayuki.S b/src/Crypto/sha256-x64-nayuki.S
new file mode 100644
index 0000000..444b28c
--- /dev/null
+++ b/src/Crypto/sha256-x64-nayuki.S
@@ -0,0 +1,6 @@
+
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif \ No newline at end of file
diff --git a/src/Crypto/sha256-x86-nayuki.S b/src/Crypto/sha256-x86-nayuki.S
new file mode 100644
index 0000000..067496b
--- /dev/null
+++ b/src/Crypto/sha256-x86-nayuki.S
@@ -0,0 +1,168 @@
+/*
+ * SHA-256 hash in x86 assembly
+ *
+ * Copyright (c) 2014 Project Nayuki. (MIT License)
+ * https://www.nayuki.io/page/fast-sha2-hashes-in-x86-assembly
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ * - The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * - The Software is provided "as is", without warranty of any kind, express or
+ * implied, including but not limited to the warranties of merchantability,
+ * fitness for a particular purpose and noninfringement. In no event shall the
+ * authors or copyright holders be liable for any claim, damages or other
+ * liability, whether in an action of contract, tort or otherwise, arising from,
+ * out of or in connection with the Software or the use or other dealings in the
+ * Software.
+ */
+
+
+/* void sha256_compress_nayuki(uint32_t state[8], const uint8_t block[64]) */
+
+ .ifdef MS_STDCALL
+ .globl _sha256_compress_nayuki@8
+ _sha256_compress_nayuki@8:
+ .else
+ .globl sha256_compress_nayuki
+ .globl _sha256_compress_nayuki
+ sha256_compress_nayuki:
+ _sha256_compress_nayuki:
+ .endif
+
+ /*
+ * Storage usage:
+ * Bytes Location Description
+ * 4 eax Temporary for calculation per round
+ * 4 ebx Temporary for calculation per round
+ * 4 ecx Temporary for calculation per round
+ * 4 edx Temporary for calculation per round
+ * 4 ebp Temporary for calculation per round
+ * 4 esi (During state loading and update) base address of state array argument
+ * (During hash rounds) temporary for calculation per round
+ * 4 edi Base address of block array argument (during key schedule loading rounds only)
+ * 4 esp x86 stack pointer
+ * 32 [esp+ 0] SHA-256 state variables A,B,C,D,E,F,G,H (4 bytes each)
+ * 64 [esp+ 32] Key schedule of 16 * 4 bytes
+ * 4 [esp+ 96] Caller's value of ebx
+ * 4 [esp+100] Caller's value of esi
+ * 4 [esp+104] Caller's value of edi
+ * 4 [esp+108] Caller's value of ebp
+ */
+
+ subl $112, %esp
+ movl %ebx, 96(%esp)
+ movl %esi, 100(%esp)
+ movl %edi, 104(%esp)
+ movl %ebp, 108(%esp)
+
+
+ movl 116(%esp), %esi
+ movl 0(%esi), %eax; movl %eax, 0(%esp)
+ movl 4(%esi), %eax; movl %eax, 4(%esp)
+ movl 8(%esi), %eax; movl %eax, 8(%esp)
+ movl 12(%esi), %eax; movl %eax, 12(%esp)
+ movl 16(%esi), %eax; movl %eax, 16(%esp)
+ movl 20(%esi), %eax; movl %eax, 20(%esp)
+ movl 24(%esi), %eax; movl %eax, 24(%esp)
+ movl 28(%esi), %eax; movl %eax, 28(%esp)
+
+
+ movl 120(%esp), %edi
+ movl (0*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((0)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x428A2F98(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl (1*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((1)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x71374491(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl (2*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((2)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xB5C0FBCF(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl (3*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((3)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xE9B5DBA5(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl (4*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((4)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x3956C25B(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl (5*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((5)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x59F111F1(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl (6*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((6)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x923F82A4(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl (7*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((7)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xAB1C5ED5(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+ movl (8*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((8)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xD807AA98(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl (9*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((9)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x12835B01(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl (10*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((10)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x243185BE(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl (11*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((11)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x550C7DC3(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl (12*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((12)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x72BE5D74(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl (13*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((13)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x80DEB1FE(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl (14*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((14)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x9BDC06A7(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl (15*4)(%edi), %ebp; bswapl %ebp; movl %ebp, ((((15)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xC19BF174(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+ movl ((((16 -15)&0xF)+8)*4)(%esp), %eax; movl ((((16 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((16 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((16 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((16)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xE49B69C1(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl ((((17 -15)&0xF)+8)*4)(%esp), %eax; movl ((((17 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((17 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((17 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((17)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xEFBE4786(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl ((((18 -15)&0xF)+8)*4)(%esp), %eax; movl ((((18 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((18 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((18 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((18)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x0FC19DC6(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl ((((19 -15)&0xF)+8)*4)(%esp), %eax; movl ((((19 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((19 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((19 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((19)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x240CA1CC(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl ((((20 -15)&0xF)+8)*4)(%esp), %eax; movl ((((20 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((20 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((20 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((20)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x2DE92C6F(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl ((((21 -15)&0xF)+8)*4)(%esp), %eax; movl ((((21 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((21 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((21 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((21)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x4A7484AA(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl ((((22 -15)&0xF)+8)*4)(%esp), %eax; movl ((((22 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((22 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((22 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((22)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x5CB0A9DC(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl ((((23 -15)&0xF)+8)*4)(%esp), %eax; movl ((((23 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((23 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((23 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((23)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x76F988DA(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+ movl ((((24 -15)&0xF)+8)*4)(%esp), %eax; movl ((((24 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((24 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((24 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((24)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x983E5152(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl ((((25 -15)&0xF)+8)*4)(%esp), %eax; movl ((((25 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((25 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((25 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((25)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xA831C66D(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl ((((26 -15)&0xF)+8)*4)(%esp), %eax; movl ((((26 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((26 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((26 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((26)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xB00327C8(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl ((((27 -15)&0xF)+8)*4)(%esp), %eax; movl ((((27 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((27 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((27 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((27)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xBF597FC7(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl ((((28 -15)&0xF)+8)*4)(%esp), %eax; movl ((((28 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((28 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((28 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((28)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xC6E00BF3(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl ((((29 -15)&0xF)+8)*4)(%esp), %eax; movl ((((29 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((29 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((29 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((29)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xD5A79147(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl ((((30 -15)&0xF)+8)*4)(%esp), %eax; movl ((((30 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((30 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((30 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((30)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x06CA6351(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl ((((31 -15)&0xF)+8)*4)(%esp), %eax; movl ((((31 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((31 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((31 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((31)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x14292967(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+ movl ((((32 -15)&0xF)+8)*4)(%esp), %eax; movl ((((32 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((32 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((32 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((32)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x27B70A85(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl ((((33 -15)&0xF)+8)*4)(%esp), %eax; movl ((((33 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((33 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((33 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((33)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x2E1B2138(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl ((((34 -15)&0xF)+8)*4)(%esp), %eax; movl ((((34 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((34 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((34 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((34)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x4D2C6DFC(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl ((((35 -15)&0xF)+8)*4)(%esp), %eax; movl ((((35 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((35 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((35 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((35)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x53380D13(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl ((((36 -15)&0xF)+8)*4)(%esp), %eax; movl ((((36 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((36 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((36 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((36)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x650A7354(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl ((((37 -15)&0xF)+8)*4)(%esp), %eax; movl ((((37 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((37 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((37 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((37)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x766A0ABB(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl ((((38 -15)&0xF)+8)*4)(%esp), %eax; movl ((((38 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((38 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((38 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((38)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x81C2C92E(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl ((((39 -15)&0xF)+8)*4)(%esp), %eax; movl ((((39 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((39 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((39 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((39)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x92722C85(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+ movl ((((40 -15)&0xF)+8)*4)(%esp), %eax; movl ((((40 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((40 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((40 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((40)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xA2BFE8A1(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl ((((41 -15)&0xF)+8)*4)(%esp), %eax; movl ((((41 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((41 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((41 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((41)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xA81A664B(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl ((((42 -15)&0xF)+8)*4)(%esp), %eax; movl ((((42 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((42 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((42 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((42)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xC24B8B70(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl ((((43 -15)&0xF)+8)*4)(%esp), %eax; movl ((((43 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((43 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((43 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((43)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xC76C51A3(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl ((((44 -15)&0xF)+8)*4)(%esp), %eax; movl ((((44 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((44 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((44 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((44)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xD192E819(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl ((((45 -15)&0xF)+8)*4)(%esp), %eax; movl ((((45 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((45 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((45 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((45)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xD6990624(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl ((((46 -15)&0xF)+8)*4)(%esp), %eax; movl ((((46 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((46 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((46 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((46)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xF40E3585(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl ((((47 -15)&0xF)+8)*4)(%esp), %eax; movl ((((47 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((47 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((47 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((47)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x106AA070(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+ movl ((((48 -15)&0xF)+8)*4)(%esp), %eax; movl ((((48 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((48 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((48 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((48)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x19A4C116(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl ((((49 -15)&0xF)+8)*4)(%esp), %eax; movl ((((49 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((49 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((49 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((49)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x1E376C08(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl ((((50 -15)&0xF)+8)*4)(%esp), %eax; movl ((((50 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((50 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((50 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((50)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x2748774C(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl ((((51 -15)&0xF)+8)*4)(%esp), %eax; movl ((((51 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((51 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((51 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((51)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x34B0BCB5(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl ((((52 -15)&0xF)+8)*4)(%esp), %eax; movl ((((52 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((52 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((52 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((52)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x391C0CB3(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl ((((53 -15)&0xF)+8)*4)(%esp), %eax; movl ((((53 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((53 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((53 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((53)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x4ED8AA4A(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl ((((54 -15)&0xF)+8)*4)(%esp), %eax; movl ((((54 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((54 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((54 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((54)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x5B9CCA4F(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl ((((55 -15)&0xF)+8)*4)(%esp), %eax; movl ((((55 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((55 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((55 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((55)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x682E6FF3(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+ movl ((((56 -15)&0xF)+8)*4)(%esp), %eax; movl ((((56 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((56 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((56 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((56)&0xF)+8)*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (7*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (6*4)(%esp), %ebx; movl (5*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x748F82EE(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (3*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (2*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (1*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (7*4)(%esp);
+ movl ((((57 -15)&0xF)+8)*4)(%esp), %eax; movl ((((57 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((57 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((57 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((57)&0xF)+8)*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (6*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (5*4)(%esp), %ebx; movl (4*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x78A5636F(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (2*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (1*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (0*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (6*4)(%esp);
+ movl ((((58 -15)&0xF)+8)*4)(%esp), %eax; movl ((((58 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((58 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((58 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((58)&0xF)+8)*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (5*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (4*4)(%esp), %ebx; movl (3*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x84C87814(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (1*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (0*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (7*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (5*4)(%esp);
+ movl ((((59 -15)&0xF)+8)*4)(%esp), %eax; movl ((((59 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((59 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((59 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((59)&0xF)+8)*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (4*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (3*4)(%esp), %ebx; movl (2*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x8CC70208(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (0*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (7*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (6*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (4*4)(%esp);
+ movl ((((60 -15)&0xF)+8)*4)(%esp), %eax; movl ((((60 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((60 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((60 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((60)&0xF)+8)*4)(%esp); movl (0*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (3*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (2*4)(%esp), %ebx; movl (1*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0x90BEFFFA(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (7*4)(%esp); movl (4*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (6*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (5*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (3*4)(%esp);
+ movl ((((61 -15)&0xF)+8)*4)(%esp), %eax; movl ((((61 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((61 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((61 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((61)&0xF)+8)*4)(%esp); movl (7*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (2*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (1*4)(%esp), %ebx; movl (0*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xA4506CEB(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (6*4)(%esp); movl (3*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (5*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (4*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (2*4)(%esp);
+ movl ((((62 -15)&0xF)+8)*4)(%esp), %eax; movl ((((62 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((62 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((62 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((62)&0xF)+8)*4)(%esp); movl (6*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (1*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (0*4)(%esp), %ebx; movl (7*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xBEF9A3F7(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (5*4)(%esp); movl (2*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (4*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (3*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (1*4)(%esp);
+ movl ((((63 -15)&0xF)+8)*4)(%esp), %eax; movl ((((63 -16)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ebx; addl ((((63 - 7)&0xF)+8)*4)(%esp), %ebp; movl %eax, %ecx; rorl $18, %ebx; shrl $3, %ecx; rorl $7, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl ((((63 - 2)&0xF)+8)*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; rorl $19, %ebx; shrl $10, %ecx; rorl $17, %eax; xorl %ecx, %ebx; xorl %ebx, %eax; addl %eax, %ebp; movl %ebp, ((((63)&0xF)+8)*4)(%esp); movl (5*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $11, %eax; rorl $25, %ebx; rorl $6, %ecx; movl (0*4)(%esp), %esi; xorl %ebx, %eax; xorl %eax, %ecx; addl %ebp, %esi; movl (7*4)(%esp), %ebx; movl (6*4)(%esp), %eax; xorl %ebx, %eax; andl %edx, %eax; xorl %ebx, %eax; leal 0xC67178F2(%ecx,%eax), %ecx; addl %ecx, %esi; addl %esi, (4*4)(%esp); movl (1*4)(%esp), %eax; movl %eax, %ebx; movl %eax, %ecx; movl %eax, %edx; rorl $13, %eax; rorl $22, %ebx; rorl $2, %ecx; xorl %ebx, %eax; xorl %eax, %ecx; movl (3*4)(%esp), %eax; addl %ecx, %esi; movl %eax, %ecx; movl (2*4)(%esp), %ebx; orl %ebx, %ecx; andl %ebx, %eax; andl %edx, %ecx; orl %eax, %ecx; addl %ecx, %esi; movl %esi, (0*4)(%esp);
+
+
+ movl 116(%esp), %esi
+ movl 0(%esp), %eax; addl %eax, 0(%esi)
+ movl 4(%esp), %eax; addl %eax, 4(%esi)
+ movl 8(%esp), %eax; addl %eax, 8(%esi)
+ movl 12(%esp), %eax; addl %eax, 12(%esi)
+ movl 16(%esp), %eax; addl %eax, 16(%esi)
+ movl 20(%esp), %eax; addl %eax, 20(%esi)
+ movl 24(%esp), %eax; addl %eax, 24(%esi)
+ movl 28(%esp), %eax; addl %eax, 28(%esi)
+
+
+ movl 96(%esp), %ebx
+ movl 100(%esp), %esi
+ movl 104(%esp), %edi
+ movl 108(%esp), %ebp
+ addl $112, %esp
+ .ifdef MS_STDCALL
+ ret $8
+ .else
+ retl
+ .endif
+
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif \ No newline at end of file
diff --git a/src/Crypto/sha256_avx1_x64.asm b/src/Crypto/sha256_avx1_x64.asm
new file mode 100644
index 0000000..5c4ce55
--- /dev/null
+++ b/src/Crypto/sha256_avx1_x64.asm
@@ -0,0 +1,596 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Copyright (c) 2012, Intel Corporation
+;
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are
+; met:
+;
+; * Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+;
+; * Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the
+; distribution.
+;
+; * Neither the name of the Intel Corporation nor the names of its
+; contributors may be used to endorse or promote products derived from
+; this software without specific prior written permission.
+;
+;
+; THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY
+; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; Example YASM command lines:
+; Windows: yasm -Xvc -f x64 -rnasm -pnasm -o sha256_avx1.obj -g cv8 sha256_avx1.asm
+; Linux: yasm -f x64 -f elf64 -X gnu -g dwarf2 -D LINUX -o sha256_avx1.o sha256_avx1.asm
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; This code is described in an Intel White-Paper:
+; "Fast SHA-256 Implementations on Intel Architecture Processors"
+;
+; To find it, surf to http://www.intel.com/p/en_US/embedded
+; and search for that title.
+; The paper is expected to be released roughly at the end of April, 2012
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; This code schedules 1 blocks at a time, with 4 lanes per block
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+%define VMOVDQ vmovdqu ;; assume buffers not aligned
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Define Macros
+
+; addm [mem], reg
+; Add reg to mem using reg-mem add and store
+%macro addm 2
+ add %2, %1
+ mov %1, %2
+%endm
+
+%macro MY_ROR 2
+ shld %1,%1,(32-(%2))
+%endm
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; COPY_XMM_AND_BSWAP xmm, [mem], byte_flip_mask
+; Load xmm with mem and byte swap each dword
+%macro COPY_XMM_AND_BSWAP 3
+ VMOVDQ %1, %2
+ vpshufb %1, %1, %3
+%endmacro
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+%define X0 xmm4
+%define X1 xmm5
+%define X2 xmm6
+%define X3 xmm7
+
+%define XTMP0 xmm0
+%define XTMP1 xmm1
+%define XTMP2 xmm2
+%define XTMP3 xmm3
+%define XTMP4 xmm8
+%define XFER xmm9
+%define XTMP5 xmm11
+
+%define SHUF_00BA xmm10 ; shuffle xBxA -> 00BA
+%define SHUF_DC00 xmm12 ; shuffle xDxC -> DC00
+%define BYTE_FLIP_MASK xmm13
+
+%ifndef WINABI
+%define NUM_BLKS rdx ; 3rd arg
+%define CTX rsi ; 2nd arg
+%define INP rdi ; 1st arg
+
+%define SRND rdi ; clobbers INP
+%define c ecx
+%define d r8d
+%define e edx
+%else
+%define NUM_BLKS r8 ; 3rd arg
+%define CTX rdx ; 2nd arg
+%define INP rcx ; 1st arg
+
+%define SRND rcx ; clobbers INP
+%define c edi
+%define d esi
+%define e r8d
+
+%endif
+%define TBL rbp
+%define a eax
+%define b ebx
+
+%define f r9d
+%define g r10d
+%define h r11d
+
+%define y0 r13d
+%define y1 r14d
+%define y2 r15d
+
+
+_INP_END_SIZE equ 8
+_INP_SIZE equ 8
+_XFER_SIZE equ 8
+%ifndef WINABI
+_XMM_SAVE_SIZE equ 0
+%else
+_XMM_SAVE_SIZE equ 8*16
+%endif
+; STACK_SIZE plus pushes must be an odd multiple of 8
+_ALIGN_SIZE equ 8
+
+_INP_END equ 0
+_INP equ _INP_END + _INP_END_SIZE
+_XFER equ _INP + _INP_SIZE
+_XMM_SAVE equ _XFER + _XFER_SIZE + _ALIGN_SIZE
+STACK_SIZE equ _XMM_SAVE + _XMM_SAVE_SIZE
+
+; rotate_Xs
+; Rotate values of symbols X0...X3
+%macro rotate_Xs 0
+%xdefine X_ X0
+%xdefine X0 X1
+%xdefine X1 X2
+%xdefine X2 X3
+%xdefine X3 X_
+%endm
+
+; ROTATE_ARGS
+; Rotate values of symbols a...h
+%macro ROTATE_ARGS 0
+%xdefine TMP_ h
+%xdefine h g
+%xdefine g f
+%xdefine f e
+%xdefine e d
+%xdefine d c
+%xdefine c b
+%xdefine b a
+%xdefine a TMP_
+%endm
+
+%macro FOUR_ROUNDS_AND_SCHED 0
+ ;; compute s0 four at a time and s1 two at a time
+ ;; compute W[-16] + W[-7] 4 at a time
+ ;vmovdqa XTMP0, X3
+ mov y0, e ; y0 = e
+ MY_ROR y0, (25-11) ; y0 = e >> (25-11)
+ mov y1, a ; y1 = a
+ vpalignr XTMP0, X3, X2, 4 ; XTMP0 = W[-7]
+ MY_ROR y1, (22-13) ; y1 = a >> (22-13)
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ mov y2, f ; y2 = f
+ MY_ROR y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ ;vmovdqa XTMP1, X1
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ xor y2, g ; y2 = f^g
+ vpaddd XTMP0, XTMP0, X0 ; XTMP0 = W[-7] + W[-16]
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+ MY_ROR y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ ;; compute s0
+ vpalignr XTMP1, X1, X0, 4 ; XTMP1 = W[-15]
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ MY_ROR y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+
+
+ MY_ROR y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, y0 ; y2 = S1 + CH
+ add y2, [rsp + _XFER + 0*4] ; y2 = k + w + S1 + CH
+
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+
+ vpsrld XTMP2, XTMP1, 7
+
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+
+ vpslld XTMP3, XTMP1, (32-7)
+
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+
+ vpor XTMP3, XTMP3, XTMP2 ; XTMP1 = W[-15] MY_ROR 7
+
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+
+ mov y0, e ; y0 = e
+ mov y1, a ; y1 = a
+
+
+ MY_ROR y0, (25-11) ; y0 = e >> (25-11)
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ mov y2, f ; y2 = f
+ MY_ROR y1, (22-13) ; y1 = a >> (22-13)
+
+ vpsrld XTMP2, XTMP1,18
+
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ MY_ROR y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ xor y2, g ; y2 = f^g
+
+ vpsrld XTMP4, XTMP1, 3 ; XTMP4 = W[-15] >> 3
+
+ MY_ROR y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+ MY_ROR y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+
+ vpslld XTMP1, XTMP1, (32-18)
+
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+
+ vpxor XTMP3, XTMP3, XTMP1
+
+ add y2, y0 ; y2 = S1 + CH
+ add y2, [rsp + _XFER + 1*4] ; y2 = k + w + S1 + CH
+ MY_ROR y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+
+ vpxor XTMP3, XTMP3, XTMP2 ; XTMP1 = W[-15] MY_ROR 7 ^ W[-15] MY_ROR 18
+
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+
+ vpxor XTMP1, XTMP3, XTMP4 ; XTMP1 = s0
+
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ ;; compute low s1
+ vpshufd XTMP2, X3, 11111010b ; XTMP2 = W[-2] {BBAA}
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ vpaddd XTMP0, XTMP0, XTMP1 ; XTMP0 = W[-16] + W[-7] + s0
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+ ;vmovdqa XTMP3, XTMP2 ; XTMP3 = W[-2] {BBAA}
+
+ mov y0, e ; y0 = e
+ mov y1, a ; y1 = a
+ MY_ROR y0, (25-11) ; y0 = e >> (25-11)
+
+ ;vmovdqa XTMP4, XTMP2 ; XTMP4 = W[-2] {BBAA}
+
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ MY_ROR y1, (22-13) ; y1 = a >> (22-13)
+ mov y2, f ; y2 = f
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ MY_ROR y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+
+ vpsrld XTMP4, XTMP2, 10 ; XTMP4 = W[-2] >> 10 {BBAA}
+
+ xor y2, g ; y2 = f^g
+
+ vpsrlq XTMP3, XTMP2, 19 ; XTMP3 = W[-2] MY_ROR 19 {xBxA}
+
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+
+ vpsrlq XTMP2, XTMP2, 17 ; XTMP2 = W[-2] MY_ROR 17 {xBxA}
+
+ MY_ROR y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+ MY_ROR y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ vpxor XTMP2, XTMP2, XTMP3
+ add y2, y0 ; y2 = S1 + CH
+ MY_ROR y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, [rsp + _XFER + 2*4] ; y2 = k + w + S1 + CH
+ vpxor XTMP4, XTMP4, XTMP2 ; XTMP4 = s1 {xBxA}
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ vpshufb XTMP4, XTMP4, SHUF_00BA ; XTMP4 = s1 {00BA}
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ vpaddd XTMP0, XTMP0, XTMP4 ; XTMP0 = {..., ..., W[1], W[0]}
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ ;; compute high s1
+ vpshufd XTMP2, XTMP0, 01010000b ; XTMP2 = W[-2] {DDCC}
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+ ;vmovdqa XTMP3, XTMP2 ; XTMP3 = W[-2] {DDCC}
+ mov y0, e ; y0 = e
+ MY_ROR y0, (25-11) ; y0 = e >> (25-11)
+ mov y1, a ; y1 = a
+ ;vmovdqa XTMP5, XTMP2 ; XTMP5 = W[-2] {DDCC}
+ MY_ROR y1, (22-13) ; y1 = a >> (22-13)
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ mov y2, f ; y2 = f
+ MY_ROR y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+
+ vpsrld XTMP5, XTMP2, 10 ; XTMP5 = W[-2] >> 10 {DDCC}
+
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ xor y2, g ; y2 = f^g
+
+ vpsrlq XTMP3, XTMP2, 19 ; XTMP3 = W[-2] MY_ROR 19 {xDxC}
+
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+ MY_ROR y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+
+ vpsrlq XTMP2, XTMP2, 17 ; XTMP2 = W[-2] MY_ROR 17 {xDxC}
+
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ MY_ROR y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+
+ vpxor XTMP2, XTMP2, XTMP3
+
+ MY_ROR y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, y0 ; y2 = S1 + CH
+ add y2, [rsp + _XFER + 3*4] ; y2 = k + w + S1 + CH
+ vpxor XTMP5, XTMP5, XTMP2 ; XTMP5 = s1 {xDxC}
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ vpshufb XTMP5, XTMP5, SHUF_DC00 ; XTMP5 = s1 {DC00}
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ vpaddd X0, XTMP5, XTMP0 ; X0 = {W[3], W[2], W[1], W[0]}
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+rotate_Xs
+%endm
+
+;; input is [rsp + _XFER + %1 * 4]
+%macro DO_ROUND 1
+ mov y0, e ; y0 = e
+ MY_ROR y0, (25-11) ; y0 = e >> (25-11)
+ mov y1, a ; y1 = a
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ MY_ROR y1, (22-13) ; y1 = a >> (22-13)
+ mov y2, f ; y2 = f
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ MY_ROR y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ xor y2, g ; y2 = f^g
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ MY_ROR y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ and y2, e ; y2 = (f^g)&e
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ MY_ROR y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+ add y2, y0 ; y2 = S1 + CH
+ MY_ROR y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, [rsp + _XFER + %1 * 4] ; y2 = k + w + S1 + CH
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+ ROTATE_ARGS
+%endm
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; void sha256_avx(void *input_data, UINT32 digest[8], UINT64 num_blks)
+;; arg 1 : pointer to input data
+;; arg 2 : pointer to digest
+;; arg 3 : Num blocks
+section .text
+global sha256_avx
+align 32
+sha256_avx:
+ push rbx
+%ifdef WINABI
+ push rsi
+ push rdi
+%endif
+ push rbp
+ push r13
+ push r14
+ push r15
+
+ sub rsp,STACK_SIZE
+%ifdef WINABI
+ vmovdqa [rsp + _XMM_SAVE + 0*16],xmm6
+ vmovdqa [rsp + _XMM_SAVE + 1*16],xmm7
+ vmovdqa [rsp + _XMM_SAVE + 2*16],xmm8
+ vmovdqa [rsp + _XMM_SAVE + 3*16],xmm9
+ vmovdqa [rsp + _XMM_SAVE + 4*16],xmm10
+ vmovdqa [rsp + _XMM_SAVE + 5*16],xmm11
+ vmovdqa [rsp + _XMM_SAVE + 6*16],xmm12
+ vmovdqa [rsp + _XMM_SAVE + 7*16],xmm13
+%endif
+
+ shl NUM_BLKS, 6 ; convert to bytes
+ jz done_hash
+ add NUM_BLKS, INP ; pointer to end of data
+ mov [rsp + _INP_END], NUM_BLKS
+
+ ;; load initial digest
+ mov a,[4*0 + CTX]
+ mov b,[4*1 + CTX]
+ mov c,[4*2 + CTX]
+ mov d,[4*3 + CTX]
+ mov e,[4*4 + CTX]
+ mov f,[4*5 + CTX]
+ mov g,[4*6 + CTX]
+ mov h,[4*7 + CTX]
+
+ vmovdqa BYTE_FLIP_MASK, [PSHUFFLE_BYTE_FLIP_MASK wrt rip]
+ vmovdqa SHUF_00BA, [_SHUF_00BA wrt rip]
+ vmovdqa SHUF_DC00, [_SHUF_DC00 wrt rip]
+
+loop0:
+ lea TBL,[K256 wrt rip]
+
+ ;; byte swap first 16 dwords
+ COPY_XMM_AND_BSWAP X0, [INP + 0*16], BYTE_FLIP_MASK
+ COPY_XMM_AND_BSWAP X1, [INP + 1*16], BYTE_FLIP_MASK
+ COPY_XMM_AND_BSWAP X2, [INP + 2*16], BYTE_FLIP_MASK
+ COPY_XMM_AND_BSWAP X3, [INP + 3*16], BYTE_FLIP_MASK
+
+ mov [rsp + _INP], INP
+
+ ;; schedule 48 input dwords, by doing 3 rounds of 16 each
+ mov SRND, 3
+align 16
+loop1:
+ vpaddd XFER, X0, [TBL + 0*16]
+ vmovdqa [rsp + _XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ vpaddd XFER, X0, [TBL + 1*16]
+ vmovdqa [rsp + _XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ vpaddd XFER, X0, [TBL + 2*16]
+ vmovdqa [rsp + _XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ vpaddd XFER, X0, [TBL + 3*16]
+ vmovdqa [rsp + _XFER], XFER
+ add TBL, 4*16
+ FOUR_ROUNDS_AND_SCHED
+
+ sub SRND, 1
+ jne loop1
+
+ mov SRND, 2
+loop2:
+ vpaddd XFER, X0, [TBL + 0*16]
+ vmovdqa [rsp + _XFER], XFER
+ DO_ROUND 0
+ DO_ROUND 1
+ DO_ROUND 2
+ DO_ROUND 3
+
+ vpaddd XFER, X1, [TBL + 1*16]
+ vmovdqa [rsp + _XFER], XFER
+ add TBL, 2*16
+ DO_ROUND 0
+ DO_ROUND 1
+ DO_ROUND 2
+ DO_ROUND 3
+
+ vmovdqa X0, X2
+ vmovdqa X1, X3
+
+ sub SRND, 1
+ jne loop2
+
+
+ addm [4*0 + CTX],a
+ addm [4*1 + CTX],b
+ addm [4*2 + CTX],c
+ addm [4*3 + CTX],d
+ addm [4*4 + CTX],e
+ addm [4*5 + CTX],f
+ addm [4*6 + CTX],g
+ addm [4*7 + CTX],h
+
+ mov INP, [rsp + _INP]
+ add INP, 64
+ cmp INP, [rsp + _INP_END]
+ jne loop0
+
+done_hash:
+%ifdef WINABI
+ vmovdqa xmm6,[rsp + _XMM_SAVE + 0*16]
+ vmovdqa xmm7,[rsp + _XMM_SAVE + 1*16]
+ vmovdqa xmm8,[rsp + _XMM_SAVE + 2*16]
+ vmovdqa xmm9,[rsp + _XMM_SAVE + 3*16]
+ vmovdqa xmm10,[rsp + _XMM_SAVE + 4*16]
+ vmovdqa xmm11,[rsp + _XMM_SAVE + 5*16]
+ vmovdqa xmm12,[rsp + _XMM_SAVE + 6*16]
+ vmovdqa xmm13,[rsp + _XMM_SAVE + 7*16]
+%endif
+
+
+ add rsp, STACK_SIZE
+
+ pop r15
+ pop r14
+ pop r13
+ pop rbp
+%ifdef WINABI
+ pop rdi
+ pop rsi
+%endif
+ pop rbx
+
+ ret
+
+
+section .data
+align 64
+K256:
+ dd 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+ dd 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+ dd 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+ dd 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+ dd 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+ dd 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+ dd 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+ dd 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+ dd 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+ dd 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+ dd 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+ dd 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+ dd 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+ dd 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+ dd 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+ dd 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+
+PSHUFFLE_BYTE_FLIP_MASK: ddq 0x0c0d0e0f08090a0b0405060700010203
+
+; shuffle xBxA -> 00BA
+_SHUF_00BA: ddq 0xFFFFFFFFFFFFFFFF0b0a090803020100
+
+; shuffle xDxC -> DC00
+_SHUF_DC00: ddq 0x0b0a090803020100FFFFFFFFFFFFFFFF
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha256_avx1_x86.asm b/src/Crypto/sha256_avx1_x86.asm
new file mode 100644
index 0000000..31c8bd0
--- /dev/null
+++ b/src/Crypto/sha256_avx1_x86.asm
@@ -0,0 +1,10 @@
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha256_avx2_x64.asm b/src/Crypto/sha256_avx2_x64.asm
new file mode 100644
index 0000000..458c294
--- /dev/null
+++ b/src/Crypto/sha256_avx2_x64.asm
@@ -0,0 +1,840 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Copyright (c) 2012, Intel Corporation
+;
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are
+; met:
+;
+; * Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+;
+; * Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the
+; distribution.
+;
+; * Neither the name of the Intel Corporation nor the names of its
+; contributors may be used to endorse or promote products derived from
+; this software without specific prior written permission.
+;
+;
+; THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY
+; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; Example YASM command lines:
+; Windows: yasm -Xvc -f x64 -rnasm -pnasm -o sha256_avx2_rorx2.obj -g cv8 sha256_avx2_rorx2.asm
+; Linux: yasm -f x64 -f elf64 -X gnu -g dwarf2 -D LINUX -o sha256_avx2_rorx2.o sha256_avx2_rorx2.asm
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; This code is described in an Intel White-Paper:
+; "Fast SHA-256 Implementations on Intel Architecture Processors"
+;
+; To find it, surf to http://www.intel.com/p/en_US/embedded
+; and search for that title.
+; The paper is expected to be released roughly at the end of April, 2012
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; This code schedules 2 blocks at a time, with 4 lanes per block
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; Modified by kerukuro for use in cppcrypto.
+
+%define VMOVDQ vmovdqu ;; assume buffers not aligned
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Define Macros
+
+; addm [mem], reg
+; Add reg to mem using reg-mem add and store
+%macro addm 2
+ add %2, %1
+ mov %1, %2
+%endm
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+%define X0 ymm4
+%define X1 ymm5
+%define X2 ymm6
+%define X3 ymm7
+
+; XMM versions of above
+%define XWORD0 xmm4
+%define XWORD1 xmm5
+%define XWORD2 xmm6
+%define XWORD3 xmm7
+
+%define XTMP0 ymm0
+%define XTMP1 ymm1
+%define XTMP2 ymm2
+%define XTMP3 ymm3
+%define XTMP4 ymm8
+%define XFER ymm9
+%define XTMP5 ymm11
+
+%define SHUF_00BA ymm10 ; shuffle xBxA -> 00BA
+%define SHUF_DC00 ymm12 ; shuffle xDxC -> DC00
+%define BYTE_FLIP_MASK ymm13
+
+%define X_BYTE_FLIP_MASK xmm13 ; XMM version of BYTE_FLIP_MASK
+
+%ifndef WINABI
+%define NUM_BLKS rdx ; 3rd arg
+%define CTX rsi ; 2nd arg
+%define INP rdi ; 1st arg
+%define c ecx
+%define d r8d
+%define e edx ; clobbers NUM_BLKS
+%define y3 edi ; clobbers INP
+%else
+%define NUM_BLKS r8 ; 3rd arg
+%define CTX rdx ; 2nd arg
+%define INP rcx ; 1st arg
+%define c edi
+%define d esi
+%define e r8d ; clobbers NUM_BLKS
+%define y3 ecx ; clobbers INP
+
+%endif
+
+
+%define TBL rbp
+%define SRND CTX ; SRND is same register as CTX
+
+%define a eax
+%define b ebx
+%define f r9d
+%define g r10d
+%define h r11d
+%define old_h r11d
+
+%define T1 r12d
+%define y0 r13d
+%define y1 r14d
+%define y2 r15d
+
+
+_XFER_SIZE equ 2*64*4 ; 2 blocks, 64 rounds, 4 bytes/round
+%ifndef WINABI
+_XMM_SAVE_SIZE equ 0
+%else
+_XMM_SAVE_SIZE equ 8*16
+%endif
+_INP_END_SIZE equ 8
+_INP_SIZE equ 8
+_CTX_SIZE equ 8
+_RSP_SIZE equ 8
+
+_XFER equ 0
+_XMM_SAVE equ _XFER + _XFER_SIZE
+_INP_END equ _XMM_SAVE + _XMM_SAVE_SIZE
+_INP equ _INP_END + _INP_END_SIZE
+_CTX equ _INP + _INP_SIZE
+_RSP equ _CTX + _CTX_SIZE
+STACK_SIZE equ _RSP + _RSP_SIZE
+
+; rotate_Xs
+; Rotate values of symbols X0...X3
+%macro rotate_Xs 0
+%xdefine X_ X0
+%xdefine X0 X1
+%xdefine X1 X2
+%xdefine X2 X3
+%xdefine X3 X_
+%endm
+
+; ROTATE_ARGS
+; Rotate values of symbols a...h
+%macro ROTATE_ARGS 0
+%xdefine old_h h
+%xdefine TMP_ h
+%xdefine h g
+%xdefine g f
+%xdefine f e
+%xdefine e d
+%xdefine d c
+%xdefine c b
+%xdefine b a
+%xdefine a TMP_
+%endm
+
+%macro FOUR_ROUNDS_AND_SCHED 1
+%define %%XFER %1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+
+ add h, dword[%%XFER+0*4] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+ vpalignr XTMP0, X3, X2, 4 ; XTMP0 = W[-7]
+ mov y2, f ; y2 = f ; CH
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ xor y2, g ; y2 = f^g ; CH
+ vpaddd XTMP0, XTMP0, X0 ; XTMP0 = W[-7] + W[-16]; y1 = (e >> 6) ; S1
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+
+ and y2, e ; y2 = (f^g)&e ; CH
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ add d, h ; d = k + w + h + d ; --
+
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ vpalignr XTMP1, X1, X0, 4 ; XTMP1 = W[-15]
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ vpsrld XTMP2, XTMP1, 7
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+
+ add y2, y0 ; y2 = S1 + CH ; --
+ vpslld XTMP3, XTMP1, (32-7)
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+ vpor XTMP3, XTMP3, XTMP2 ; XTMP3 = W[-15] ror 7
+
+ vpsrld XTMP2, XTMP1,18
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+
+ROTATE_ARGS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+ add h, dword[%%XFER+1*4] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+
+ vpsrld XTMP4, XTMP1, 3 ; XTMP4 = W[-15] >> 3
+ mov y2, f ; y2 = f ; CH
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ xor y2, g ; y2 = f^g ; CH
+
+
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ and y2, e ; y2 = (f^g)&e ; CH
+ add d, h ; d = k + w + h + d ; --
+
+ vpslld XTMP1, XTMP1, (32-18)
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+
+ vpxor XTMP3, XTMP3, XTMP1
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+
+ vpxor XTMP3, XTMP3, XTMP2 ; XTMP3 = W[-15] ror 7 ^ W[-15] ror 18
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+ vpxor XTMP1, XTMP3, XTMP4 ; XTMP1 = s0
+ vpshufd XTMP2, X3, 11111010b ; XTMP2 = W[-2] {BBAA}
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ vpaddd XTMP0, XTMP0, XTMP1 ; XTMP0 = W[-16] + W[-7] + s0
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ vpsrld XTMP4, XTMP2, 10 ; XTMP4 = W[-2] >> 10 {BBAA}
+
+
+ROTATE_ARGS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ add h, [%%XFER+2*4] ; h = k + w + h ; --
+
+ vpsrlq XTMP3, XTMP2, 19 ; XTMP3 = W[-2] ror 19 {xBxA}
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+ or y3, c ; y3 = a|c ; MAJA
+ mov y2, f ; y2 = f ; CH
+ xor y2, g ; y2 = f^g ; CH
+
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ vpsrlq XTMP2, XTMP2, 17 ; XTMP2 = W[-2] ror 17 {xBxA}
+ and y2, e ; y2 = (f^g)&e ; CH
+
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+ vpxor XTMP2, XTMP2, XTMP3
+ add d, h ; d = k + w + h + d ; --
+ and y3, b ; y3 = (a|c)&b ; MAJA
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ vpxor XTMP4, XTMP4, XTMP2 ; XTMP4 = s1 {xBxA}
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+
+ vpshufb XTMP4, XTMP4, SHUF_00BA ; XTMP4 = s1 {00BA}
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+ vpaddd XTMP0, XTMP0, XTMP4 ; XTMP0 = {..., ..., W[1], W[0]}
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+ vpshufd XTMP2, XTMP0, 01010000b ; XTMP2 = W[-2] {DDCC}
+
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+
+ROTATE_ARGS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+ add h, dword[%%XFER+3*4] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+
+ vpsrld XTMP5, XTMP2, 10 ; XTMP5 = W[-2] >> 10 {DDCC}
+ mov y2, f ; y2 = f ; CH
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ xor y2, g ; y2 = f^g ; CH
+
+
+ vpsrlq XTMP3, XTMP2, 19 ; XTMP3 = W[-2] ror 19 {xDxC}
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add d, h ; d = k + w + h + d ; --
+ and y3, b ; y3 = (a|c)&b ; MAJA
+
+ vpsrlq XTMP2, XTMP2, 17 ; XTMP2 = W[-2] ror 17 {xDxC}
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+
+ vpxor XTMP2, XTMP2, XTMP3
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ add y2, y0 ; y2 = S1 + CH ; --
+
+ vpxor XTMP5, XTMP5, XTMP2 ; XTMP5 = s1 {xDxC}
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+ vpshufb XTMP5, XTMP5, SHUF_DC00 ; XTMP5 = s1 {DC00}
+
+ vpaddd X0, XTMP5, XTMP0 ; X0 = {W[3], W[2], W[1], W[0]}
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+
+ add h, y1 ; h = k + w + h + S0 ; --
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ROTATE_ARGS
+rotate_Xs
+%endm
+
+%macro DO_4ROUNDS 1
+%define %%XFER %1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+ add h, dword[%%XFER + 4*0] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ ;add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+
+ ;add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ ROTATE_ARGS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ add old_h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add old_h, y3 ; h = t1 + S0 + MAJ ; --
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+ add h, dword[%%XFER + 4*1] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ ;add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+
+ ;add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ ROTATE_ARGS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ add old_h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add old_h, y3 ; h = t1 + S0 + MAJ ; --
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+ add h, dword[%%XFER + 4*2] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ ;add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+
+ ;add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ ROTATE_ARGS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ add old_h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 25 ; y0 = e >> 25 ; S1A
+ rorx y1, e, 11 ; y1 = e >> 11 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ; S1
+ rorx y1, e, 6 ; y1 = (e >> 6) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add old_h, y3 ; h = t1 + S0 + MAJ ; --
+
+ xor y0, y1 ; y0 = (e>>25) ^ (e>>11) ^ (e>>6) ; S1
+ rorx T1, a, 13 ; T1 = a >> 13 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 22 ; y1 = a >> 22 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ; S0
+ rorx T1, a, 2 ; T1 = (a >> 2) ; S0
+ add h, dword[%%XFER + 4*3] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>22) ^ (a>>13) ^ (a>>2) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0; --
+
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ ROTATE_ARGS
+
+%endm
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; void sha256_rorx(void *input_data, UINT32 digest[8], UINT64 num_blks)
+;; arg 1 : pointer to input data
+;; arg 2 : pointer to digest
+;; arg 3 : Num blocks
+section .text
+global sha256_rorx
+global _sha256_rorx
+align 32
+sha256_rorx:
+_sha256_rorx:
+ push rbx
+%ifdef WINABI
+ push rsi
+ push rdi
+%endif
+ push rbp
+ push r12
+ push r13
+ push r14
+ push r15
+
+ mov rax, rsp
+ sub rsp,STACK_SIZE
+ and rsp, -32
+ mov [rsp + _RSP], rax
+
+%ifdef WINABI
+ vmovdqa [rsp + _XMM_SAVE + 0*16],xmm6
+ vmovdqa [rsp + _XMM_SAVE + 1*16],xmm7
+ vmovdqa [rsp + _XMM_SAVE + 2*16],xmm8
+ vmovdqa [rsp + _XMM_SAVE + 3*16],xmm9
+ vmovdqa [rsp + _XMM_SAVE + 4*16],xmm10
+ vmovdqa [rsp + _XMM_SAVE + 5*16],xmm11
+ vmovdqa [rsp + _XMM_SAVE + 6*16],xmm12
+ vmovdqa [rsp + _XMM_SAVE + 7*16],xmm13
+%endif
+
+ shl NUM_BLKS, 6 ; convert to bytes
+ jz done_hash
+ lea NUM_BLKS, [NUM_BLKS + INP - 64] ; pointer to last block
+ mov [rsp + _INP_END], NUM_BLKS
+
+ cmp INP, NUM_BLKS
+ je only_one_block
+
+ ;; load initial digest
+ mov a,[4*0 + CTX]
+ mov b,[4*1 + CTX]
+ mov c,[4*2 + CTX]
+ mov d,[4*3 + CTX]
+ mov e,[4*4 + CTX]
+ mov f,[4*5 + CTX]
+ mov g,[4*6 + CTX]
+ mov h,[4*7 + CTX]
+
+ vmovdqa BYTE_FLIP_MASK, [PSHUFFLE_BYTE_FLIP_MASK wrt rip]
+ vmovdqa SHUF_00BA, [_SHUF_00BA wrt rip]
+ vmovdqa SHUF_DC00, [_SHUF_DC00 wrt rip]
+
+ mov [rsp + _CTX], CTX
+
+loop0:
+ lea TBL,[K256 wrt rip]
+
+ ;; Load first 16 dwords from two blocks
+ VMOVDQ XTMP0, [INP + 0*32]
+ VMOVDQ XTMP1, [INP + 1*32]
+ VMOVDQ XTMP2, [INP + 2*32]
+ VMOVDQ XTMP3, [INP + 3*32]
+
+ ;; byte swap data
+ vpshufb XTMP0, XTMP0, BYTE_FLIP_MASK
+ vpshufb XTMP1, XTMP1, BYTE_FLIP_MASK
+ vpshufb XTMP2, XTMP2, BYTE_FLIP_MASK
+ vpshufb XTMP3, XTMP3, BYTE_FLIP_MASK
+
+ ;; transpose data into high/low halves
+ vperm2i128 X0, XTMP0, XTMP2, 0x20
+ vperm2i128 X1, XTMP0, XTMP2, 0x31
+ vperm2i128 X2, XTMP1, XTMP3, 0x20
+ vperm2i128 X3, XTMP1, XTMP3, 0x31
+
+last_block_enter:
+ add INP, 64
+ mov [rsp + _INP], INP
+
+ ;; schedule 48 input dwords, by doing 3 rounds of 12 each
+ xor SRND, SRND
+
+align 16
+loop1:
+ vpaddd XFER, X0, [TBL + SRND + 0*32]
+ vmovdqa [rsp + _XFER + SRND + 0*32], XFER
+ FOUR_ROUNDS_AND_SCHED rsp + _XFER + SRND + 0*32
+
+ vpaddd XFER, X0, [TBL + SRND + 1*32]
+ vmovdqa [rsp + _XFER + SRND + 1*32], XFER
+ FOUR_ROUNDS_AND_SCHED rsp + _XFER + SRND + 1*32
+
+ vpaddd XFER, X0, [TBL + SRND + 2*32]
+ vmovdqa [rsp + _XFER + SRND + 2*32], XFER
+ FOUR_ROUNDS_AND_SCHED rsp + _XFER + SRND + 2*32
+
+ vpaddd XFER, X0, [TBL + SRND + 3*32]
+ vmovdqa [rsp + _XFER + SRND + 3*32], XFER
+ FOUR_ROUNDS_AND_SCHED rsp + _XFER + SRND + 3*32
+
+ add SRND, 4*32
+ cmp SRND, 3 * 4*32
+ jb loop1
+
+loop2:
+ ;; Do last 16 rounds with no scheduling
+ vpaddd XFER, X0, [TBL + SRND + 0*32]
+ vmovdqa [rsp + _XFER + SRND + 0*32], XFER
+ DO_4ROUNDS rsp + _XFER + SRND + 0*32
+ vpaddd XFER, X1, [TBL + SRND + 1*32]
+ vmovdqa [rsp + _XFER + SRND + 1*32], XFER
+ DO_4ROUNDS rsp + _XFER + SRND + 1*32
+ add SRND, 2*32
+
+ vmovdqa X0, X2
+ vmovdqa X1, X3
+
+ cmp SRND, 4 * 4*32
+ jb loop2
+
+ mov CTX, [rsp + _CTX]
+ mov INP, [rsp + _INP]
+
+ addm [4*0 + CTX],a
+ addm [4*1 + CTX],b
+ addm [4*2 + CTX],c
+ addm [4*3 + CTX],d
+ addm [4*4 + CTX],e
+ addm [4*5 + CTX],f
+ addm [4*6 + CTX],g
+ addm [4*7 + CTX],h
+
+ cmp INP, [rsp + _INP_END]
+ ja done_hash
+
+ ;;;; Do second block using previously scheduled results
+ xor SRND, SRND
+align 16
+loop3:
+ DO_4ROUNDS rsp + _XFER + SRND + 0*32 + 16
+ DO_4ROUNDS rsp + _XFER + SRND + 1*32 + 16
+ add SRND, 2*32
+ cmp SRND, 4 * 4*32
+ jb loop3
+
+ mov CTX, [rsp + _CTX]
+ mov INP, [rsp + _INP]
+ add INP, 64
+
+ addm [4*0 + CTX],a
+ addm [4*1 + CTX],b
+ addm [4*2 + CTX],c
+ addm [4*3 + CTX],d
+ addm [4*4 + CTX],e
+ addm [4*5 + CTX],f
+ addm [4*6 + CTX],g
+ addm [4*7 + CTX],h
+
+ cmp INP, [rsp + _INP_END]
+ jb loop0
+ ja done_hash
+
+do_last_block:
+ ;;;; do last block
+ lea TBL,[K256 wrt rip]
+
+ VMOVDQ XWORD0, [INP + 0*16]
+ VMOVDQ XWORD1, [INP + 1*16]
+ VMOVDQ XWORD2, [INP + 2*16]
+ VMOVDQ XWORD3, [INP + 3*16]
+
+ vpshufb XWORD0, XWORD0, X_BYTE_FLIP_MASK
+ vpshufb XWORD1, XWORD1, X_BYTE_FLIP_MASK
+ vpshufb XWORD2, XWORD2, X_BYTE_FLIP_MASK
+ vpshufb XWORD3, XWORD3, X_BYTE_FLIP_MASK
+
+ jmp last_block_enter
+
+only_one_block:
+
+ ;; load initial digest
+ mov a,[4*0 + CTX]
+ mov b,[4*1 + CTX]
+ mov c,[4*2 + CTX]
+ mov d,[4*3 + CTX]
+ mov e,[4*4 + CTX]
+ mov f,[4*5 + CTX]
+ mov g,[4*6 + CTX]
+ mov h,[4*7 + CTX]
+
+ vmovdqa BYTE_FLIP_MASK, [PSHUFFLE_BYTE_FLIP_MASK wrt rip]
+ vmovdqa SHUF_00BA, [_SHUF_00BA wrt rip]
+ vmovdqa SHUF_DC00, [_SHUF_DC00 wrt rip]
+
+ mov [rsp + _CTX], CTX
+ jmp do_last_block
+
+done_hash:
+%ifdef WINABI
+ vmovdqa xmm6,[rsp + _XMM_SAVE + 0*16]
+ vmovdqa xmm7,[rsp + _XMM_SAVE + 1*16]
+ vmovdqa xmm8,[rsp + _XMM_SAVE + 2*16]
+ vmovdqa xmm9,[rsp + _XMM_SAVE + 3*16]
+ vmovdqa xmm10,[rsp + _XMM_SAVE + 4*16]
+ vmovdqa xmm11,[rsp + _XMM_SAVE + 5*16]
+ vmovdqa xmm12,[rsp + _XMM_SAVE + 6*16]
+ vmovdqa xmm13,[rsp + _XMM_SAVE + 7*16]
+%endif
+
+ mov rsp, [rsp + _RSP]
+
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ pop rbp
+%ifdef WINABI
+ pop rdi
+ pop rsi
+%endif
+ pop rbx
+
+ ret
+
+section .data
+align 64
+K256:
+ dd 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+ dd 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+ dd 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+ dd 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+ dd 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+ dd 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+ dd 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+ dd 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+ dd 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+ dd 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+ dd 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+ dd 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+ dd 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+ dd 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+ dd 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+ dd 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+ dd 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+ dd 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+ dd 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+ dd 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+ dd 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+ dd 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+ dd 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+ dd 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+ dd 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+ dd 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+ dd 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+ dd 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+ dd 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+ dd 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+ dd 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+ dd 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+
+PSHUFFLE_BYTE_FLIP_MASK:
+ ddq 0x0c0d0e0f08090a0b0405060700010203,0x0c0d0e0f08090a0b0405060700010203
+
+; shuffle xBxA -> 00BA
+_SHUF_00BA:
+ ddq 0xFFFFFFFFFFFFFFFF0b0a090803020100,0xFFFFFFFFFFFFFFFF0b0a090803020100
+
+; shuffle xDxC -> DC00
+_SHUF_DC00:
+ ddq 0x0b0a090803020100FFFFFFFFFFFFFFFF,0x0b0a090803020100FFFFFFFFFFFFFFFF
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha256_avx2_x86.asm b/src/Crypto/sha256_avx2_x86.asm
new file mode 100644
index 0000000..31c8bd0
--- /dev/null
+++ b/src/Crypto/sha256_avx2_x86.asm
@@ -0,0 +1,10 @@
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha256_sse4_x64.asm b/src/Crypto/sha256_sse4_x64.asm
new file mode 100644
index 0000000..c11630b
--- /dev/null
+++ b/src/Crypto/sha256_sse4_x64.asm
@@ -0,0 +1,560 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Copyright (c) 2012, Intel Corporation
+;
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are
+; met:
+;
+; * Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+;
+; * Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the
+; distribution.
+;
+; * Neither the name of the Intel Corporation nor the names of its
+; contributors may be used to endorse or promote products derived from
+; this software without specific prior written permission.
+;
+;
+; THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY
+; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; Example YASM command lines:
+; Windows: yasm -Xvc -f x64 -rnasm -pnasm -o sha256_sse4.obj -g cv8 sha256_sse4.asm
+; Linux: yasm -f x64 -f elf64 -X gnu -g dwarf2 -D LINUX -o sha256_sse4.o sha256_sse4.asm
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; This code is described in an Intel White-Paper:
+; "Fast SHA-256 Implementations on Intel Architecture Processors"
+;
+; To find it, surf to http://www.intel.com/p/en_US/embedded
+; and search for that title.
+; The paper is expected to be released roughly at the end of April, 2012
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; This code schedules 1 blocks at a time, with 4 lanes per block
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; Modified by kerukuro for use in cppcrypto.
+
+; Modified By Mounir IDRASSI for use in VeraCrypt
+
+%define MOVDQ movdqu ;; assume buffers not aligned
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Define Macros
+
+; addm [mem], reg
+; Add reg to mem using reg-mem add and store
+%macro addm 2
+ add %2, %1
+ mov %1, %2
+%endm
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; COPY_XMM_AND_BSWAP xmm, [mem], byte_flip_mask
+; Load xmm with mem and byte swap each dword
+%macro COPY_XMM_AND_BSWAP 3
+ MOVDQ %1, %2
+ pshufb %1, %3
+%endmacro
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+%define X0 xmm4
+%define X1 xmm5
+%define X2 xmm6
+%define X3 xmm7
+
+%define XTMP0 xmm0
+%define XTMP1 xmm1
+%define XTMP2 xmm2
+%define XTMP3 xmm3
+%define XTMP4 xmm8
+%define XFER xmm9
+
+%define SHUF_00BA xmm10 ; shuffle xBxA -> 00BA
+%define SHUF_DC00 xmm11 ; shuffle xDxC -> DC00
+%define BYTE_FLIP_MASK xmm12
+
+%ifndef WINABI
+%define NUM_BLKS rdx ; 3rd arg
+%define CTX rsi ; 2nd arg
+%define INP rdi ; 1st arg
+
+%define SRND rdi ; clobbers INP
+%define c ecx
+%define d r8d
+%define e edx
+%else
+%define NUM_BLKS r8 ; 3rd arg
+%define CTX rdx ; 2nd arg
+%define INP rcx ; 1st arg
+
+%define SRND rcx ; clobbers INP
+%define c edi
+%define d esi
+%define e r8d
+
+%endif
+%define TBL rbp
+%define a eax
+%define b ebx
+
+%define f r9d
+%define g r10d
+%define h r11d
+
+%define y0 r13d
+%define y1 r14d
+%define y2 r15d
+
+
+
+_INP_END_SIZE equ 8
+_INP_SIZE equ 8
+_XFER_SIZE equ 8
+%ifndef WINABI
+_XMM_SAVE_SIZE equ 0
+%else
+_XMM_SAVE_SIZE equ 7*16
+%endif
+; STACK_SIZE plus pushes must be an odd multiple of 8
+_ALIGN_SIZE equ 8
+
+_INP_END equ 0
+_INP equ _INP_END + _INP_END_SIZE
+_XFER equ _INP + _INP_SIZE
+_XMM_SAVE equ _XFER + _XFER_SIZE + _ALIGN_SIZE
+STACK_SIZE equ _XMM_SAVE + _XMM_SAVE_SIZE
+
+; rotate_Xs
+; Rotate values of symbols X0...X3
+%macro rotate_Xs 0
+%xdefine X_ X0
+%xdefine X0 X1
+%xdefine X1 X2
+%xdefine X2 X3
+%xdefine X3 X_
+%endm
+
+; ROTATE_ARGS
+; Rotate values of symbols a...h
+%macro ROTATE_ARGS 0
+%xdefine TMP_ h
+%xdefine h g
+%xdefine g f
+%xdefine f e
+%xdefine e d
+%xdefine d c
+%xdefine c b
+%xdefine b a
+%xdefine a TMP_
+%endm
+
+%macro FOUR_ROUNDS_AND_SCHED 0
+ ;; compute s0 four at a time and s1 two at a time
+ ;; compute W[-16] + W[-7] 4 at a time
+ movdqa XTMP0, X3
+ mov y0, e ; y0 = e
+ ror y0, (25-11) ; y0 = e >> (25-11)
+ mov y1, a ; y1 = a
+ palignr XTMP0, X2, 4 ; XTMP0 = W[-7]
+ ror y1, (22-13) ; y1 = a >> (22-13)
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ mov y2, f ; y2 = f
+ ror y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ movdqa XTMP1, X1
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ xor y2, g ; y2 = f^g
+ paddd XTMP0, X0 ; XTMP0 = W[-7] + W[-16]
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+ ror y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ ;; compute s0
+ palignr XTMP1, X0, 4 ; XTMP1 = W[-15]
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ ror y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+ movdqa XTMP2, XTMP1 ; XTMP2 = W[-15]
+ ror y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, y0 ; y2 = S1 + CH
+ add y2, [rsp + _XFER + 0*4] ; y2 = k + w + S1 + CH
+ movdqa XTMP3, XTMP1 ; XTMP3 = W[-15]
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ pslld XTMP1, (32-7)
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ psrld XTMP2, 7
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ por XTMP1, XTMP2 ; XTMP1 = W[-15] ror 7
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+ movdqa XTMP2, XTMP3 ; XTMP2 = W[-15]
+ mov y0, e ; y0 = e
+ mov y1, a ; y1 = a
+ movdqa XTMP4, XTMP3 ; XTMP4 = W[-15]
+ ror y0, (25-11) ; y0 = e >> (25-11)
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ mov y2, f ; y2 = f
+ ror y1, (22-13) ; y1 = a >> (22-13)
+ pslld XTMP3, (32-18)
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ ror y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ xor y2, g ; y2 = f^g
+ psrld XTMP2, 18
+ ror y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+ ror y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ pxor XTMP1, XTMP3
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+ psrld XTMP4, 3 ; XTMP4 = W[-15] >> 3
+ add y2, y0 ; y2 = S1 + CH
+ add y2, [rsp + _XFER + 1*4] ; y2 = k + w + S1 + CH
+ ror y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ pxor XTMP1, XTMP2 ; XTMP1 = W[-15] ror 7 ^ W[-15] ror 18
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ pxor XTMP1, XTMP4 ; XTMP1 = s0
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ ;; compute low s1
+ pshufd XTMP2, X3, 11111010b ; XTMP2 = W[-2] {BBAA}
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ paddd XTMP0, XTMP1 ; XTMP0 = W[-16] + W[-7] + s0
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+ movdqa XTMP3, XTMP2 ; XTMP3 = W[-2] {BBAA}
+ mov y0, e ; y0 = e
+ mov y1, a ; y1 = a
+ ror y0, (25-11) ; y0 = e >> (25-11)
+ movdqa XTMP4, XTMP2 ; XTMP4 = W[-2] {BBAA}
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ ror y1, (22-13) ; y1 = a >> (22-13)
+ mov y2, f ; y2 = f
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ ror y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ psrlq XTMP2, 17 ; XTMP2 = W[-2] ror 17 {xBxA}
+ xor y2, g ; y2 = f^g
+ psrlq XTMP3, 19 ; XTMP3 = W[-2] ror 19 {xBxA}
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+ psrld XTMP4, 10 ; XTMP4 = W[-2] >> 10 {BBAA}
+ ror y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+ ror y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ pxor XTMP2, XTMP3
+ add y2, y0 ; y2 = S1 + CH
+ ror y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, [rsp + _XFER + 2*4] ; y2 = k + w + S1 + CH
+ pxor XTMP4, XTMP2 ; XTMP4 = s1 {xBxA}
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ pshufb XTMP4, SHUF_00BA ; XTMP4 = s1 {00BA}
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ paddd XTMP0, XTMP4 ; XTMP0 = {..., ..., W[1], W[0]}
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ ;; compute high s1
+ pshufd XTMP2, XTMP0, 01010000b ; XTMP2 = W[-2] {DDCC}
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+ movdqa XTMP3, XTMP2 ; XTMP3 = W[-2] {DDCC}
+ mov y0, e ; y0 = e
+ ror y0, (25-11) ; y0 = e >> (25-11)
+ mov y1, a ; y1 = a
+ movdqa X0, XTMP2 ; X0 = W[-2] {DDCC}
+ ror y1, (22-13) ; y1 = a >> (22-13)
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ mov y2, f ; y2 = f
+ ror y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ psrlq XTMP2, 17 ; XTMP2 = W[-2] ror 17 {xDxC}
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ xor y2, g ; y2 = f^g
+ psrlq XTMP3, 19 ; XTMP3 = W[-2] ror 19 {xDxC}
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ and y2, e ; y2 = (f^g)&e
+ ror y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ psrld X0, 10 ; X0 = W[-2] >> 10 {DDCC}
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ ror y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+ pxor XTMP2, XTMP3
+ ror y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, y0 ; y2 = S1 + CH
+ add y2, [rsp + _XFER + 3*4] ; y2 = k + w + S1 + CH
+ pxor X0, XTMP2 ; X0 = s1 {xDxC}
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ pshufb X0, SHUF_DC00 ; X0 = s1 {DC00}
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ paddd X0, XTMP0 ; X0 = {W[3], W[2], W[1], W[0]}
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+
+ROTATE_ARGS
+rotate_Xs
+%endm
+
+;; input is [rsp + _XFER + %1 * 4]
+%macro DO_ROUND 1
+ mov y0, e ; y0 = e
+ ror y0, (25-11) ; y0 = e >> (25-11)
+ mov y1, a ; y1 = a
+ xor y0, e ; y0 = e ^ (e >> (25-11))
+ ror y1, (22-13) ; y1 = a >> (22-13)
+ mov y2, f ; y2 = f
+ xor y1, a ; y1 = a ^ (a >> (22-13)
+ ror y0, (11-6) ; y0 = (e >> (11-6)) ^ (e >> (25-6))
+ xor y2, g ; y2 = f^g
+ xor y0, e ; y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
+ ror y1, (13-2) ; y1 = (a >> (13-2)) ^ (a >> (22-2))
+ and y2, e ; y2 = (f^g)&e
+ xor y1, a ; y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
+ ror y0, 6 ; y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
+ xor y2, g ; y2 = CH = ((f^g)&e)^g
+ add y2, y0 ; y2 = S1 + CH
+ ror y1, 2 ; y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
+ add y2, [rsp + _XFER + %1 * 4] ; y2 = k + w + S1 + CH
+ mov y0, a ; y0 = a
+ add h, y2 ; h = h + S1 + CH + k + w
+ mov y2, a ; y2 = a
+ or y0, c ; y0 = a|c
+ add d, h ; d = d + h + S1 + CH + k + w
+ and y2, c ; y2 = a&c
+ and y0, b ; y0 = (a|c)&b
+ add h, y1 ; h = h + S1 + CH + k + w + S0
+ or y0, y2 ; y0 = MAJ = (a|c)&b)|(a&c)
+ add h, y0 ; h = h + S1 + CH + k + w + S0 + MAJ
+ ROTATE_ARGS
+%endm
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; void sha256_sse4(void *input_data, UINT32 digest[8], UINT64 num_blks)
+;; arg 1 : pointer to input data
+;; arg 2 : pointer to digest
+;; arg 3 : Num blocks
+section .text
+global sha256_sse4
+global _sha256_sse4
+align 32
+sha256_sse4:
+_sha256_sse4:
+ push rbx
+%ifdef WINABI
+ push rsi
+ push rdi
+%endif
+ push rbp
+ push r13
+ push r14
+ push r15
+
+ sub rsp,STACK_SIZE
+%ifdef WINABI
+ movdqa [rsp + _XMM_SAVE + 0*16],xmm6
+ movdqa [rsp + _XMM_SAVE + 1*16],xmm7
+ movdqa [rsp + _XMM_SAVE + 2*16],xmm8
+ movdqa [rsp + _XMM_SAVE + 3*16],xmm9
+ movdqa [rsp + _XMM_SAVE + 4*16],xmm10
+ movdqa [rsp + _XMM_SAVE + 5*16],xmm11
+ movdqa [rsp + _XMM_SAVE + 6*16],xmm12
+%endif
+
+ shl NUM_BLKS, 6 ; convert to bytes
+ jz done_hash
+ add NUM_BLKS, INP ; pointer to end of data
+ mov [rsp + _INP_END], NUM_BLKS
+
+ ;; load initial digest
+ mov a,[4*0 + CTX]
+ mov b,[4*1 + CTX]
+ mov c,[4*2 + CTX]
+ mov d,[4*3 + CTX]
+ mov e,[4*4 + CTX]
+ mov f,[4*5 + CTX]
+ mov g,[4*6 + CTX]
+ mov h,[4*7 + CTX]
+
+ movdqa BYTE_FLIP_MASK, [PSHUFFLE_BYTE_FLIP_MASK wrt rip]
+ movdqa SHUF_00BA, [_SHUF_00BA wrt rip]
+ movdqa SHUF_DC00, [_SHUF_DC00 wrt rip]
+
+loop0:
+ lea TBL,[K256 wrt rip]
+
+ ;; byte swap first 16 dwords
+ COPY_XMM_AND_BSWAP X0, [INP + 0*16], BYTE_FLIP_MASK
+ COPY_XMM_AND_BSWAP X1, [INP + 1*16], BYTE_FLIP_MASK
+ COPY_XMM_AND_BSWAP X2, [INP + 2*16], BYTE_FLIP_MASK
+ COPY_XMM_AND_BSWAP X3, [INP + 3*16], BYTE_FLIP_MASK
+
+ mov [rsp + _INP], INP
+
+ ;; schedule 48 input dwords, by doing 3 rounds of 16 each
+ mov SRND, 3
+align 16
+loop1:
+ movdqa XFER, [TBL + 0*16]
+ paddd XFER, X0
+ movdqa [rsp + _XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ movdqa XFER, [TBL + 1*16]
+ paddd XFER, X0
+ movdqa [rsp + _XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ movdqa XFER, [TBL + 2*16]
+ paddd XFER, X0
+ movdqa [rsp + _XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ movdqa XFER, [TBL + 3*16]
+ paddd XFER, X0
+ movdqa [rsp + _XFER], XFER
+ add TBL, 4*16
+ FOUR_ROUNDS_AND_SCHED
+
+ sub SRND, 1
+ jne loop1
+
+ mov SRND, 2
+loop2:
+ paddd X0, [TBL + 0*16]
+ movdqa [rsp + _XFER], X0
+ DO_ROUND 0
+ DO_ROUND 1
+ DO_ROUND 2
+ DO_ROUND 3
+ paddd X1, [TBL + 1*16]
+ movdqa [rsp + _XFER], X1
+ add TBL, 2*16
+ DO_ROUND 0
+ DO_ROUND 1
+ DO_ROUND 2
+ DO_ROUND 3
+
+ movdqa X0, X2
+ movdqa X1, X3
+
+ sub SRND, 1
+ jne loop2
+
+ addm [4*0 + CTX],a
+ addm [4*1 + CTX],b
+ addm [4*2 + CTX],c
+ addm [4*3 + CTX],d
+ addm [4*4 + CTX],e
+ addm [4*5 + CTX],f
+ addm [4*6 + CTX],g
+ addm [4*7 + CTX],h
+
+ mov INP, [rsp + _INP]
+ add INP, 64
+ cmp INP, [rsp + _INP_END]
+ jne loop0
+
+done_hash:
+%ifdef WINABI
+ movdqa xmm6,[rsp + _XMM_SAVE + 0*16]
+ movdqa xmm7,[rsp + _XMM_SAVE + 1*16]
+ movdqa xmm8,[rsp + _XMM_SAVE + 2*16]
+ movdqa xmm9,[rsp + _XMM_SAVE + 3*16]
+ movdqa xmm10,[rsp + _XMM_SAVE + 4*16]
+ movdqa xmm11,[rsp + _XMM_SAVE + 5*16]
+ movdqa xmm12,[rsp + _XMM_SAVE + 6*16]
+%endif
+
+ add rsp, STACK_SIZE
+
+ pop r15
+ pop r14
+ pop r13
+ pop rbp
+%ifdef WINABI
+ pop rdi
+ pop rsi
+%endif
+ pop rbx
+
+ ret
+
+
+section .data
+align 64
+K256:
+ dd 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+ dd 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+ dd 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+ dd 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+ dd 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+ dd 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+ dd 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+ dd 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+ dd 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+ dd 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+ dd 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+ dd 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+ dd 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+ dd 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+ dd 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+ dd 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+
+PSHUFFLE_BYTE_FLIP_MASK: ddq 0x0c0d0e0f08090a0b0405060700010203
+
+; shuffle xBxA -> 00BA
+_SHUF_00BA: ddq 0xFFFFFFFFFFFFFFFF0b0a090803020100
+
+; shuffle xDxC -> DC00
+_SHUF_DC00: ddq 0x0b0a090803020100FFFFFFFFFFFFFFFF
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha256_sse4_x86.asm b/src/Crypto/sha256_sse4_x86.asm
new file mode 100644
index 0000000..31c8bd0
--- /dev/null
+++ b/src/Crypto/sha256_sse4_x86.asm
@@ -0,0 +1,10 @@
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha512-x64-nayuki.S b/src/Crypto/sha512-x64-nayuki.S
new file mode 100644
index 0000000..96ffb1a
--- /dev/null
+++ b/src/Crypto/sha512-x64-nayuki.S
@@ -0,0 +1,207 @@
+/*
+ * SHA-512 hash in x86-64 assembly
+ *
+ * Copyright (c) 2017 Project Nayuki. (MIT License)
+ * https://www.nayuki.io/page/fast-sha2-hashes-in-x86-assembly
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ * - The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * - The Software is provided "as is", without warranty of any kind, express or
+ * implied, including but not limited to the warranties of merchantability,
+ * fitness for a particular purpose and noninfringement. In no event shall the
+ * authors or copyright holders be liable for any claim, damages or other
+ * liability, whether in an action of contract, tort or otherwise, arising from,
+ * out of or in connection with the Software or the use or other dealings in the
+ * Software.
+ */
+
+# Adapted for VeraCrypt
+# Adapt to Windows build:
+# - specific calling convention
+# - avoid using xmm6 register since it must be preserved. We use the stack to save RBX, RDI and RSI
+
+
+/* void sha512_compress_nayuki(uint64_t state[8], const uint8_t block[128]) */
+.globl sha512_compress_nayuki
+.globl _sha512_compress_nayuki
+sha512_compress_nayuki:
+_sha512_compress_nayuki:
+ /*
+ * Storage usage:
+ * Bytes Location Description
+ * 8 rax Temporary for calculation per round
+ * 8 rbx Temporary for calculation per round
+ * 8 rcx Temporary for calculation per round
+ * 8 rdx Temporary for calculation per round
+ * 8 rsi Base address of block array argument (read-only)
+ * 8 rdi Base address of state array argument (read-only)
+ * 8 rsp x86-64 stack pointer
+ * 8 r8 SHA-512 state variable A
+ * 8 r9 SHA-512 state variable B
+ * 8 r10 SHA-512 state variable C
+ * 8 r11 SHA-512 state variable D
+ * 8 r12 SHA-512 state variable E
+ * 8 r13 SHA-512 state variable F
+ * 8 r14 SHA-512 state variable G
+ * 8 r15 SHA-512 state variable H
+ * 128 [rsp+0] Circular buffer of most recent 16 key schedule items, 8 bytes each
+ * 16 xmm0 Caller's value of r10 (only low 64 bits are used)
+ * 16 xmm1 Caller's value of r11 (only low 64 bits are used)
+ * 16 xmm2 Caller's value of r12 (only low 64 bits are used)
+ * 16 xmm3 Caller's value of r13 (only low 64 bits are used)
+ * 16 xmm4 Caller's value of r14 (only low 64 bits are used)
+ * 16 xmm5 Caller's value of r15 (only low 64 bits are used)
+ * 8 mm0 Caller's value of rbx
+ */
+ movq %r10, %xmm0
+ movq %r11, %xmm1
+ movq %r12, %xmm2
+ movq %r13, %xmm3
+ movq %r14, %xmm4
+ movq %r15, %xmm5
+
+.ifdef WINABI
+ subq $152, %rsp
+ movq %rbx, (0*8 + 128)(%rsp)
+ movq %rdi, (1*8 + 128)(%rsp)
+ movq %rsi, (2*8 + 128)(%rsp)
+ movq %rcx, %rdi
+ movq %rdx, %rsi
+ .else
+ movq %rbx, %xmm6
+ subq $128, %rsp
+.endif
+
+
+ movq 0(%rdi), %r8
+ movq 8(%rdi), %r9
+ movq 16(%rdi), %r10
+ movq 24(%rdi), %r11
+ movq 32(%rdi), %r12
+ movq 40(%rdi), %r13
+ movq 48(%rdi), %r14
+ movq 56(%rdi), %r15
+
+
+ movq (0*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((0)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0x428A2F98D728AE22, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (1*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((1)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0x7137449123EF65CD, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (2*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((2)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0xB5C0FBCFEC4D3B2F, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (3*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((3)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0xE9B5DBA58189DBBC, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (4*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((4)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x3956C25BF348B538, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (5*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((5)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0x59F111F1B605D019, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (6*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((6)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x923F82A4AF194F9B, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (7*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((7)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0xAB1C5ED5DA6D8118, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (8*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((8)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0xD807AA98A3030242, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (9*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((9)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0x12835B0145706FBE, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (10*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((10)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0x243185BE4EE4B28C, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (11*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((11)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0x550C7DC3D5FFB4E2, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (12*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((12)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x72BE5D74F27B896F, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (13*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((13)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0x80DEB1FE3B1696B1, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (14*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((14)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x9BDC06A725C71235, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (15*8)(%rsi), %rbx; bswapq %rbx; movq %rbx, (((15)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0xC19BF174CF692694, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((16 -15)&0xF)*8)(%rsp), %rax; movq (((16 -16)&0xF)*8)(%rsp), %rbx; addq (((16 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((16 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((16)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0xE49B69C19EF14AD2, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((17 -15)&0xF)*8)(%rsp), %rax; movq (((17 -16)&0xF)*8)(%rsp), %rbx; addq (((17 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((17 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((17)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0xEFBE4786384F25E3, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((18 -15)&0xF)*8)(%rsp), %rax; movq (((18 -16)&0xF)*8)(%rsp), %rbx; addq (((18 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((18 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((18)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0x0FC19DC68B8CD5B5, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((19 -15)&0xF)*8)(%rsp), %rax; movq (((19 -16)&0xF)*8)(%rsp), %rbx; addq (((19 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((19 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((19)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0x240CA1CC77AC9C65, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((20 -15)&0xF)*8)(%rsp), %rax; movq (((20 -16)&0xF)*8)(%rsp), %rbx; addq (((20 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((20 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((20)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x2DE92C6F592B0275, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((21 -15)&0xF)*8)(%rsp), %rax; movq (((21 -16)&0xF)*8)(%rsp), %rbx; addq (((21 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((21 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((21)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0x4A7484AA6EA6E483, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((22 -15)&0xF)*8)(%rsp), %rax; movq (((22 -16)&0xF)*8)(%rsp), %rbx; addq (((22 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((22 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((22)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x5CB0A9DCBD41FBD4, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((23 -15)&0xF)*8)(%rsp), %rax; movq (((23 -16)&0xF)*8)(%rsp), %rbx; addq (((23 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((23 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((23)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0x76F988DA831153B5, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((24 -15)&0xF)*8)(%rsp), %rax; movq (((24 -16)&0xF)*8)(%rsp), %rbx; addq (((24 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((24 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((24)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0x983E5152EE66DFAB, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((25 -15)&0xF)*8)(%rsp), %rax; movq (((25 -16)&0xF)*8)(%rsp), %rbx; addq (((25 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((25 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((25)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0xA831C66D2DB43210, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((26 -15)&0xF)*8)(%rsp), %rax; movq (((26 -16)&0xF)*8)(%rsp), %rbx; addq (((26 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((26 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((26)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0xB00327C898FB213F, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((27 -15)&0xF)*8)(%rsp), %rax; movq (((27 -16)&0xF)*8)(%rsp), %rbx; addq (((27 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((27 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((27)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0xBF597FC7BEEF0EE4, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((28 -15)&0xF)*8)(%rsp), %rax; movq (((28 -16)&0xF)*8)(%rsp), %rbx; addq (((28 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((28 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((28)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0xC6E00BF33DA88FC2, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((29 -15)&0xF)*8)(%rsp), %rax; movq (((29 -16)&0xF)*8)(%rsp), %rbx; addq (((29 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((29 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((29)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0xD5A79147930AA725, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((30 -15)&0xF)*8)(%rsp), %rax; movq (((30 -16)&0xF)*8)(%rsp), %rbx; addq (((30 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((30 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((30)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x06CA6351E003826F, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((31 -15)&0xF)*8)(%rsp), %rax; movq (((31 -16)&0xF)*8)(%rsp), %rbx; addq (((31 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((31 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((31)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0x142929670A0E6E70, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((32 -15)&0xF)*8)(%rsp), %rax; movq (((32 -16)&0xF)*8)(%rsp), %rbx; addq (((32 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((32 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((32)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0x27B70A8546D22FFC, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((33 -15)&0xF)*8)(%rsp), %rax; movq (((33 -16)&0xF)*8)(%rsp), %rbx; addq (((33 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((33 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((33)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0x2E1B21385C26C926, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((34 -15)&0xF)*8)(%rsp), %rax; movq (((34 -16)&0xF)*8)(%rsp), %rbx; addq (((34 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((34 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((34)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0x4D2C6DFC5AC42AED, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((35 -15)&0xF)*8)(%rsp), %rax; movq (((35 -16)&0xF)*8)(%rsp), %rbx; addq (((35 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((35 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((35)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0x53380D139D95B3DF, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((36 -15)&0xF)*8)(%rsp), %rax; movq (((36 -16)&0xF)*8)(%rsp), %rbx; addq (((36 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((36 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((36)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x650A73548BAF63DE, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((37 -15)&0xF)*8)(%rsp), %rax; movq (((37 -16)&0xF)*8)(%rsp), %rbx; addq (((37 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((37 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((37)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0x766A0ABB3C77B2A8, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((38 -15)&0xF)*8)(%rsp), %rax; movq (((38 -16)&0xF)*8)(%rsp), %rbx; addq (((38 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((38 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((38)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x81C2C92E47EDAEE6, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((39 -15)&0xF)*8)(%rsp), %rax; movq (((39 -16)&0xF)*8)(%rsp), %rbx; addq (((39 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((39 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((39)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0x92722C851482353B, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((40 -15)&0xF)*8)(%rsp), %rax; movq (((40 -16)&0xF)*8)(%rsp), %rbx; addq (((40 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((40 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((40)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0xA2BFE8A14CF10364, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((41 -15)&0xF)*8)(%rsp), %rax; movq (((41 -16)&0xF)*8)(%rsp), %rbx; addq (((41 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((41 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((41)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0xA81A664BBC423001, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((42 -15)&0xF)*8)(%rsp), %rax; movq (((42 -16)&0xF)*8)(%rsp), %rbx; addq (((42 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((42 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((42)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0xC24B8B70D0F89791, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((43 -15)&0xF)*8)(%rsp), %rax; movq (((43 -16)&0xF)*8)(%rsp), %rbx; addq (((43 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((43 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((43)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0xC76C51A30654BE30, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((44 -15)&0xF)*8)(%rsp), %rax; movq (((44 -16)&0xF)*8)(%rsp), %rbx; addq (((44 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((44 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((44)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0xD192E819D6EF5218, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((45 -15)&0xF)*8)(%rsp), %rax; movq (((45 -16)&0xF)*8)(%rsp), %rbx; addq (((45 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((45 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((45)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0xD69906245565A910, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((46 -15)&0xF)*8)(%rsp), %rax; movq (((46 -16)&0xF)*8)(%rsp), %rbx; addq (((46 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((46 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((46)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0xF40E35855771202A, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((47 -15)&0xF)*8)(%rsp), %rax; movq (((47 -16)&0xF)*8)(%rsp), %rbx; addq (((47 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((47 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((47)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0x106AA07032BBD1B8, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((48 -15)&0xF)*8)(%rsp), %rax; movq (((48 -16)&0xF)*8)(%rsp), %rbx; addq (((48 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((48 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((48)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0x19A4C116B8D2D0C8, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((49 -15)&0xF)*8)(%rsp), %rax; movq (((49 -16)&0xF)*8)(%rsp), %rbx; addq (((49 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((49 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((49)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0x1E376C085141AB53, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((50 -15)&0xF)*8)(%rsp), %rax; movq (((50 -16)&0xF)*8)(%rsp), %rbx; addq (((50 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((50 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((50)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0x2748774CDF8EEB99, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((51 -15)&0xF)*8)(%rsp), %rax; movq (((51 -16)&0xF)*8)(%rsp), %rbx; addq (((51 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((51 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((51)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0x34B0BCB5E19B48A8, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((52 -15)&0xF)*8)(%rsp), %rax; movq (((52 -16)&0xF)*8)(%rsp), %rbx; addq (((52 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((52 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((52)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x391C0CB3C5C95A63, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((53 -15)&0xF)*8)(%rsp), %rax; movq (((53 -16)&0xF)*8)(%rsp), %rbx; addq (((53 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((53 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((53)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0x4ED8AA4AE3418ACB, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((54 -15)&0xF)*8)(%rsp), %rax; movq (((54 -16)&0xF)*8)(%rsp), %rbx; addq (((54 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((54 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((54)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x5B9CCA4F7763E373, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((55 -15)&0xF)*8)(%rsp), %rax; movq (((55 -16)&0xF)*8)(%rsp), %rbx; addq (((55 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((55 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((55)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0x682E6FF3D6B2B8A3, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((56 -15)&0xF)*8)(%rsp), %rax; movq (((56 -16)&0xF)*8)(%rsp), %rbx; addq (((56 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((56 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((56)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0x748F82EE5DEFB2FC, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((57 -15)&0xF)*8)(%rsp), %rax; movq (((57 -16)&0xF)*8)(%rsp), %rbx; addq (((57 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((57 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((57)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0x78A5636F43172F60, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((58 -15)&0xF)*8)(%rsp), %rax; movq (((58 -16)&0xF)*8)(%rsp), %rbx; addq (((58 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((58 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((58)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0x84C87814A1F0AB72, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((59 -15)&0xF)*8)(%rsp), %rax; movq (((59 -16)&0xF)*8)(%rsp), %rbx; addq (((59 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((59 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((59)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0x8CC702081A6439EC, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((60 -15)&0xF)*8)(%rsp), %rax; movq (((60 -16)&0xF)*8)(%rsp), %rbx; addq (((60 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((60 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((60)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x90BEFFFA23631E28, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((61 -15)&0xF)*8)(%rsp), %rax; movq (((61 -16)&0xF)*8)(%rsp), %rbx; addq (((61 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((61 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((61)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0xA4506CEBDE82BDE9, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((62 -15)&0xF)*8)(%rsp), %rax; movq (((62 -16)&0xF)*8)(%rsp), %rbx; addq (((62 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((62 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((62)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0xBEF9A3F7B2C67915, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((63 -15)&0xF)*8)(%rsp), %rax; movq (((63 -16)&0xF)*8)(%rsp), %rbx; addq (((63 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((63 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((63)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0xC67178F2E372532B, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((64 -15)&0xF)*8)(%rsp), %rax; movq (((64 -16)&0xF)*8)(%rsp), %rbx; addq (((64 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((64 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((64)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0xCA273ECEEA26619C, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((65 -15)&0xF)*8)(%rsp), %rax; movq (((65 -16)&0xF)*8)(%rsp), %rbx; addq (((65 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((65 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((65)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0xD186B8C721C0C207, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((66 -15)&0xF)*8)(%rsp), %rax; movq (((66 -16)&0xF)*8)(%rsp), %rbx; addq (((66 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((66 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((66)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0xEADA7DD6CDE0EB1E, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((67 -15)&0xF)*8)(%rsp), %rax; movq (((67 -16)&0xF)*8)(%rsp), %rbx; addq (((67 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((67 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((67)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0xF57D4F7FEE6ED178, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((68 -15)&0xF)*8)(%rsp), %rax; movq (((68 -16)&0xF)*8)(%rsp), %rbx; addq (((68 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((68 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((68)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x06F067AA72176FBA, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((69 -15)&0xF)*8)(%rsp), %rax; movq (((69 -16)&0xF)*8)(%rsp), %rbx; addq (((69 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((69 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((69)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0x0A637DC5A2C898A6, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((70 -15)&0xF)*8)(%rsp), %rax; movq (((70 -16)&0xF)*8)(%rsp), %rbx; addq (((70 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((70 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((70)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x113F9804BEF90DAE, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((71 -15)&0xF)*8)(%rsp), %rax; movq (((71 -16)&0xF)*8)(%rsp), %rbx; addq (((71 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((71 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((71)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0x1B710B35131C471B, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+ movq (((72 -15)&0xF)*8)(%rsp), %rax; movq (((72 -16)&0xF)*8)(%rsp), %rbx; addq (((72 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((72 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((72)&0xF)*8)(%rsp); movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r15; movq %r14, %rcx; xorq %r13, %rcx; andq %r12, %rcx; xorq %r14, %rcx; addq %rax, %r15; movabs $0x28DB77F523047D84, %rax; addq %rcx, %r15; addq %rax, %r15; addq %r15, %r11; movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r10, %rcx; addq %rax, %r15; movq %r10, %rax; orq %r9, %rax; andq %r9, %rcx; andq %r8, %rax; orq %rcx, %rax; addq %rax, %r15;
+ movq (((73 -15)&0xF)*8)(%rsp), %rax; movq (((73 -16)&0xF)*8)(%rsp), %rbx; addq (((73 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((73 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((73)&0xF)*8)(%rsp); movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r14; movq %r13, %rcx; xorq %r12, %rcx; andq %r11, %rcx; xorq %r13, %rcx; addq %rax, %r14; movabs $0x32CAAB7B40C72493, %rax; addq %rcx, %r14; addq %rax, %r14; addq %r14, %r10; movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r9, %rcx; addq %rax, %r14; movq %r9, %rax; orq %r8, %rax; andq %r8, %rcx; andq %r15, %rax; orq %rcx, %rax; addq %rax, %r14;
+ movq (((74 -15)&0xF)*8)(%rsp), %rax; movq (((74 -16)&0xF)*8)(%rsp), %rbx; addq (((74 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((74 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((74)&0xF)*8)(%rsp); movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r13; movq %r12, %rcx; xorq %r11, %rcx; andq %r10, %rcx; xorq %r12, %rcx; addq %rax, %r13; movabs $0x3C9EBE0A15C9BEBC, %rax; addq %rcx, %r13; addq %rax, %r13; addq %r13, %r9; movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r8, %rcx; addq %rax, %r13; movq %r8, %rax; orq %r15, %rax; andq %r15, %rcx; andq %r14, %rax; orq %rcx, %rax; addq %rax, %r13;
+ movq (((75 -15)&0xF)*8)(%rsp), %rax; movq (((75 -16)&0xF)*8)(%rsp), %rbx; addq (((75 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((75 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((75)&0xF)*8)(%rsp); movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r12; movq %r11, %rcx; xorq %r10, %rcx; andq %r9, %rcx; xorq %r11, %rcx; addq %rax, %r12; movabs $0x431D67C49C100D4C, %rax; addq %rcx, %r12; addq %rax, %r12; addq %r12, %r8; movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r15, %rcx; addq %rax, %r12; movq %r15, %rax; orq %r14, %rax; andq %r14, %rcx; andq %r13, %rax; orq %rcx, %rax; addq %rax, %r12;
+ movq (((76 -15)&0xF)*8)(%rsp), %rax; movq (((76 -16)&0xF)*8)(%rsp), %rbx; addq (((76 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((76 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((76)&0xF)*8)(%rsp); movq %r8, %rcx; movq %r8, %rdx; movq %r8, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r11; movq %r10, %rcx; xorq %r9, %rcx; andq %r8, %rcx; xorq %r10, %rcx; addq %rax, %r11; movabs $0x4CC5D4BECB3E42B6, %rax; addq %rcx, %r11; addq %rax, %r11; addq %r11, %r15; movq %r12, %rcx; movq %r12, %rdx; movq %r12, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r14, %rcx; addq %rax, %r11; movq %r14, %rax; orq %r13, %rax; andq %r13, %rcx; andq %r12, %rax; orq %rcx, %rax; addq %rax, %r11;
+ movq (((77 -15)&0xF)*8)(%rsp), %rax; movq (((77 -16)&0xF)*8)(%rsp), %rbx; addq (((77 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((77 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((77)&0xF)*8)(%rsp); movq %r15, %rcx; movq %r15, %rdx; movq %r15, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r10; movq %r9, %rcx; xorq %r8, %rcx; andq %r15, %rcx; xorq %r9, %rcx; addq %rax, %r10; movabs $0x597F299CFC657E2A, %rax; addq %rcx, %r10; addq %rax, %r10; addq %r10, %r14; movq %r11, %rcx; movq %r11, %rdx; movq %r11, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r13, %rcx; addq %rax, %r10; movq %r13, %rax; orq %r12, %rax; andq %r12, %rcx; andq %r11, %rax; orq %rcx, %rax; addq %rax, %r10;
+ movq (((78 -15)&0xF)*8)(%rsp), %rax; movq (((78 -16)&0xF)*8)(%rsp), %rbx; addq (((78 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((78 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((78)&0xF)*8)(%rsp); movq %r14, %rcx; movq %r14, %rdx; movq %r14, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r9; movq %r8, %rcx; xorq %r15, %rcx; andq %r14, %rcx; xorq %r8, %rcx; addq %rax, %r9; movabs $0x5FCB6FAB3AD6FAEC, %rax; addq %rcx, %r9; addq %rax, %r9; addq %r9, %r13; movq %r10, %rcx; movq %r10, %rdx; movq %r10, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r12, %rcx; addq %rax, %r9; movq %r12, %rax; orq %r11, %rax; andq %r11, %rcx; andq %r10, %rax; orq %rcx, %rax; addq %rax, %r9;
+ movq (((79 -15)&0xF)*8)(%rsp), %rax; movq (((79 -16)&0xF)*8)(%rsp), %rbx; addq (((79 - 7)&0xF)*8)(%rsp), %rbx; movq %rax, %rcx; movq %rax, %rdx; rorq $8, %rcx; shrq $7, %rdx; rorq $1, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq (((79 - 2)&0xF)*8)(%rsp), %rax; movq %rax, %rcx; movq %rax, %rdx; rorq $61, %rcx; shrq $6, %rdx; rorq $19, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rax, %rbx; movq %rbx, (((79)&0xF)*8)(%rsp); movq %r13, %rcx; movq %r13, %rdx; movq %r13, %rax; rorq $18, %rcx; rorq $41, %rdx; rorq $14, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; addq %rbx, %r8; movq %r15, %rcx; xorq %r14, %rcx; andq %r13, %rcx; xorq %r15, %rcx; addq %rax, %r8; movabs $0x6C44198C4A475817, %rax; addq %rcx, %r8; addq %rax, %r8; addq %r8, %r12; movq %r9, %rcx; movq %r9, %rdx; movq %r9, %rax; rorq $39, %rcx; rorq $34, %rdx; rorq $28, %rax; xorq %rdx, %rcx; xorq %rcx, %rax; movq %r11, %rcx; addq %rax, %r8; movq %r11, %rax; orq %r10, %rax; andq %r10, %rcx; andq %r9, %rax; orq %rcx, %rax; addq %rax, %r8;
+
+
+ addq %r8 , 0(%rdi)
+ addq %r9 , 8(%rdi)
+ addq %r10, 16(%rdi)
+ addq %r11, 24(%rdi)
+ addq %r12, 32(%rdi)
+ addq %r13, 40(%rdi)
+ addq %r14, 48(%rdi)
+ addq %r15, 56(%rdi)
+
+
+ movq %xmm0, %r10
+ movq %xmm1, %r11
+ movq %xmm2, %r12
+ movq %xmm3, %r13
+ movq %xmm4, %r14
+ movq %xmm5, %r15
+
+.ifdef WINABI
+ movq (0*8 + 128)(%rsp), %rbx
+ movq (1*8 + 128)(%rsp), %rdi
+ movq (2*8 + 128)(%rsp), %rsi
+ addq $152, %rsp
+ .else
+ movq %xmm6, %rbx
+ addq $128, %rsp
+.endif
+
+ retq
+
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+ .endif
diff --git a/src/Crypto/sha512-x86-nayuki.S b/src/Crypto/sha512-x86-nayuki.S
new file mode 100644
index 0000000..e1fce56
--- /dev/null
+++ b/src/Crypto/sha512-x86-nayuki.S
@@ -0,0 +1,180 @@
+#
+# SHA-512 hash in x86 assembly
+#
+# Copyright (c) 2014 Project Nayuki
+# http://www.nayuki.io/page/fast-sha2-hashes-in-x86-assembly
+#
+# (MIT License)
+# Permission is hereby granted, free of charge, to any person obtaining a copy of
+# this software and associated documentation files (the "Software"), to deal in
+# the Software without restriction, including without limitation the rights to
+# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+# the Software, and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+# - The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# - The Software is provided "as is", without warranty of any kind, express or
+# implied, including but not limited to the warranties of merchantability,
+# fitness for a particular purpose and noninfringement. In no event shall the
+# authors or copyright holders be liable for any claim, damages or other
+# liability, whether in an action of contract, tort or otherwise, arising from,
+# out of or in connection with the Software or the use or other dealings in the
+# Software.
+#
+
+# Modified by kerukuro for use in cppcrypto.
+
+ .ifdef MS_STDCALL
+ .globl _sha512_compress_nayuki@8
+ _sha512_compress_nayuki@8:
+ .else
+ .globl _sha512_compress_nayuki
+ .globl sha512_compress_nayuki
+ _sha512_compress_nayuki:
+ sha512_compress_nayuki:
+ .endif
+
+ movl %esp, %ecx
+ subl $192, %esp
+ andl $~0xF, %esp
+
+
+ movl 4(%ecx), %eax
+ movdqu 0(%eax), %xmm0; movdqu %xmm0, 0(%esp)
+ movdqu 16(%eax), %xmm1; movdqu %xmm1, 16(%esp)
+ movdqu 32(%eax), %xmm2; movdqu %xmm2, 32(%esp)
+ movdqu 48(%eax), %xmm3; movdqu %xmm3, 48(%esp)
+
+
+ movl 8(%ecx), %eax
+ movq .bswap64, %mm7
+ movq (0*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((0)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+0*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (1*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((1)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+1*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (2*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((2)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+2*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (3*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((3)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+3*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (4*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((4)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+4*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (5*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((5)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+5*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (6*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((6)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+6*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (7*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((7)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+7*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (8*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((8)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+8*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (9*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((9)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+9*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (10*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((10)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+10*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (11*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((11)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+11*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (12*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((12)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+12*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (13*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((13)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+13*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (14*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((14)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+14*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (15*8)(%eax), %mm0; pshufb %mm7, %mm0; movq %mm0, (((15)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+15*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((16 -16)&0xF)*8+64)(%esp), %mm0; paddq (((16 - 7)&0xF)*8+64)(%esp), %mm0; movq (((16 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((16 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((16)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+16*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((17 -16)&0xF)*8+64)(%esp), %mm0; paddq (((17 - 7)&0xF)*8+64)(%esp), %mm0; movq (((17 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((17 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((17)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+17*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((18 -16)&0xF)*8+64)(%esp), %mm0; paddq (((18 - 7)&0xF)*8+64)(%esp), %mm0; movq (((18 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((18 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((18)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+18*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((19 -16)&0xF)*8+64)(%esp), %mm0; paddq (((19 - 7)&0xF)*8+64)(%esp), %mm0; movq (((19 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((19 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((19)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+19*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((20 -16)&0xF)*8+64)(%esp), %mm0; paddq (((20 - 7)&0xF)*8+64)(%esp), %mm0; movq (((20 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((20 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((20)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+20*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((21 -16)&0xF)*8+64)(%esp), %mm0; paddq (((21 - 7)&0xF)*8+64)(%esp), %mm0; movq (((21 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((21 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((21)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+21*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((22 -16)&0xF)*8+64)(%esp), %mm0; paddq (((22 - 7)&0xF)*8+64)(%esp), %mm0; movq (((22 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((22 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((22)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+22*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((23 -16)&0xF)*8+64)(%esp), %mm0; paddq (((23 - 7)&0xF)*8+64)(%esp), %mm0; movq (((23 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((23 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((23)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+23*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((24 -16)&0xF)*8+64)(%esp), %mm0; paddq (((24 - 7)&0xF)*8+64)(%esp), %mm0; movq (((24 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((24 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((24)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+24*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((25 -16)&0xF)*8+64)(%esp), %mm0; paddq (((25 - 7)&0xF)*8+64)(%esp), %mm0; movq (((25 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((25 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((25)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+25*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((26 -16)&0xF)*8+64)(%esp), %mm0; paddq (((26 - 7)&0xF)*8+64)(%esp), %mm0; movq (((26 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((26 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((26)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+26*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((27 -16)&0xF)*8+64)(%esp), %mm0; paddq (((27 - 7)&0xF)*8+64)(%esp), %mm0; movq (((27 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((27 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((27)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+27*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((28 -16)&0xF)*8+64)(%esp), %mm0; paddq (((28 - 7)&0xF)*8+64)(%esp), %mm0; movq (((28 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((28 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((28)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+28*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((29 -16)&0xF)*8+64)(%esp), %mm0; paddq (((29 - 7)&0xF)*8+64)(%esp), %mm0; movq (((29 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((29 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((29)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+29*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((30 -16)&0xF)*8+64)(%esp), %mm0; paddq (((30 - 7)&0xF)*8+64)(%esp), %mm0; movq (((30 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((30 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((30)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+30*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((31 -16)&0xF)*8+64)(%esp), %mm0; paddq (((31 - 7)&0xF)*8+64)(%esp), %mm0; movq (((31 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((31 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((31)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+31*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((32 -16)&0xF)*8+64)(%esp), %mm0; paddq (((32 - 7)&0xF)*8+64)(%esp), %mm0; movq (((32 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((32 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((32)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+32*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((33 -16)&0xF)*8+64)(%esp), %mm0; paddq (((33 - 7)&0xF)*8+64)(%esp), %mm0; movq (((33 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((33 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((33)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+33*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((34 -16)&0xF)*8+64)(%esp), %mm0; paddq (((34 - 7)&0xF)*8+64)(%esp), %mm0; movq (((34 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((34 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((34)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+34*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((35 -16)&0xF)*8+64)(%esp), %mm0; paddq (((35 - 7)&0xF)*8+64)(%esp), %mm0; movq (((35 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((35 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((35)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+35*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((36 -16)&0xF)*8+64)(%esp), %mm0; paddq (((36 - 7)&0xF)*8+64)(%esp), %mm0; movq (((36 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((36 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((36)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+36*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((37 -16)&0xF)*8+64)(%esp), %mm0; paddq (((37 - 7)&0xF)*8+64)(%esp), %mm0; movq (((37 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((37 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((37)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+37*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((38 -16)&0xF)*8+64)(%esp), %mm0; paddq (((38 - 7)&0xF)*8+64)(%esp), %mm0; movq (((38 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((38 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((38)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+38*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((39 -16)&0xF)*8+64)(%esp), %mm0; paddq (((39 - 7)&0xF)*8+64)(%esp), %mm0; movq (((39 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((39 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((39)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+39*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((40 -16)&0xF)*8+64)(%esp), %mm0; paddq (((40 - 7)&0xF)*8+64)(%esp), %mm0; movq (((40 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((40 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((40)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+40*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((41 -16)&0xF)*8+64)(%esp), %mm0; paddq (((41 - 7)&0xF)*8+64)(%esp), %mm0; movq (((41 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((41 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((41)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+41*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((42 -16)&0xF)*8+64)(%esp), %mm0; paddq (((42 - 7)&0xF)*8+64)(%esp), %mm0; movq (((42 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((42 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((42)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+42*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((43 -16)&0xF)*8+64)(%esp), %mm0; paddq (((43 - 7)&0xF)*8+64)(%esp), %mm0; movq (((43 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((43 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((43)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+43*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((44 -16)&0xF)*8+64)(%esp), %mm0; paddq (((44 - 7)&0xF)*8+64)(%esp), %mm0; movq (((44 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((44 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((44)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+44*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((45 -16)&0xF)*8+64)(%esp), %mm0; paddq (((45 - 7)&0xF)*8+64)(%esp), %mm0; movq (((45 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((45 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((45)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+45*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((46 -16)&0xF)*8+64)(%esp), %mm0; paddq (((46 - 7)&0xF)*8+64)(%esp), %mm0; movq (((46 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((46 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((46)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+46*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((47 -16)&0xF)*8+64)(%esp), %mm0; paddq (((47 - 7)&0xF)*8+64)(%esp), %mm0; movq (((47 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((47 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((47)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+47*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((48 -16)&0xF)*8+64)(%esp), %mm0; paddq (((48 - 7)&0xF)*8+64)(%esp), %mm0; movq (((48 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((48 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((48)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+48*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((49 -16)&0xF)*8+64)(%esp), %mm0; paddq (((49 - 7)&0xF)*8+64)(%esp), %mm0; movq (((49 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((49 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((49)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+49*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((50 -16)&0xF)*8+64)(%esp), %mm0; paddq (((50 - 7)&0xF)*8+64)(%esp), %mm0; movq (((50 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((50 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((50)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+50*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((51 -16)&0xF)*8+64)(%esp), %mm0; paddq (((51 - 7)&0xF)*8+64)(%esp), %mm0; movq (((51 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((51 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((51)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+51*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((52 -16)&0xF)*8+64)(%esp), %mm0; paddq (((52 - 7)&0xF)*8+64)(%esp), %mm0; movq (((52 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((52 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((52)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+52*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((53 -16)&0xF)*8+64)(%esp), %mm0; paddq (((53 - 7)&0xF)*8+64)(%esp), %mm0; movq (((53 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((53 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((53)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+53*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((54 -16)&0xF)*8+64)(%esp), %mm0; paddq (((54 - 7)&0xF)*8+64)(%esp), %mm0; movq (((54 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((54 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((54)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+54*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((55 -16)&0xF)*8+64)(%esp), %mm0; paddq (((55 - 7)&0xF)*8+64)(%esp), %mm0; movq (((55 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((55 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((55)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+55*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((56 -16)&0xF)*8+64)(%esp), %mm0; paddq (((56 - 7)&0xF)*8+64)(%esp), %mm0; movq (((56 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((56 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((56)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+56*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((57 -16)&0xF)*8+64)(%esp), %mm0; paddq (((57 - 7)&0xF)*8+64)(%esp), %mm0; movq (((57 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((57 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((57)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+57*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((58 -16)&0xF)*8+64)(%esp), %mm0; paddq (((58 - 7)&0xF)*8+64)(%esp), %mm0; movq (((58 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((58 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((58)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+58*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((59 -16)&0xF)*8+64)(%esp), %mm0; paddq (((59 - 7)&0xF)*8+64)(%esp), %mm0; movq (((59 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((59 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((59)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+59*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((60 -16)&0xF)*8+64)(%esp), %mm0; paddq (((60 - 7)&0xF)*8+64)(%esp), %mm0; movq (((60 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((60 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((60)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+60*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((61 -16)&0xF)*8+64)(%esp), %mm0; paddq (((61 - 7)&0xF)*8+64)(%esp), %mm0; movq (((61 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((61 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((61)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+61*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((62 -16)&0xF)*8+64)(%esp), %mm0; paddq (((62 - 7)&0xF)*8+64)(%esp), %mm0; movq (((62 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((62 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((62)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+62*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((63 -16)&0xF)*8+64)(%esp), %mm0; paddq (((63 - 7)&0xF)*8+64)(%esp), %mm0; movq (((63 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((63 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((63)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+63*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((64 -16)&0xF)*8+64)(%esp), %mm0; paddq (((64 - 7)&0xF)*8+64)(%esp), %mm0; movq (((64 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((64 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((64)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+64*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((65 -16)&0xF)*8+64)(%esp), %mm0; paddq (((65 - 7)&0xF)*8+64)(%esp), %mm0; movq (((65 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((65 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((65)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+65*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((66 -16)&0xF)*8+64)(%esp), %mm0; paddq (((66 - 7)&0xF)*8+64)(%esp), %mm0; movq (((66 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((66 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((66)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+66*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((67 -16)&0xF)*8+64)(%esp), %mm0; paddq (((67 - 7)&0xF)*8+64)(%esp), %mm0; movq (((67 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((67 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((67)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+67*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((68 -16)&0xF)*8+64)(%esp), %mm0; paddq (((68 - 7)&0xF)*8+64)(%esp), %mm0; movq (((68 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((68 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((68)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+68*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((69 -16)&0xF)*8+64)(%esp), %mm0; paddq (((69 - 7)&0xF)*8+64)(%esp), %mm0; movq (((69 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((69 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((69)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+69*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((70 -16)&0xF)*8+64)(%esp), %mm0; paddq (((70 - 7)&0xF)*8+64)(%esp), %mm0; movq (((70 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((70 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((70)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+70*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((71 -16)&0xF)*8+64)(%esp), %mm0; paddq (((71 - 7)&0xF)*8+64)(%esp), %mm0; movq (((71 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((71 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((71)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+71*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+ movq (((72 -16)&0xF)*8+64)(%esp), %mm0; paddq (((72 - 7)&0xF)*8+64)(%esp), %mm0; movq (((72 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((72 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((72)&0xF)*8+64)(%esp); paddq (7*8)(%esp), %mm0; movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+72*8, %mm0; movq (6*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (3*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (3*8)(%esp); movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (2*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (1*8)(%esp), %mm3; pand (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (7*8)(%esp);
+ movq (((73 -16)&0xF)*8+64)(%esp), %mm0; paddq (((73 - 7)&0xF)*8+64)(%esp), %mm0; movq (((73 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((73 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((73)&0xF)*8+64)(%esp); paddq (6*8)(%esp), %mm0; movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+73*8, %mm0; movq (5*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm2; pxor (5*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (2*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (2*8)(%esp); movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (1*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (0*8)(%esp), %mm3; pand (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (6*8)(%esp);
+ movq (((74 -16)&0xF)*8+64)(%esp), %mm0; paddq (((74 - 7)&0xF)*8+64)(%esp), %mm0; movq (((74 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((74 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((74)&0xF)*8+64)(%esp); paddq (5*8)(%esp), %mm0; movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+74*8, %mm0; movq (4*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm2; pxor (4*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (1*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (1*8)(%esp); movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (0*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (7*8)(%esp), %mm3; pand (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (5*8)(%esp);
+ movq (((75 -16)&0xF)*8+64)(%esp), %mm0; paddq (((75 - 7)&0xF)*8+64)(%esp), %mm0; movq (((75 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((75 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((75)&0xF)*8+64)(%esp); paddq (4*8)(%esp), %mm0; movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+75*8, %mm0; movq (3*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm2; pxor (3*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (0*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (0*8)(%esp); movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (7*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (6*8)(%esp), %mm3; pand (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (4*8)(%esp);
+ movq (((76 -16)&0xF)*8+64)(%esp), %mm0; paddq (((76 - 7)&0xF)*8+64)(%esp), %mm0; movq (((76 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((76 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((76)&0xF)*8+64)(%esp); paddq (3*8)(%esp), %mm0; movq (0*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+76*8, %mm0; movq (2*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; pand (0*8)(%esp), %mm2; pxor (2*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (7*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (7*8)(%esp); movq (4*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (6*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (5*8)(%esp), %mm3; pand (5*8)(%esp), %mm2; pand (4*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (3*8)(%esp);
+ movq (((77 -16)&0xF)*8+64)(%esp), %mm0; paddq (((77 - 7)&0xF)*8+64)(%esp), %mm0; movq (((77 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((77 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((77)&0xF)*8+64)(%esp); paddq (2*8)(%esp), %mm0; movq (7*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+77*8, %mm0; movq (1*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; pand (7*8)(%esp), %mm2; pxor (1*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (6*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (6*8)(%esp); movq (3*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (5*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (4*8)(%esp), %mm3; pand (4*8)(%esp), %mm2; pand (3*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (2*8)(%esp);
+ movq (((78 -16)&0xF)*8+64)(%esp), %mm0; paddq (((78 - 7)&0xF)*8+64)(%esp), %mm0; movq (((78 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((78 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((78)&0xF)*8+64)(%esp); paddq (1*8)(%esp), %mm0; movq (6*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+78*8, %mm0; movq (0*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; pand (6*8)(%esp), %mm2; pxor (0*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (5*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (5*8)(%esp); movq (2*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (4*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (3*8)(%esp), %mm3; pand (3*8)(%esp), %mm2; pand (2*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (1*8)(%esp);
+ movq (((79 -16)&0xF)*8+64)(%esp), %mm0; paddq (((79 - 7)&0xF)*8+64)(%esp), %mm0; movq (((79 -15)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-1), %mm5; psrlq $1, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-8), %mm4; psrlq $8, %mm2; por %mm4, %mm2; psrlq $7, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq (((79 - 2)&0xF)*8+64)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm5; psllq $(64-19), %mm5; psrlq $19, %mm1; por %mm5, %mm1; movq %mm2, %mm4; psllq $(64-61), %mm4; psrlq $61, %mm2; por %mm4, %mm2; psrlq $6, %mm3; pxor %mm3, %mm2; pxor %mm2, %mm1; paddq %mm1, %mm0; movq %mm0, (((79)&0xF)*8+64)(%esp); paddq (0*8)(%esp), %mm0; movq (5*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-18), %mm4; psrlq $18, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-41), %mm5; psrlq $41, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-14), %mm6; psrlq $14, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; paddq .roundconstants+79*8, %mm0; movq (7*8)(%esp), %mm2; pxor (6*8)(%esp), %mm2; pand (5*8)(%esp), %mm2; pxor (7*8)(%esp), %mm2; paddq %mm1, %mm0; paddq %mm2, %mm0; movq (4*8)(%esp), %mm1; paddq %mm0, %mm1; movq %mm1, (4*8)(%esp); movq (1*8)(%esp), %mm1; movq %mm1, %mm2; movq %mm1, %mm3; movq %mm1, %mm4; psllq $(64-39), %mm4; psrlq $39, %mm1; por %mm4, %mm1; movq %mm2, %mm5; psllq $(64-34), %mm5; psrlq $34, %mm2; por %mm5, %mm2; movq %mm3, %mm6; psllq $(64-28), %mm6; psrlq $28, %mm3; por %mm6, %mm3; pxor %mm2, %mm1; pxor %mm3, %mm1; movq (3*8)(%esp), %mm2; paddq %mm1, %mm0; movq %mm2, %mm3; por (2*8)(%esp), %mm3; pand (2*8)(%esp), %mm2; pand (1*8)(%esp), %mm3; por %mm2, %mm3; paddq %mm3, %mm0; movq %mm0, (0*8)(%esp);
+
+
+ movl 4(%ecx), %eax
+ movdqu 0(%eax), %xmm0; paddq 0(%esp), %xmm0; movdqu %xmm0, 0(%eax)
+ movdqu 16(%eax), %xmm1; paddq 16(%esp), %xmm1; movdqu %xmm1, 16(%eax)
+ movdqu 32(%eax), %xmm2; paddq 32(%esp), %xmm2; movdqu %xmm2, 32(%eax)
+ movdqu 48(%eax), %xmm3; paddq 48(%esp), %xmm3; movdqu %xmm3, 48(%eax)
+
+
+ emms
+ movl %ecx, %esp
+
+ .ifdef MS_STDCALL
+ ret $8
+ .else
+ retl
+ .endif
+
+
+.balign 8
+.bswap64:
+ .quad 0x0001020304050607
+
+.roundconstants:
+ .quad 0x428A2F98D728AE22, 0x7137449123EF65CD, 0xB5C0FBCFEC4D3B2F, 0xE9B5DBA58189DBBC
+ .quad 0x3956C25BF348B538, 0x59F111F1B605D019, 0x923F82A4AF194F9B, 0xAB1C5ED5DA6D8118
+ .quad 0xD807AA98A3030242, 0x12835B0145706FBE, 0x243185BE4EE4B28C, 0x550C7DC3D5FFB4E2
+ .quad 0x72BE5D74F27B896F, 0x80DEB1FE3B1696B1, 0x9BDC06A725C71235, 0xC19BF174CF692694
+ .quad 0xE49B69C19EF14AD2, 0xEFBE4786384F25E3, 0x0FC19DC68B8CD5B5, 0x240CA1CC77AC9C65
+ .quad 0x2DE92C6F592B0275, 0x4A7484AA6EA6E483, 0x5CB0A9DCBD41FBD4, 0x76F988DA831153B5
+ .quad 0x983E5152EE66DFAB, 0xA831C66D2DB43210, 0xB00327C898FB213F, 0xBF597FC7BEEF0EE4
+ .quad 0xC6E00BF33DA88FC2, 0xD5A79147930AA725, 0x06CA6351E003826F, 0x142929670A0E6E70
+ .quad 0x27B70A8546D22FFC, 0x2E1B21385C26C926, 0x4D2C6DFC5AC42AED, 0x53380D139D95B3DF
+ .quad 0x650A73548BAF63DE, 0x766A0ABB3C77B2A8, 0x81C2C92E47EDAEE6, 0x92722C851482353B
+ .quad 0xA2BFE8A14CF10364, 0xA81A664BBC423001, 0xC24B8B70D0F89791, 0xC76C51A30654BE30
+ .quad 0xD192E819D6EF5218, 0xD69906245565A910, 0xF40E35855771202A, 0x106AA07032BBD1B8
+ .quad 0x19A4C116B8D2D0C8, 0x1E376C085141AB53, 0x2748774CDF8EEB99, 0x34B0BCB5E19B48A8
+ .quad 0x391C0CB3C5C95A63, 0x4ED8AA4AE3418ACB, 0x5B9CCA4F7763E373, 0x682E6FF3D6B2B8A3
+ .quad 0x748F82EE5DEFB2FC, 0x78A5636F43172F60, 0x84C87814A1F0AB72, 0x8CC702081A6439EC
+ .quad 0x90BEFFFA23631E28, 0xA4506CEBDE82BDE9, 0xBEF9A3F7B2C67915, 0xC67178F2E372532B
+ .quad 0xCA273ECEEA26619C, 0xD186B8C721C0C207, 0xEADA7DD6CDE0EB1E, 0xF57D4F7FEE6ED178
+ .quad 0x06F067AA72176FBA, 0x0A637DC5A2C898A6, 0x113F9804BEF90DAE, 0x1B710B35131C471B
+ .quad 0x28DB77F523047D84, 0x32CAAB7B40C72493, 0x3C9EBE0A15C9BEBC, 0x431D67C49C100D4C
+ .quad 0x4CC5D4BECB3E42B6, 0x597F299CFC657E2A, 0x5FCB6FAB3AD6FAEC, 0x6C44198C4A475817
+
+ .ifndef __YASM__
+#if defined(__linux__) && defined(__ELF__)
+ .section .note.GNU-stack,"",%progbits
+#endif
+ .endif \ No newline at end of file
diff --git a/src/Crypto/sha512_avx1_x64.asm b/src/Crypto/sha512_avx1_x64.asm
new file mode 100644
index 0000000..06321b5
--- /dev/null
+++ b/src/Crypto/sha512_avx1_x64.asm
@@ -0,0 +1,427 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Copyright (c) 2012, Intel Corporation
+;
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are
+; met:
+;
+; * Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+;
+; * Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the
+; distribution.
+;
+; * Neither the name of the Intel Corporation nor the names of its
+; contributors may be used to endorse or promote products derived from
+; this software without specific prior written permission.
+;
+;
+; THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY
+; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; Example YASM command lines:
+; Windows: yasm -f x64 -D WINABI sha512_avx.asm
+; Linux: yasm -f elf64 sha512_avx.asm
+;
+
+BITS 64
+section .text
+
+; Virtual Registers
+%ifdef WINABI
+ %define msg rcx ; ARG1
+ %define digest rdx ; ARG2
+ %define msglen r8 ; ARG3
+ %define T1 rsi
+ %define T2 rdi
+%else
+ %define msg rdi ; ARG1
+ %define digest rsi ; ARG2
+ %define msglen rdx ; ARG3
+ %define T1 rcx
+ %define T2 r8
+%endif
+%define a_64 r9
+%define b_64 r10
+%define c_64 r11
+%define d_64 r12
+%define e_64 r13
+%define f_64 r14
+%define g_64 r15
+%define h_64 rbx
+%define tmp0 rax
+
+; Local variables (stack frame)
+; Note: frame_size must be an odd multiple of 8 bytes to XMM align RSP
+struc frame
+ .W: resq 80 ; Message Schedule
+ .WK: resq 2 ; W[t] + K[t] | W[t+1] + K[t+1]
+
+%ifdef WINABI
+ .XMMSAVE: resdq 4
+ .GPRSAVE: resq 7
+%else
+ .GPRSAVE: resq 5
+%endif
+endstruc
+
+; Useful QWORD "arrays" for simpler memory references
+%define MSG(i) msg + 8*(i) ; Input message (arg1)
+%define DIGEST(i) digest + 8*(i) ; Output Digest (arg2)
+%define K_t(i) K512 + 8*(i) wrt rip ; SHA Constants (static mem)
+%define W_t(i) rsp + frame.W + 8*(i) ; Message Schedule (stack frame)
+%define WK_2(i) rsp + frame.WK + 8*((i) % 2) ; W[t]+K[t] (stack frame)
+; MSG, DIGEST, K_t, W_t are arrays
+; WK_2(t) points to 1 of 2 qwords at frame.WK depdending on t being odd/even
+
+%macro RotateState 0
+ ; Rotate symbles a..h right
+ %xdefine %%TMP h_64
+ %xdefine h_64 g_64
+ %xdefine g_64 f_64
+ %xdefine f_64 e_64
+ %xdefine e_64 d_64
+ %xdefine d_64 c_64
+ %xdefine c_64 b_64
+ %xdefine b_64 a_64
+ %xdefine a_64 %%TMP
+%endmacro
+
+%macro RORQ 2
+ ; shld is faster than ror on Sandybridge
+ shld %1, %1, (64 - %2)
+%endmacro
+
+%macro SHA512_Round 1
+%assign %%t (%1)
+
+ ; Compute Round %%t
+ mov T1, f_64 ; T1 = f
+ mov tmp0, e_64 ; tmp = e
+ xor T1, g_64 ; T1 = f ^ g
+ RORQ tmp0, 23 ; 41 ; tmp = e ror 23
+ and T1, e_64 ; T1 = (f ^ g) & e
+ xor tmp0, e_64 ; tmp = (e ror 23) ^ e
+ xor T1, g_64 ; T1 = ((f ^ g) & e) ^ g = CH(e,f,g)
+ add T1, [WK_2(%%t)] ; W[t] + K[t] from message scheduler
+ RORQ tmp0, 4 ; 18 ; tmp = ((e ror 23) ^ e) ror 4
+ xor tmp0, e_64 ; tmp = (((e ror 23) ^ e) ror 4) ^ e
+ mov T2, a_64 ; T2 = a
+ add T1, h_64 ; T1 = CH(e,f,g) + W[t] + K[t] + h
+ RORQ tmp0, 14 ; 14 ; tmp = ((((e ror23)^e)ror4)^e)ror14 = S1(e)
+ add T1, tmp0 ; T1 = CH(e,f,g) + W[t] + K[t] + S1(e)
+ mov tmp0, a_64 ; tmp = a
+ xor T2, c_64 ; T2 = a ^ c
+ and tmp0, c_64 ; tmp = a & c
+ and T2, b_64 ; T2 = (a ^ c) & b
+ xor T2, tmp0 ; T2 = ((a ^ c) & b) ^ (a & c) = Maj(a,b,c)
+ mov tmp0, a_64 ; tmp = a
+ RORQ tmp0, 5 ; 39 ; tmp = a ror 5
+ xor tmp0, a_64 ; tmp = (a ror 5) ^ a
+ add d_64, T1 ; e(next_state) = d + T1
+ RORQ tmp0, 6 ; 34 ; tmp = ((a ror 5) ^ a) ror 6
+ xor tmp0, a_64 ; tmp = (((a ror 5) ^ a) ror 6) ^ a
+ lea h_64, [T1 + T2] ; a(next_state) = T1 + Maj(a,b,c)
+ RORQ tmp0, 28 ; 28 ; tmp = ((((a ror5)^a)ror6)^a)ror28 = S0(a)
+ add h_64, tmp0 ; a(next_state) = T1 + Maj(a,b,c) S0(a)
+ RotateState
+%endmacro
+
+%macro SHA512_2Sched_2Round_avx 1
+%assign %%t %1
+ ; Compute rounds %%t-2 and %%t-1
+ ; Compute message schedule QWORDS %%t and %%t+1
+
+ ; Two rounds are computed based on the values for K[t-2]+W[t-2] and
+ ; K[t-1]+W[t-1] which were previously stored at WK_2 by the message
+ ; scheduler.
+ ; The two new schedule QWORDS are stored at [W_t(%%t)] and [W_t(%%t+1)].
+ ; They are then added to their respective SHA512 constants at
+ ; [K_t(%%t)] and [K_t(%%t+1)] and stored at dqword [WK_2(%%t)]
+ ; For brievity, the comments following vectored instructions only refer to
+ ; the first of a pair of QWORDS.
+ ; Eg. XMM4=W[t-2] really means XMM4={W[t-2]|W[t-1]}
+ ; The computation of the message schedule and the rounds are tightly
+ ; stitched to take advantage of instruction-level parallelism.
+ ; For clarity, integer instructions (for the rounds calculation) are indented
+ ; by one tab. Vectored instructions (for the message scheduler) are indented
+ ; by two tabs.
+
+ vmovdqa xmm4, [W_t(%%t-2)] ; XMM4 = W[t-2]
+ vmovdqu xmm5, [W_t(%%t-15)] ; XMM5 = W[t-15]
+ mov T1, f_64
+ vpsrlq xmm0, xmm4, 61 ; XMM0 = W[t-2]>>61
+ mov tmp0, e_64
+ vpsrlq xmm6, xmm5, 1 ; XMM6 = W[t-15]>>1
+ xor T1, g_64
+ RORQ tmp0, 23 ; 41
+ vpsrlq xmm1, xmm4, 19 ; XMM1 = W[t-2]>>19
+ and T1, e_64
+ xor tmp0, e_64
+ vpxor xmm0, xmm1 ; XMM0 = W[t-2]>>61 ^ W[t-2]>>19
+ xor T1, g_64
+ add T1, [WK_2(%%t)];
+ vpsrlq xmm7, xmm5, 8 ; XMM7 = W[t-15]>>8
+ RORQ tmp0, 4 ; 18
+ vpsrlq xmm2, xmm4, 6 ; XMM2 = W[t-2]>>6
+ xor tmp0, e_64
+ mov T2, a_64
+ add T1, h_64
+ vpxor xmm6, xmm7 ; XMM6 = W[t-15]>>1 ^ W[t-15]>>8
+ RORQ tmp0, 14 ; 14
+ add T1, tmp0
+ vpsrlq xmm8, xmm5, 7 ; XMM8 = W[t-15]>>7
+ mov tmp0, a_64
+ xor T2, c_64
+ vpsllq xmm3, xmm4, (64-61) ; XMM3 = W[t-2]<<3
+ and tmp0, c_64
+ and T2, b_64
+ vpxor xmm2, xmm3 ; XMM2 = W[t-2]>>6 ^ W[t-2]<<3
+ xor T2, tmp0
+ mov tmp0, a_64
+ vpsllq xmm9, xmm5, (64-1) ; XMM9 = W[t-15]<<63
+ RORQ tmp0, 5 ; 39
+ vpxor xmm8, xmm9 ; XMM8 = W[t-15]>>7 ^ W[t-15]<<63
+ xor tmp0, a_64
+ add d_64, T1
+ RORQ tmp0, 6 ; 34
+ xor tmp0, a_64
+ vpxor xmm6, xmm8 ; XMM6 = W[t-15]>>1 ^ W[t-15]>>8 ^ W[t-15]>>7 ^ W[t-15]<<63
+ lea h_64, [T1 + T2]
+ RORQ tmp0, 28 ; 28
+ vpsllq xmm4, (64-19) ; XMM4 = W[t-2]<<25
+ add h_64, tmp0
+ RotateState
+ vpxor xmm0, xmm4 ; XMM0 = W[t-2]>>61 ^ W[t-2]>>19 ^ W[t-2]<<25
+ mov T1, f_64
+ vpxor xmm0, xmm2 ; XMM0 = s1(W[t-2])
+ mov tmp0, e_64
+ xor T1, g_64
+ vpaddq xmm0, [W_t(%%t-16)] ; XMM0 = s1(W[t-2]) + W[t-16]
+ vmovdqu xmm1, [W_t(%%t- 7)] ; XMM1 = W[t-7]
+ RORQ tmp0, 23 ; 41
+ and T1, e_64
+ xor tmp0, e_64
+ xor T1, g_64
+ vpsllq xmm5, (64-8) ; XMM5 = W[t-15]<<56
+ add T1, [WK_2(%%t+1)]
+ vpxor xmm6, xmm5 ; XMM6 = s0(W[t-15])
+ RORQ tmp0, 4 ; 18
+ vpaddq xmm0, xmm6 ; XMM0 = s1(W[t-2]) + W[t-16] + s0(W[t-15])
+ xor tmp0, e_64
+ vpaddq xmm0, xmm1 ; XMM0 = W[t] = s1(W[t-2]) + W[t-7] + s0(W[t-15]) + W[t-16]
+ mov T2, a_64
+ add T1, h_64
+ RORQ tmp0, 14 ; 14
+ add T1, tmp0
+ vmovdqa [W_t(%%t)], xmm0 ; Store W[t]
+ vpaddq xmm0, [K_t(t)] ; Compute W[t]+K[t]
+ vmovdqa [WK_2(t)], xmm0 ; Store W[t]+K[t] for next rounds
+ mov tmp0, a_64
+ xor T2, c_64
+ and tmp0, c_64
+ and T2, b_64
+ xor T2, tmp0
+ mov tmp0, a_64
+ RORQ tmp0, 5 ; 39
+ xor tmp0, a_64
+ add d_64, T1
+ RORQ tmp0, 6 ; 34
+ xor tmp0, a_64
+ lea h_64, [T1 + T2]
+ RORQ tmp0, 28 ; 28
+ add h_64, tmp0
+ RotateState
+%endmacro
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; void sha512_avx(const void* M, void* D, uint64_t L);
+; Purpose: Updates the SHA512 digest stored at D with the message stored in M.
+; The size of the message pointed to by M must be an integer multiple of SHA512
+; message blocks.
+; L is the message length in SHA512 blocks
+global sha512_avx:function
+sha512_avx:
+ cmp msglen, 0
+ je .nowork
+
+ ; Allocate Stack Space
+ sub rsp, frame_size
+
+ ; Save GPRs
+ mov [rsp + frame.GPRSAVE + 8 * 0], rbx
+ mov [rsp + frame.GPRSAVE + 8 * 1], r12
+ mov [rsp + frame.GPRSAVE + 8 * 2], r13
+ mov [rsp + frame.GPRSAVE + 8 * 3], r14
+ mov [rsp + frame.GPRSAVE + 8 * 4], r15
+%ifdef WINABI
+ mov [rsp + frame.GPRSAVE + 8 * 5], rsi
+ mov [rsp + frame.GPRSAVE + 8 * 6], rdi
+%endif
+ ; Save XMMs
+%ifdef WINABI
+ vmovdqa [rsp + frame.XMMSAVE + 16 * 0], xmm6
+ vmovdqa [rsp + frame.XMMSAVE + 16 * 1], xmm7
+ vmovdqa [rsp + frame.XMMSAVE + 16 * 2], xmm8
+ vmovdqa [rsp + frame.XMMSAVE + 16 * 3], xmm9
+%endif
+
+.updateblock:
+
+ ; Load state variables
+ mov a_64, [DIGEST(0)]
+ mov b_64, [DIGEST(1)]
+ mov c_64, [DIGEST(2)]
+ mov d_64, [DIGEST(3)]
+ mov e_64, [DIGEST(4)]
+ mov f_64, [DIGEST(5)]
+ mov g_64, [DIGEST(6)]
+ mov h_64, [DIGEST(7)]
+
+ %assign t 0
+ %rep 80/2 + 1
+ ; (80 rounds) / (2 rounds/iteration) + (1 iteration)
+ ; +1 iteration because the scheduler leads hashing by 1 iteration
+ %if t < 2
+ ; BSWAP 2 QWORDS
+ vmovdqa xmm1, [XMM_QWORD_BSWAP wrt rip]
+ vmovdqu xmm0, [MSG(t)]
+ vpshufb xmm0, xmm0, xmm1 ; BSWAP
+ vmovdqa [W_t(t)], xmm0 ; Store Scheduled Pair
+ vpaddq xmm0, xmm0, [K_t(t)] ; Compute W[t]+K[t]
+ vmovdqa [WK_2(t)], xmm0 ; Store into WK for rounds
+ %elif t < 16
+ ; BSWAP 2 QWORDS, Compute 2 Rounds
+ vmovdqu xmm0, [MSG(t)]
+ vpshufb xmm0, xmm0, xmm1 ; BSWAP
+ SHA512_Round t - 2 ; Round t-2
+ vmovdqa [W_t(t)], xmm0 ; Store Scheduled Pair
+ vpaddq xmm0, xmm0, [K_t(t)] ; Compute W[t]+K[t]
+ SHA512_Round t - 1 ; Round t-1
+ vmovdqa [WK_2(t)], xmm0 ; W[t]+K[t] into WK
+ %elif t < 79
+ ; Schedule 2 QWORDS; Compute 2 Rounds
+ SHA512_2Sched_2Round_avx t
+ %else
+ ; Compute 2 Rounds
+ SHA512_Round t - 2
+ SHA512_Round t - 1
+ %endif
+ %assign t t+2
+ %endrep
+
+ ; Update digest
+ add [DIGEST(0)], a_64
+ add [DIGEST(1)], b_64
+ add [DIGEST(2)], c_64
+ add [DIGEST(3)], d_64
+ add [DIGEST(4)], e_64
+ add [DIGEST(5)], f_64
+ add [DIGEST(6)], g_64
+ add [DIGEST(7)], h_64
+
+ ; Advance to next message block
+ add msg, 16*8
+ dec msglen
+ jnz .updateblock
+
+ ; Restore XMMs
+%ifdef WINABI
+ vmovdqa xmm6, [rsp + frame.XMMSAVE + 16 * 0]
+ vmovdqa xmm7, [rsp + frame.XMMSAVE + 16 * 1]
+ vmovdqa xmm8, [rsp + frame.XMMSAVE + 16 * 2]
+ vmovdqa xmm9, [rsp + frame.XMMSAVE + 16 * 3]
+%endif
+ ; Restore GPRs
+ mov rbx, [rsp + frame.GPRSAVE + 8 * 0]
+ mov r12, [rsp + frame.GPRSAVE + 8 * 1]
+ mov r13, [rsp + frame.GPRSAVE + 8 * 2]
+ mov r14, [rsp + frame.GPRSAVE + 8 * 3]
+ mov r15, [rsp + frame.GPRSAVE + 8 * 4]
+%ifdef WINABI
+ mov rsi, [rsp + frame.GPRSAVE + 8 * 5]
+ mov rdi, [rsp + frame.GPRSAVE + 8 * 6]
+%endif
+ ; Restore Stack Pointer
+ add rsp, frame_size
+
+.nowork:
+ ret
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Binary Data
+
+section .data
+
+ALIGN 16
+
+; Mask for byte-swapping a couple of qwords in an XMM register using (v)pshufb.
+XMM_QWORD_BSWAP:
+ ddq 0x08090a0b0c0d0e0f0001020304050607
+
+; K[t] used in SHA512 hashing
+K512:
+ dq 0x428a2f98d728ae22,0x7137449123ef65cd
+ dq 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+ dq 0x3956c25bf348b538,0x59f111f1b605d019
+ dq 0x923f82a4af194f9b,0xab1c5ed5da6d8118
+ dq 0xd807aa98a3030242,0x12835b0145706fbe
+ dq 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+ dq 0x72be5d74f27b896f,0x80deb1fe3b1696b1
+ dq 0x9bdc06a725c71235,0xc19bf174cf692694
+ dq 0xe49b69c19ef14ad2,0xefbe4786384f25e3
+ dq 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+ dq 0x2de92c6f592b0275,0x4a7484aa6ea6e483
+ dq 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+ dq 0x983e5152ee66dfab,0xa831c66d2db43210
+ dq 0xb00327c898fb213f,0xbf597fc7beef0ee4
+ dq 0xc6e00bf33da88fc2,0xd5a79147930aa725
+ dq 0x06ca6351e003826f,0x142929670a0e6e70
+ dq 0x27b70a8546d22ffc,0x2e1b21385c26c926
+ dq 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+ dq 0x650a73548baf63de,0x766a0abb3c77b2a8
+ dq 0x81c2c92e47edaee6,0x92722c851482353b
+ dq 0xa2bfe8a14cf10364,0xa81a664bbc423001
+ dq 0xc24b8b70d0f89791,0xc76c51a30654be30
+ dq 0xd192e819d6ef5218,0xd69906245565a910
+ dq 0xf40e35855771202a,0x106aa07032bbd1b8
+ dq 0x19a4c116b8d2d0c8,0x1e376c085141ab53
+ dq 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+ dq 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+ dq 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+ dq 0x748f82ee5defb2fc,0x78a5636f43172f60
+ dq 0x84c87814a1f0ab72,0x8cc702081a6439ec
+ dq 0x90befffa23631e28,0xa4506cebde82bde9
+ dq 0xbef9a3f7b2c67915,0xc67178f2e372532b
+ dq 0xca273eceea26619c,0xd186b8c721c0c207
+ dq 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+ dq 0x06f067aa72176fba,0x0a637dc5a2c898a6
+ dq 0x113f9804bef90dae,0x1b710b35131c471b
+ dq 0x28db77f523047d84,0x32caab7b40c72493
+ dq 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+ dq 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+ dq 0x5fcb6fab3ad6faec,0x6c44198c4a475817
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha512_avx1_x86.asm b/src/Crypto/sha512_avx1_x86.asm
new file mode 100644
index 0000000..31c8bd0
--- /dev/null
+++ b/src/Crypto/sha512_avx1_x86.asm
@@ -0,0 +1,10 @@
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha512_avx2_x64.asm b/src/Crypto/sha512_avx2_x64.asm
new file mode 100644
index 0000000..1ba0866
--- /dev/null
+++ b/src/Crypto/sha512_avx2_x64.asm
@@ -0,0 +1,804 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Copyright (c) 2012, Intel Corporation
+;
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are
+; met:
+;
+; * Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+;
+; * Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the
+; distribution.
+;
+; * Neither the name of the Intel Corporation nor the names of its
+; contributors may be used to endorse or promote products derived from
+; this software without specific prior written permission.
+;
+;
+; THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY
+; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; Example YASM command lines:
+; Windows: yasm -f x64 -D WINABI sha512_rorx.asm
+; Linux: yasm -f elf64 sha512_rorx.asm
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; This code schedules 1 blocks at a time, with 4 lanes per block
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+BITS 64
+section .text
+
+; Virtual Registers
+%define Y_0 ymm4
+%define Y_1 ymm5
+%define Y_2 ymm6
+%define Y_3 ymm7
+
+%define YTMP0 ymm0
+%define YTMP1 ymm1
+%define YTMP2 ymm2
+%define YTMP3 ymm3
+%define YTMP4 ymm8
+%define XFER YTMP0
+
+%define BYTE_FLIP_MASK ymm9
+
+%ifdef WINABI
+ %define INP rcx ; 1st arg
+ %define CTX rdx ; 2nd arg
+ %define NUM_BLKS r8 ; 3rd arg
+ %define c rdi
+ %define d rsi
+ %define e r8
+ %define y3 rcx
+%else
+ %define INP rdi ; 1st arg
+ %define CTX rsi ; 2nd arg
+ %define NUM_BLKS rdx ; 3rd arg
+ %define c rcx
+ %define d r8
+ %define e rdx
+ %define y3 rdi
+%endif
+
+%define TBL rbp
+
+%define a rax
+%define b rbx
+
+%define f r9
+%define g r10
+%define h r11
+%define old_h r11
+
+%define T1 r12
+%define y0 r13
+%define y1 r14
+%define y2 r15
+
+%define y4 r12
+
+; Local variables (stack frame)
+struc frame
+ .XFER: resq 4
+ .SRND: resq 1
+ .INP: resq 1
+ .INPEND: resq 1
+ .RSPSAVE: resq 1
+
+%ifdef WINABI
+ .XMMSAVE: resdq 4
+ .GPRSAVE: resq 8
+%else
+ .GPRSAVE: resq 6
+%endif
+endstruc
+
+%define VMOVDQ vmovdqu ;; assume buffers not aligned
+
+; addm [mem], reg
+; Add reg to mem using reg-mem add and store
+%macro addm 2
+ add %2, %1
+ mov %1, %2
+%endm
+
+
+; COPY_YMM_AND_BSWAP ymm, [mem], byte_flip_mask
+; Load ymm with mem and byte swap each dword
+%macro COPY_YMM_AND_BSWAP 3
+ VMOVDQ %1, %2
+ vpshufb %1, %1 ,%3
+%endmacro
+; rotate_Ys
+; Rotate values of symbols Y0...Y3
+%macro rotate_Ys 0
+ %xdefine %%Y_ Y_0
+ %xdefine Y_0 Y_1
+ %xdefine Y_1 Y_2
+ %xdefine Y_2 Y_3
+ %xdefine Y_3 %%Y_
+%endm
+
+; RotateState
+%macro RotateState 0
+ ; Rotate symbles a..h right
+ %xdefine old_h h
+ %xdefine %%TMP_ h
+ %xdefine h g
+ %xdefine g f
+ %xdefine f e
+ %xdefine e d
+ %xdefine d c
+ %xdefine c b
+ %xdefine b a
+ %xdefine a %%TMP_
+%endm
+
+; %macro MY_VPALIGNR YDST, YSRC1, YSRC2, RVAL
+; YDST = {YSRC1, YSRC2} >> RVAL*8
+%macro MY_VPALIGNR 4
+%define %%YDST %1
+%define %%YSRC1 %2
+%define %%YSRC2 %3
+%define %%RVAL %4
+ vperm2f128 %%YDST, %%YSRC1, %%YSRC2, 0x3 ; YDST = {YS1_LO, YS2_HI}
+ vpalignr %%YDST, %%YDST, %%YSRC2, %%RVAL ; YDST = {YDS1, YS2} >> RVAL*8
+%endm
+
+%macro FOUR_ROUNDS_AND_SCHED 0
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; Extract w[t-7]
+ MY_VPALIGNR YTMP0, Y_3, Y_2, 8 ; YTMP0 = W[-7]
+ ; Calculate w[t-16] + w[t-7]
+ vpaddq YTMP0, YTMP0, Y_0 ; YTMP0 = W[-7] + W[-16]
+ ; Extract w[t-15]
+ MY_VPALIGNR YTMP1, Y_1, Y_0, 8 ; YTMP1 = W[-15]
+
+ ; Calculate sigma0
+
+ ; Calculate w[t-15] ror 1
+ vpsrlq YTMP2, YTMP1, 1
+ vpsllq YTMP3, YTMP1, (64-1)
+ vpor YTMP3, YTMP3, YTMP2 ; YTMP3 = W[-15] ror 1
+ ; Calculate w[t-15] shr 7
+ vpsrlq YTMP4, YTMP1, 7 ; YTMP4 = W[-15] >> 7
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+
+ add h, [rsp+frame.XFER+0*8] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+ mov y2, f ; y2 = f ; CH
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ xor y2, g ; y2 = f^g ; CH
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+
+ and y2, e ; y2 = (f^g)&e ; CH
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ add d, h ; d = k + w + h + d ; --
+
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+
+ add y2, y0 ; y2 = S1 + CH ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+RotateState
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; Calculate w[t-15] ror 8
+ vpsrlq YTMP2, YTMP1, 8
+ vpsllq YTMP1, YTMP1, (64-8)
+ vpor YTMP1, YTMP1, YTMP2 ; YTMP1 = W[-15] ror 8
+ ; XOR the three components
+ vpxor YTMP3, YTMP3, YTMP4 ; YTMP3 = W[-15] ror 1 ^ W[-15] >> 7
+ vpxor YTMP1, YTMP3, YTMP1 ; YTMP1 = s0
+
+
+ ; Add three components, w[t-16], w[t-7] and sigma0
+ vpaddq YTMP0, YTMP0, YTMP1 ; YTMP0 = W[-16] + W[-7] + s0
+ ; Move to appropriate lanes for calculating w[16] and w[17]
+ vperm2f128 Y_0, YTMP0, YTMP0, 0x0 ; Y_0 = W[-16] + W[-7] + s0 {BABA}
+ ; Move to appropriate lanes for calculating w[18] and w[19]
+ vpand YTMP0, YTMP0, [MASK_YMM_LO wrt rip] ; YTMP0 = W[-16] + W[-7] + s0 {DC00}
+
+ ; Calculate w[16] and w[17] in both 128 bit lanes
+
+ ; Calculate sigma1 for w[16] and w[17] on both 128 bit lanes
+ vperm2f128 YTMP2, Y_3, Y_3, 0x11 ; YTMP2 = W[-2] {BABA}
+ vpsrlq YTMP4, YTMP2, 6 ; YTMP4 = W[-2] >> 6 {BABA}
+
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+ add h, [rsp+frame.XFER+1*8] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+
+ mov y2, f ; y2 = f ; CH
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ xor y2, g ; y2 = f^g ; CH
+
+
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ and y2, e ; y2 = (f^g)&e ; CH
+ add d, h ; d = k + w + h + d ; --
+
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+RotateState
+
+
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+ vpsrlq YTMP3, YTMP2, 19 ; YTMP3 = W[-2] >> 19 {BABA}
+ vpsllq YTMP1, YTMP2, (64-19) ; YTMP1 = W[-2] << 19 {BABA}
+ vpor YTMP3, YTMP3, YTMP1 ; YTMP3 = W[-2] ror 19 {BABA}
+ vpxor YTMP4, YTMP4, YTMP3 ; YTMP4 = W[-2] ror 19 ^ W[-2] >> 6 {BABA}
+ vpsrlq YTMP3, YTMP2, 61 ; YTMP3 = W[-2] >> 61 {BABA}
+ vpsllq YTMP1, YTMP2, (64-61) ; YTMP1 = W[-2] << 61 {BABA}
+ vpor YTMP3, YTMP3, YTMP1 ; YTMP3 = W[-2] ror 61 {BABA}
+ vpxor YTMP4, YTMP4, YTMP3 ; YTMP4 = s1 = (W[-2] ror 19) ^ (W[-2] ror 61) ^ (W[-2] >> 6) {BABA}
+
+ ; Add sigma1 to the other compunents to get w[16] and w[17]
+ vpaddq Y_0, Y_0, YTMP4 ; Y_0 = {W[1], W[0], W[1], W[0]}
+
+ ; Calculate sigma1 for w[18] and w[19] for upper 128 bit lane
+ vpsrlq YTMP4, Y_0, 6 ; YTMP4 = W[-2] >> 6 {DC--}
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ add h, [rsp+frame.XFER+2*8] ; h = k + w + h ; --
+
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+ or y3, c ; y3 = a|c ; MAJA
+ mov y2, f ; y2 = f ; CH
+ xor y2, g ; y2 = f^g ; CH
+
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+ add d, h ; d = k + w + h + d ; --
+ and y3, b ; y3 = (a|c)&b ; MAJA
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+RotateState
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ vpsrlq YTMP3, Y_0, 19 ; YTMP3 = W[-2] >> 19 {DC--}
+ vpsllq YTMP1, Y_0, (64-19) ; YTMP1 = W[-2] << 19 {DC--}
+ vpor YTMP3, YTMP3, YTMP1 ; YTMP3 = W[-2] ror 19 {DC--}
+ vpxor YTMP4, YTMP4, YTMP3 ; YTMP4 = W[-2] ror 19 ^ W[-2] >> 6 {DC--}
+ vpsrlq YTMP3, Y_0, 61 ; YTMP3 = W[-2] >> 61 {DC--}
+ vpsllq YTMP1, Y_0, (64-61) ; YTMP1 = W[-2] << 61 {DC--}
+ vpor YTMP3, YTMP3, YTMP1 ; YTMP3 = W[-2] ror 61 {DC--}
+ vpxor YTMP4, YTMP4, YTMP3 ; YTMP4 = s1 = (W[-2] ror 19) ^ (W[-2] ror 61) ^ (W[-2] >> 6) {DC--}
+
+ ; Add the sigma0 + w[t-7] + w[t-16] for w[18] and w[19] to newly calculated sigma1 to get w[18] and w[19]
+ vpaddq YTMP2, YTMP0, YTMP4 ; YTMP2 = {W[3], W[2], --, --}
+
+ ; Form w[19, w[18], w17], w[16]
+ vpblendd Y_0, Y_0, YTMP2, 0xF0 ; Y_0 = {W[3], W[2], W[1], W[0]}
+; vperm2f128 Y_0, Y_0, YTMP2, 0x30
+
+ mov y3, a ; y3 = a ; MAJA
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+ add h, [rsp+frame.XFER+3*8] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+
+ mov y2, f ; y2 = f ; CH
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ xor y2, g ; y2 = f^g ; CH
+
+
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add d, h ; d = k + w + h + d ; --
+ and y3, b ; y3 = (a|c)&b ; MAJA
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ add y2, y0 ; y2 = S1 + CH ; --
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and T1, c ; T1 = a&c ; MAJB
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+
+ add h, y1 ; h = k + w + h + S0 ; --
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+RotateState
+
+rotate_Ys
+%endm
+
+%macro DO_4ROUNDS 0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+ add h, [rsp + frame.XFER + 8*0] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ ;add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+
+ ;add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ RotateState
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ add old_h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add old_h, y3 ; h = t1 + S0 + MAJ ; --
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+ add h, [rsp + frame.XFER + 8*1] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ ;add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+
+ ;add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ RotateState
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ add old_h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add old_h, y3 ; h = t1 + S0 + MAJ ; --
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+ add h, [rsp + frame.XFER + 8*2] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ ;add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+
+ ;add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ RotateState
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RND N + 3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ add old_h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+ mov y2, f ; y2 = f ; CH
+ rorx y0, e, 41 ; y0 = e >> 41 ; S1A
+ rorx y1, e, 18 ; y1 = e >> 18 ; S1B
+ xor y2, g ; y2 = f^g ; CH
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ; S1
+ rorx y1, e, 14 ; y1 = (e >> 14) ; S1
+ and y2, e ; y2 = (f^g)&e ; CH
+ add old_h, y3 ; h = t1 + S0 + MAJ ; --
+
+ xor y0, y1 ; y0 = (e>>41) ^ (e>>18) ^ (e>>14) ; S1
+ rorx T1, a, 34 ; T1 = a >> 34 ; S0B
+ xor y2, g ; y2 = CH = ((f^g)&e)^g ; CH
+ rorx y1, a, 39 ; y1 = a >> 39 ; S0A
+ mov y3, a ; y3 = a ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ; S0
+ rorx T1, a, 28 ; T1 = (a >> 28) ; S0
+ add h, [rsp + frame.XFER + 8*3] ; h = k + w + h ; --
+ or y3, c ; y3 = a|c ; MAJA
+
+ xor y1, T1 ; y1 = (a>>39) ^ (a>>34) ^ (a>>28) ; S0
+ mov T1, a ; T1 = a ; MAJB
+ and y3, b ; y3 = (a|c)&b ; MAJA
+ and T1, c ; T1 = a&c ; MAJB
+ add y2, y0 ; y2 = S1 + CH ; --
+
+
+ add d, h ; d = k + w + h + d ; --
+ or y3, T1 ; y3 = MAJ = (a|c)&b)|(a&c) ; MAJ
+ add h, y1 ; h = k + w + h + S0 ; --
+
+ add d, y2 ; d = k + w + h + d + S1 + CH = d + t1 ; --
+
+
+ add h, y2 ; h = k + w + h + S0 + S1 + CH = t1 + S0 ; --
+
+ add h, y3 ; h = t1 + S0 + MAJ ; --
+
+ RotateState
+
+%endm
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; void sha512_rorx(const void* M, void* D, uint64_t L);
+; Purpose: Updates the SHA512 digest stored at D with the message stored in M.
+; The size of the message pointed to by M must be an integer multiple of SHA512
+; message blocks.
+; L is the message length in SHA512 blocks
+global sha512_rorx:function
+global _sha512_rorx:function
+sha512_rorx:
+_sha512_rorx:
+
+ ; Allocate Stack Space
+ mov rax, rsp
+ sub rsp, frame_size
+ and rsp, ~(0x20 - 1)
+ mov [rsp + frame.RSPSAVE], rax
+
+ ; Save GPRs
+ mov [rsp + frame.GPRSAVE + 8 * 0], rbp
+ mov [rsp + frame.GPRSAVE + 8 * 1], rbx
+ mov [rsp + frame.GPRSAVE + 8 * 2], r12
+ mov [rsp + frame.GPRSAVE + 8 * 3], r13
+ mov [rsp + frame.GPRSAVE + 8 * 4], r14
+ mov [rsp + frame.GPRSAVE + 8 * 5], r15
+%ifdef WINABI
+ mov [rsp + frame.GPRSAVE + 8 * 6], rsi
+ mov [rsp + frame.GPRSAVE + 8 * 7], rdi
+%endif
+
+%ifdef WINABI
+ vmovdqa [rsp + frame.XMMSAVE + 0*16], xmm6
+ vmovdqa [rsp + frame.XMMSAVE + 1*16], xmm7
+ vmovdqa [rsp + frame.XMMSAVE + 2*16], xmm8
+ vmovdqa [rsp + frame.XMMSAVE + 3*16], xmm9
+%endif
+
+ vpblendd xmm0, xmm0, xmm1, 0xf0
+ vpblendd ymm0, ymm0, ymm1, 0xf0
+
+ shl NUM_BLKS, 7 ; convert to bytes
+ jz done_hash
+ add NUM_BLKS, INP ; pointer to end of data
+ mov [rsp + frame.INPEND], NUM_BLKS
+
+ ;; load initial digest
+ mov a,[8*0 + CTX]
+ mov b,[8*1 + CTX]
+ mov c,[8*2 + CTX]
+ mov d,[8*3 + CTX]
+ mov e,[8*4 + CTX]
+ mov f,[8*5 + CTX]
+ mov g,[8*6 + CTX]
+ mov h,[8*7 + CTX]
+
+ vmovdqa BYTE_FLIP_MASK, [PSHUFFLE_BYTE_FLIP_MASK wrt rip]
+
+loop0:
+ lea TBL,[K512 wrt rip]
+
+ ;; byte swap first 16 dwords
+ COPY_YMM_AND_BSWAP Y_0, [INP + 0*32], BYTE_FLIP_MASK
+ COPY_YMM_AND_BSWAP Y_1, [INP + 1*32], BYTE_FLIP_MASK
+ COPY_YMM_AND_BSWAP Y_2, [INP + 2*32], BYTE_FLIP_MASK
+ COPY_YMM_AND_BSWAP Y_3, [INP + 3*32], BYTE_FLIP_MASK
+
+ mov [rsp + frame.INP], INP
+
+ ;; schedule 64 input dwords, by doing 12 rounds of 4 each
+ mov qword[rsp + frame.SRND],4
+
+align 16
+loop1:
+ vpaddq XFER, Y_0, [TBL + 0*32]
+ vmovdqa [rsp + frame.XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ vpaddq XFER, Y_0, [TBL + 1*32]
+ vmovdqa [rsp + frame.XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ vpaddq XFER, Y_0, [TBL + 2*32]
+ vmovdqa [rsp + frame.XFER], XFER
+ FOUR_ROUNDS_AND_SCHED
+
+ vpaddq XFER, Y_0, [TBL + 3*32]
+ vmovdqa [rsp + frame.XFER], XFER
+ add TBL, 4*32
+ FOUR_ROUNDS_AND_SCHED
+
+ sub qword[rsp + frame.SRND], 1
+ jne loop1
+
+ mov qword[rsp + frame.SRND], 2
+loop2:
+ vpaddq XFER, Y_0, [TBL + 0*32]
+ vmovdqa [rsp + frame.XFER], XFER
+ DO_4ROUNDS
+ vpaddq XFER, Y_1, [TBL + 1*32]
+ vmovdqa [rsp + frame.XFER], XFER
+ add TBL, 2*32
+ DO_4ROUNDS
+
+ vmovdqa Y_0, Y_2
+ vmovdqa Y_1, Y_3
+
+ sub qword[rsp + frame.SRND], 1
+ jne loop2
+
+ addm [8*0 + CTX],a
+ addm [8*1 + CTX],b
+ addm [8*2 + CTX],c
+ addm [8*3 + CTX],d
+ addm [8*4 + CTX],e
+ addm [8*5 + CTX],f
+ addm [8*6 + CTX],g
+ addm [8*7 + CTX],h
+
+ mov INP, [rsp + frame.INP]
+ add INP, 128
+ cmp INP, [rsp + frame.INPEND]
+ jne loop0
+
+ done_hash:
+%ifdef WINABI
+ vmovdqa xmm6, [rsp + frame.XMMSAVE + 0*16]
+ vmovdqa xmm7, [rsp + frame.XMMSAVE + 1*16]
+ vmovdqa xmm8, [rsp + frame.XMMSAVE + 2*16]
+ vmovdqa xmm9, [rsp + frame.XMMSAVE + 3*16]
+%endif
+
+; Restore GPRs
+ mov rbp, [rsp + frame.GPRSAVE + 8 * 0]
+ mov rbx, [rsp + frame.GPRSAVE + 8 * 1]
+ mov r12, [rsp + frame.GPRSAVE + 8 * 2]
+ mov r13, [rsp + frame.GPRSAVE + 8 * 3]
+ mov r14, [rsp + frame.GPRSAVE + 8 * 4]
+ mov r15, [rsp + frame.GPRSAVE + 8 * 5]
+%ifdef WINABI
+ mov rsi, [rsp + frame.GPRSAVE + 8 * 6]
+ mov rdi, [rsp + frame.GPRSAVE + 8 * 7]
+%endif
+ ; Restore Stack Pointer
+ mov rsp, [rsp + frame.RSPSAVE]
+
+ ret
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Binary Data
+
+section .data
+
+align 64
+; K[t] used in SHA512 hashing
+K512:
+ dq 0x428a2f98d728ae22,0x7137449123ef65cd
+ dq 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+ dq 0x3956c25bf348b538,0x59f111f1b605d019
+ dq 0x923f82a4af194f9b,0xab1c5ed5da6d8118
+ dq 0xd807aa98a3030242,0x12835b0145706fbe
+ dq 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+ dq 0x72be5d74f27b896f,0x80deb1fe3b1696b1
+ dq 0x9bdc06a725c71235,0xc19bf174cf692694
+ dq 0xe49b69c19ef14ad2,0xefbe4786384f25e3
+ dq 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+ dq 0x2de92c6f592b0275,0x4a7484aa6ea6e483
+ dq 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+ dq 0x983e5152ee66dfab,0xa831c66d2db43210
+ dq 0xb00327c898fb213f,0xbf597fc7beef0ee4
+ dq 0xc6e00bf33da88fc2,0xd5a79147930aa725
+ dq 0x06ca6351e003826f,0x142929670a0e6e70
+ dq 0x27b70a8546d22ffc,0x2e1b21385c26c926
+ dq 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+ dq 0x650a73548baf63de,0x766a0abb3c77b2a8
+ dq 0x81c2c92e47edaee6,0x92722c851482353b
+ dq 0xa2bfe8a14cf10364,0xa81a664bbc423001
+ dq 0xc24b8b70d0f89791,0xc76c51a30654be30
+ dq 0xd192e819d6ef5218,0xd69906245565a910
+ dq 0xf40e35855771202a,0x106aa07032bbd1b8
+ dq 0x19a4c116b8d2d0c8,0x1e376c085141ab53
+ dq 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+ dq 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+ dq 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+ dq 0x748f82ee5defb2fc,0x78a5636f43172f60
+ dq 0x84c87814a1f0ab72,0x8cc702081a6439ec
+ dq 0x90befffa23631e28,0xa4506cebde82bde9
+ dq 0xbef9a3f7b2c67915,0xc67178f2e372532b
+ dq 0xca273eceea26619c,0xd186b8c721c0c207
+ dq 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+ dq 0x06f067aa72176fba,0x0a637dc5a2c898a6
+ dq 0x113f9804bef90dae,0x1b710b35131c471b
+ dq 0x28db77f523047d84,0x32caab7b40c72493
+ dq 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+ dq 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+ dq 0x5fcb6fab3ad6faec,0x6c44198c4a475817
+
+align 32
+
+; Mask for byte-swapping a couple of qwords in an XMM register using (v)pshufb.
+PSHUFFLE_BYTE_FLIP_MASK: ddq 0x08090a0b0c0d0e0f0001020304050607
+ ddq 0x18191a1b1c1d1e1f1011121314151617
+
+MASK_YMM_LO: ddq 0x00000000000000000000000000000000
+ ddq 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha512_avx2_x86.asm b/src/Crypto/sha512_avx2_x86.asm
new file mode 100644
index 0000000..31c8bd0
--- /dev/null
+++ b/src/Crypto/sha512_avx2_x86.asm
@@ -0,0 +1,10 @@
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha512_sse4_x64.asm b/src/Crypto/sha512_sse4_x64.asm
new file mode 100644
index 0000000..d4a9987
--- /dev/null
+++ b/src/Crypto/sha512_sse4_x64.asm
@@ -0,0 +1,416 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Copyright (c) 2012, Intel Corporation
+;
+; All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are
+; met:
+;
+; * Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+;
+; * Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the
+; distribution.
+;
+; * Neither the name of the Intel Corporation nor the names of its
+; contributors may be used to endorse or promote products derived from
+; this software without specific prior written permission.
+;
+;
+; THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY
+; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
+; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; Example YASM command lines:
+; Windows: yasm -f x64 -D WINABI sha512_sse4.asm
+; Linux: yasm -f elf64 sha512_sse4.asm
+;
+
+# Modified by kerukuro for use in cppcrypto.
+
+BITS 64
+section .text
+
+; Virtual Registers
+%ifdef WINABI
+ %define msg rcx ; ARG1
+ %define digest rdx ; ARG2
+ %define msglen r8 ; ARG3
+ %define T1 rsi
+ %define T2 rdi
+%else
+ %define msg rdi ; ARG1
+ %define digest rsi ; ARG2
+ %define msglen rdx ; ARG3
+ %define T1 rcx
+ %define T2 r8
+%endif
+%define a_64 r9
+%define b_64 r10
+%define c_64 r11
+%define d_64 r12
+%define e_64 r13
+%define f_64 r14
+%define g_64 r15
+%define h_64 rbx
+%define tmp0 rax
+
+; Local variables (stack frame)
+; Note: frame_size must be an odd multiple of 8 bytes to XMM align RSP
+struc frame
+ .W: resq 80 ; Message Schedule
+ .WK: resq 2 ; W[t] + K[t] | W[t+1] + K[t+1]
+
+%ifdef WINABI
+ .GPRSAVE: resq 7
+%else
+ .GPRSAVE: resq 5
+%endif
+endstruc
+
+; Useful QWORD "arrays" for simpler memory references
+%define MSG(i) msg + 8*(i) ; Input message (arg1)
+%define DIGEST(i) digest + 8*(i) ; Output Digest (arg2)
+%define K_t(i) K512 + 8*(i) wrt rip ; SHA Constants (static mem)
+%define W_t(i) rsp + frame.W + 8*(i) ; Message Schedule (stack frame)
+%define WK_2(i) rsp + frame.WK + 8*((i) % 2) ; W[t]+K[t] (stack frame)
+; MSG, DIGEST, K_t, W_t are arrays
+; WK_2(t) points to 1 of 2 qwords at frame.WK depdending on t being odd/even
+
+%macro RotateState 0
+ ; Rotate symbles a..h right
+ %xdefine %%TMP h_64
+ %xdefine h_64 g_64
+ %xdefine g_64 f_64
+ %xdefine f_64 e_64
+ %xdefine e_64 d_64
+ %xdefine d_64 c_64
+ %xdefine c_64 b_64
+ %xdefine b_64 a_64
+ %xdefine a_64 %%TMP
+%endmacro
+
+%macro SHA512_Round 1
+%assign %%t (%1)
+
+ ; Compute Round %%t
+ mov T1, f_64 ; T1 = f
+ mov tmp0, e_64 ; tmp = e
+ xor T1, g_64 ; T1 = f ^ g
+ ror tmp0, 23 ; 41 ; tmp = e ror 23
+ and T1, e_64 ; T1 = (f ^ g) & e
+ xor tmp0, e_64 ; tmp = (e ror 23) ^ e
+ xor T1, g_64 ; T1 = ((f ^ g) & e) ^ g = CH(e,f,g)
+ add T1, [WK_2(%%t)] ; W[t] + K[t] from message scheduler
+ ror tmp0, 4 ; 18 ; tmp = ((e ror 23) ^ e) ror 4
+ xor tmp0, e_64 ; tmp = (((e ror 23) ^ e) ror 4) ^ e
+ mov T2, a_64 ; T2 = a
+ add T1, h_64 ; T1 = CH(e,f,g) + W[t] + K[t] + h
+ ror tmp0, 14 ; 14 ; tmp = ((((e ror23)^e)ror4)^e)ror14 = S1(e)
+ add T1, tmp0 ; T1 = CH(e,f,g) + W[t] + K[t] + S1(e)
+ mov tmp0, a_64 ; tmp = a
+ xor T2, c_64 ; T2 = a ^ c
+ and tmp0, c_64 ; tmp = a & c
+ and T2, b_64 ; T2 = (a ^ c) & b
+ xor T2, tmp0 ; T2 = ((a ^ c) & b) ^ (a & c) = Maj(a,b,c)
+ mov tmp0, a_64 ; tmp = a
+ ror tmp0, 5 ; 39 ; tmp = a ror 5
+ xor tmp0, a_64 ; tmp = (a ror 5) ^ a
+ add d_64, T1 ; e(next_state) = d + T1
+ ror tmp0, 6 ; 34 ; tmp = ((a ror 5) ^ a) ror 6
+ xor tmp0, a_64 ; tmp = (((a ror 5) ^ a) ror 6) ^ a
+ lea h_64, [T1 + T2] ; a(next_state) = T1 + Maj(a,b,c)
+ ror tmp0, 28 ; 28 ; tmp = ((((a ror5)^a)ror6)^a)ror28 = S0(a)
+ add h_64, tmp0 ; a(next_state) = T1 + Maj(a,b,c) S0(a)
+ RotateState
+%endmacro
+
+%macro SHA512_2Sched_2Round_sse 1
+%assign %%t (%1)
+
+ ; Compute rounds %%t-2 and %%t-1
+ ; Compute message schedule QWORDS %%t and %%t+1
+
+ ; Two rounds are computed based on the values for K[t-2]+W[t-2] and
+ ; K[t-1]+W[t-1] which were previously stored at WK_2 by the message
+ ; scheduler.
+ ; The two new schedule QWORDS are stored at [W_t(%%t)] and [W_t(%%t+1)].
+ ; They are then added to their respective SHA512 constants at
+ ; [K_t(%%t)] and [K_t(%%t+1)] and stored at dqword [WK_2(%%t)]
+ ; For brievity, the comments following vectored instructions only refer to
+ ; the first of a pair of QWORDS.
+ ; Eg. XMM2=W[t-2] really means XMM2={W[t-2]|W[t-1]}
+ ; The computation of the message schedule and the rounds are tightly
+ ; stitched to take advantage of instruction-level parallelism.
+ ; For clarity, integer instructions (for the rounds calculation) are indented
+ ; by one tab. Vectored instructions (for the message scheduler) are indented
+ ; by two tabs.
+
+ mov T1, f_64
+ movdqa xmm2, [W_t(%%t-2)] ; XMM2 = W[t-2]
+ xor T1, g_64
+ and T1, e_64
+ movdqa xmm0, xmm2 ; XMM0 = W[t-2]
+ xor T1, g_64
+ add T1, [WK_2(%%t)]
+ movdqu xmm5, [W_t(%%t-15)] ; XMM5 = W[t-15]
+ mov tmp0, e_64
+ ror tmp0, 23 ; 41
+ movdqa xmm3, xmm5 ; XMM3 = W[t-15]
+ xor tmp0, e_64
+ ror tmp0, 4 ; 18
+ psrlq xmm0, 61 - 19 ; XMM0 = W[t-2] >> 42
+ xor tmp0, e_64
+ ror tmp0, 14 ; 14
+ psrlq xmm3, (8 - 7) ; XMM3 = W[t-15] >> 1
+ add T1, tmp0
+ add T1, h_64
+ pxor xmm0, xmm2 ; XMM0 = (W[t-2] >> 42) ^ W[t-2]
+ mov T2, a_64
+ xor T2, c_64
+ pxor xmm3, xmm5 ; XMM3 = (W[t-15] >> 1) ^ W[t-15]
+ and T2, b_64
+ mov tmp0, a_64
+ psrlq xmm0, 19 - 6 ; XMM0 = ((W[t-2]>>42)^W[t-2])>>13
+ and tmp0, c_64
+ xor T2, tmp0
+ psrlq xmm3, (7 - 1) ; XMM3 = ((W[t-15]>>1)^W[t-15])>>6
+ mov tmp0, a_64
+ ror tmp0, 5 ; 39
+ pxor xmm0, xmm2 ; XMM0 = (((W[t-2]>>42)^W[t-2])>>13)^W[t-2]
+ xor tmp0, a_64
+ ror tmp0, 6 ; 34
+ pxor xmm3, xmm5 ; XMM3 = (((W[t-15]>>1)^W[t-15])>>6)^W[t-15]
+ xor tmp0, a_64
+ ror tmp0, 28 ; 28
+ psrlq xmm0, 6 ; XMM0 = ((((W[t-2]>>42)^W[t-2])>>13)^W[t-2])>>6
+ add T2, tmp0
+ add d_64, T1
+ psrlq xmm3, 1 ; XMM3 = (((W[t-15]>>1)^W[t-15])>>6)^W[t-15]>>1
+ lea h_64, [T1 + T2]
+ RotateState
+ movdqa xmm1, xmm2 ; XMM1 = W[t-2]
+ mov T1, f_64
+ xor T1, g_64
+ movdqa xmm4, xmm5 ; XMM4 = W[t-15]
+ and T1, e_64
+ xor T1, g_64
+ psllq xmm1, (64 - 19) - (64 - 61) ; XMM1 = W[t-2] << 42
+ add T1, [WK_2(%%t+1)]
+ mov tmp0, e_64
+ psllq xmm4, (64 - 1) - (64 - 8) ; XMM4 = W[t-15] << 7
+ ror tmp0, 23 ; 41
+ xor tmp0, e_64
+ pxor xmm1, xmm2 ; XMM1 = (W[t-2] << 42)^W[t-2]
+ ror tmp0, 4 ; 18
+ xor tmp0, e_64
+ pxor xmm4, xmm5 ; XMM4 = (W[t-15]<<7)^W[t-15]
+ ror tmp0, 14 ; 14
+ add T1, tmp0
+ psllq xmm1, (64 - 61) ; XMM1 = ((W[t-2] << 42)^W[t-2])<<3
+ add T1, h_64
+ mov T2, a_64
+ psllq xmm4, (64 - 8) ; XMM4 = ((W[t-15]<<7)^W[t-15])<<56
+ xor T2, c_64
+ and T2, b_64
+ pxor xmm0, xmm1 ; XMM0 = s1(W[t-2])
+ mov tmp0, a_64
+ and tmp0, c_64
+ movdqu xmm1, [W_t(%%t- 7)] ; XMM1 = W[t-7]
+ xor T2, tmp0
+ pxor xmm3, xmm4 ; XMM3 = s0(W[t-15])
+ mov tmp0, a_64
+ paddq xmm0, xmm3 ; XMM0 = s1(W[t-2]) + s0(W[t-15])
+ ror tmp0, 5 ; 39
+ paddq xmm0, [W_t(%%t-16)] ; XMM0 = s1(W[t-2]) + s0(W[t-15]) + W[t-16]
+ xor tmp0, a_64
+ paddq xmm0, xmm1 ; XMM0 = s1(W[t-2]) + W[t-7] + s0(W[t-15]) + W[t-16]
+ ror tmp0, 6 ; 34
+ movdqa [W_t(%%t)], xmm0 ; Store scheduled qwords
+ xor tmp0, a_64
+ paddq xmm0, [K_t(t)] ; Compute W[t]+K[t]
+ ror tmp0, 28 ; 28
+ movdqa [WK_2(t)], xmm0 ; Store W[t]+K[t] for next rounds
+ add T2, tmp0
+ add d_64, T1
+ lea h_64, [T1 + T2]
+ RotateState
+%endmacro
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; void sha512_sse4(const void* M, void* D, uint64_t L);
+; Purpose: Updates the SHA512 digest stored at D with the message stored in M.
+; The size of the message pointed to by M must be an integer multiple of SHA512
+; message blocks.
+; L is the message length in SHA512 blocks.
+global sha512_sse4:function
+global _sha512_sse4:function
+sha512_sse4:
+_sha512_sse4:
+ cmp msglen, 0
+ je .nowork
+
+ ; Allocate Stack Space
+ sub rsp, frame_size
+
+ ; Save GPRs
+ mov [rsp + frame.GPRSAVE + 8 * 0], rbx
+ mov [rsp + frame.GPRSAVE + 8 * 1], r12
+ mov [rsp + frame.GPRSAVE + 8 * 2], r13
+ mov [rsp + frame.GPRSAVE + 8 * 3], r14
+ mov [rsp + frame.GPRSAVE + 8 * 4], r15
+%ifdef WINABI
+ mov [rsp + frame.GPRSAVE + 8 * 5], rsi
+ mov [rsp + frame.GPRSAVE + 8 * 6], rdi
+%endif
+
+.updateblock:
+
+ ; Load state variables
+ mov a_64, [DIGEST(0)]
+ mov b_64, [DIGEST(1)]
+ mov c_64, [DIGEST(2)]
+ mov d_64, [DIGEST(3)]
+ mov e_64, [DIGEST(4)]
+ mov f_64, [DIGEST(5)]
+ mov g_64, [DIGEST(6)]
+ mov h_64, [DIGEST(7)]
+
+ %assign t 0
+ %rep 80/2 + 1
+ ; (80 rounds) / (2 rounds/iteration) + (1 iteration)
+ ; +1 iteration because the scheduler leads hashing by 1 iteration
+ %if t < 2
+ ; BSWAP 2 QWORDS
+ movdqa xmm1, [XMM_QWORD_BSWAP wrt rip]
+ movdqu xmm0, [MSG(t)]
+ pshufb xmm0, xmm1 ; BSWAP
+ movdqa [W_t(t)], xmm0 ; Store Scheduled Pair
+ paddq xmm0, [K_t(t)] ; Compute W[t]+K[t]
+ movdqa [WK_2(t)], xmm0 ; Store into WK for rounds
+ %elif t < 16
+ ; BSWAP 2 QWORDS; Compute 2 Rounds
+ movdqu xmm0, [MSG(t)]
+ pshufb xmm0, xmm1 ; BSWAP
+ SHA512_Round t - 2 ; Round t-2
+ movdqa [W_t(t)], xmm0 ; Store Scheduled Pair
+ paddq xmm0, [K_t(t)] ; Compute W[t]+K[t]
+ SHA512_Round t - 1 ; Round t-1
+ movdqa [WK_2(t)], xmm0 ; Store W[t]+K[t] into WK
+ %elif t < 79
+ ; Schedule 2 QWORDS; Compute 2 Rounds
+ SHA512_2Sched_2Round_sse t
+ %else
+ ; Compute 2 Rounds
+ SHA512_Round t - 2
+ SHA512_Round t - 1
+ %endif
+ %assign t t+2
+ %endrep
+
+ ; Update digest
+ add [DIGEST(0)], a_64
+ add [DIGEST(1)], b_64
+ add [DIGEST(2)], c_64
+ add [DIGEST(3)], d_64
+ add [DIGEST(4)], e_64
+ add [DIGEST(5)], f_64
+ add [DIGEST(6)], g_64
+ add [DIGEST(7)], h_64
+
+ ; Advance to next message block
+ add msg, 16*8
+ dec msglen
+ jnz .updateblock
+
+ ; Restore GPRs
+ mov rbx, [rsp + frame.GPRSAVE + 8 * 0]
+ mov r12, [rsp + frame.GPRSAVE + 8 * 1]
+ mov r13, [rsp + frame.GPRSAVE + 8 * 2]
+ mov r14, [rsp + frame.GPRSAVE + 8 * 3]
+ mov r15, [rsp + frame.GPRSAVE + 8 * 4]
+%ifdef WINABI
+ mov rsi, [rsp + frame.GPRSAVE + 8 * 5]
+ mov rdi, [rsp + frame.GPRSAVE + 8 * 6]
+%endif
+ ; Restore Stack Pointer
+ add rsp, frame_size
+
+.nowork:
+ ret
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Binary Data
+
+section .data
+
+ALIGN 16
+
+; Mask for byte-swapping a couple of qwords in an XMM register using (v)pshufb.
+XMM_QWORD_BSWAP:
+ ddq 0x08090a0b0c0d0e0f0001020304050607
+
+; K[t] used in SHA512 hashing
+K512:
+ dq 0x428a2f98d728ae22,0x7137449123ef65cd
+ dq 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+ dq 0x3956c25bf348b538,0x59f111f1b605d019
+ dq 0x923f82a4af194f9b,0xab1c5ed5da6d8118
+ dq 0xd807aa98a3030242,0x12835b0145706fbe
+ dq 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+ dq 0x72be5d74f27b896f,0x80deb1fe3b1696b1
+ dq 0x9bdc06a725c71235,0xc19bf174cf692694
+ dq 0xe49b69c19ef14ad2,0xefbe4786384f25e3
+ dq 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+ dq 0x2de92c6f592b0275,0x4a7484aa6ea6e483
+ dq 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+ dq 0x983e5152ee66dfab,0xa831c66d2db43210
+ dq 0xb00327c898fb213f,0xbf597fc7beef0ee4
+ dq 0xc6e00bf33da88fc2,0xd5a79147930aa725
+ dq 0x06ca6351e003826f,0x142929670a0e6e70
+ dq 0x27b70a8546d22ffc,0x2e1b21385c26c926
+ dq 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+ dq 0x650a73548baf63de,0x766a0abb3c77b2a8
+ dq 0x81c2c92e47edaee6,0x92722c851482353b
+ dq 0xa2bfe8a14cf10364,0xa81a664bbc423001
+ dq 0xc24b8b70d0f89791,0xc76c51a30654be30
+ dq 0xd192e819d6ef5218,0xd69906245565a910
+ dq 0xf40e35855771202a,0x106aa07032bbd1b8
+ dq 0x19a4c116b8d2d0c8,0x1e376c085141ab53
+ dq 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+ dq 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+ dq 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+ dq 0x748f82ee5defb2fc,0x78a5636f43172f60
+ dq 0x84c87814a1f0ab72,0x8cc702081a6439ec
+ dq 0x90befffa23631e28,0xa4506cebde82bde9
+ dq 0xbef9a3f7b2c67915,0xc67178f2e372532b
+ dq 0xca273eceea26619c,0xd186b8c721c0c207
+ dq 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+ dq 0x06f067aa72176fba,0x0a637dc5a2c898a6
+ dq 0x113f9804bef90dae,0x1b710b35131c471b
+ dq 0x28db77f523047d84,0x32caab7b40c72493
+ dq 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+ dq 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+ dq 0x5fcb6fab3ad6faec,0x6c44198c4a475817
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Crypto/sha512_sse4_x86.asm b/src/Crypto/sha512_sse4_x86.asm
new file mode 100644
index 0000000..31c8bd0
--- /dev/null
+++ b/src/Crypto/sha512_sse4_x86.asm
@@ -0,0 +1,10 @@
+
+%ifidn __OUTPUT_FORMAT__,elf
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf32
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
+%ifidn __OUTPUT_FORMAT__,elf64
+section .note.GNU-stack noalloc noexec nowrite progbits
+%endif
diff --git a/src/Driver/BuildDriver.cmd b/src/Driver/BuildDriver.cmd
index 33888d0..54677df 100644
--- a/src/Driver/BuildDriver.cmd
+++ b/src/Driver/BuildDriver.cmd
@@ -1,184 +1,184 @@
-::
-:: Derived from source code of TrueCrypt 7.1a, which is
-:: Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed
-:: by the TrueCrypt License 3.0.
-::
-:: Modifications and additions to the original source code (contained in this file)
-:: and all other portions of this file are Copyright (c) 2013-2016 IDRIX
-:: and are 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.
-::
-
-:: Usage: BuildDriver <-build|-rebuild|-clean> <-release|-debug> <-x86|-x64> <dir1> [dir2] ...
-
-@echo off
-set TC_ARG_CMD=%~1
-shift
-set TC_ARG_TYPE=%~1
-shift
-set TC_ARG_ARCH=%~1
-shift
-
-
-:: Windows Driver Kit build number
-
-set TC_WINDDK_BUILD=7600.16385.1
-
-
-:: Check for spaces in the current directory path
-
-cd | find " " >NUL:
-
-if %ERRORLEVEL% == 0 (
- echo BuildDriver.cmd: error: MS Build does not support building of projects stored in a path containing spaces. >&2
- exit /B 1
-)
-
-
-:: Build options
-
-set TC_C_DEFINES=-D_WIN32 -DTC_WINDOWS_DRIVER
-set TC_C_FLAGS=-nologo -I..
-set TC_C_WARNING_LEVEL=-W4
-set TC_C_DISABLED_WARNINGS=-wd4057 -wd4100 -wd4127 -wd4152 -wd4201 -wd4701 -wd4702 -wd4706
-set TC_LIBRARIAN_FLAGS=-nologo
-set TC_LINKER_FLAGS=-nologo
-set TC_TEST_SIGN=0
-
-
-:: Windows Driver Kit root
-
-set TC_WINDDK_ROOT=%SYSTEMDRIVE%\WinDDK\%TC_WINDDK_BUILD%
-if exist "%TC_WINDDK_ROOT%\bin\setenv.bat" goto ddk_found
-
-set TC_WINDDK_ROOT=%WINDDK_ROOT%\%TC_WINDDK_BUILD%
-if exist "%TC_WINDDK_ROOT%\bin\setenv.bat" goto ddk_found
-
-set TC_WINDDK_ROOT=%WINDDK_ROOT%
-if exist "%TC_WINDDK_ROOT%\bin\setenv.bat" goto ddk_found
-
-echo BuildDriver.cmd: error: Windows Driver Development Kit not found in the default directory. Set WINDDK_ROOT environment variable to point to your Windows DDK installation directory. >&2
-exit /B 1
-
-:ddk_found
-
-
-:: CPU architecture
-
-if "%TC_ARG_ARCH%"=="-x64" (
- set TC_BUILD_ARCH=x64 WNET
- set TC_BUILD_ARCH_DIR=amd64
- set TC_ARCH=x64
- set TC_ARCH_SUFFIX=-x64
- set TC_C_DISABLED_WARNINGS=%TC_C_DISABLED_WARNINGS% -wd4328 -wd4366
- set TC_LINKER_FLAGS=%TC_LINKER_FLAGS% -LTCG
- if defined TC_KERNEL_TEST_CERTIFICATE_NAME set TC_TEST_SIGN=1
-) else (
- set TC_BUILD_ARCH=WXP
- set TC_BUILD_ARCH_DIR=i386
- set TC_ARCH=x86
- set TC_ARCH_SUFFIX=
-)
-
-
-:: Build type
-
-if "%TC_ARG_TYPE%"=="-debug" (
- set TC_BUILD_TYPE=chk
- set TC_C_DEFINES=%TC_C_DEFINES% -DDEBUG -D_DEBUG
- set TC_BUILD_ALT_DIR=_driver_debug
- set TC_COPY_DIR="..\Debug"
-) else (
- set TC_BUILD_TYPE=fre
- set TC_BUILD_ALT_DIR=_driver_release
- set TC_COPY_DIR="..\Release"
- set TC_TEST_SIGN=0
-)
-
-
-:: WDK environment
-
-pushd .
-call %TC_WINDDK_ROOT%\bin\setenv %TC_WINDDK_ROOT% %TC_BUILD_TYPE% %TC_BUILD_ARCH% no_oacr || exit /B %errorlevel%
-popd
-
-:: set path to VC++ 2010
-IF EXIST "%programfiles(x86)%" (GOTO 64-Bit) ELSE (GOTO 32-Bit)
-
-:32-Bit
-@set "VCPATH=%programfiles%\Microsoft Visual Studio 10.0\"
-GOTO CONTINUE
-
-:64-Bit
-@set "VCPATH=%programfiles(x86)%\Microsoft Visual Studio 10.0\"
-GOTO CONTINUE
-
-:CONTINUE
-
-if "%TC_ARG_ARCH%"=="-x64" (
- @set "PATH=%VCPATH%Common7\IDE;%VCPATH%VC\bin\amd64;%PATH%"
-) else (
- @set "PATH=%VCPATH%Common7\IDE;%VCPATH%VC\bin;%PATH%"
-)
-
-:: Build
-
-if "%TC_ARG_CMD%"=="-rebuild" (set TC_BUILD_OPTS=-c -Z)
-
-pushd .
-:build_dirs
-
- if "%~1"=="" goto done
- cd /D "%~1" || exit /B %errorlevel%
-
- if "%TC_ARG_CMD%"=="-clean" (
- rd /s /q obj%TC_BUILD_ALT_DIR%\%TC_BUILD_ARCH_DIR% 2>NUL:
- rd /q obj%TC_BUILD_ALT_DIR% 2>NUL:
- ) else (
-
- set USER_C_FLAGS=%TC_C_FLAGS% %TC_C_DISABLED_WARNINGS% -FAcs -Fa%~1\obj%TC_BUILD_ALT_DIR%\%TC_BUILD_ARCH_DIR%\
- set MSC_WARNING_LEVEL=%TC_C_WARNING_LEVEL%
- set C_DEFINES=%TC_C_DEFINES%
- set RCOPTIONS=/I %MFC_INC_PATH%
- set LIBRARIAN_FLAGS=%TC_LIBRARIAN_FLAGS%
- set LINKER_FLAGS=%TC_LINKER_FLAGS%
- set BUILD_ALT_DIR=%TC_BUILD_ALT_DIR%
-
- build %TC_BUILD_OPTS% -w -nmake /S -nmake /C 2>build_errors.log 1>&2
-
- if errorlevel 1 (
- type build_errors.log
- type build_errors_asm.log 2>NUL:
- exit /B 1
- )
- del /q build_errors.log build_errors_asm.log build%BUILD_ALT_DIR%.* 2>NUL:
- )
-
- shift
-
-goto build_dirs
-:done
-popd
-
-
-if "%TC_ARG_CMD%"=="-clean" exit /B 0
-
-md "%TC_COPY_DIR%\Setup Files" >NUL: 2>NUL:
-copy /B /Y obj%TC_BUILD_ALT_DIR%\%TC_BUILD_ARCH_DIR%\veracrypt.sys "%TC_COPY_DIR%\Setup Files\veracrypt%TC_ARCH_SUFFIX%.sys" >NUL:
-
-if errorlevel 1 (
- echo BuildDriver.cmd: error: Cannot copy target. >&2
- exit /B 1
-)
-
-if %TC_TEST_SIGN% equ 1 (
- signtool sign /s "%TC_KERNEL_TEST_CERTIFICATE_STORE%" /n "%TC_KERNEL_TEST_CERTIFICATE_NAME%" "%TC_COPY_DIR%\Setup Files\veracrypt%TC_ARCH_SUFFIX%.sys" >NUL:
-
- if errorlevel 1 (
- echo BuildDriver.cmd: error: Cannot test-sign target. >&2
- exit /B 1
- )
-)
-
-exit /B 0
+::
+:: Derived from source code of TrueCrypt 7.1a, which is
+:: Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed
+:: by the TrueCrypt License 3.0.
+::
+:: Modifications and additions to the original source code (contained in this file)
+:: and all other portions of this file are Copyright (c) 2013-2017 IDRIX
+:: and are 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.
+::
+
+:: Usage: BuildDriver <-build|-rebuild|-clean> <-release|-debug> <-x86|-x64> <dir1> [dir2] ...
+
+@echo off
+set TC_ARG_CMD=%~1
+shift
+set TC_ARG_TYPE=%~1
+shift
+set TC_ARG_ARCH=%~1
+shift
+
+
+:: Windows Driver Kit build number
+
+set TC_WINDDK_BUILD=7600.16385.1
+
+
+:: Check for spaces in the current directory path
+
+cd | find " " >NUL:
+
+if %ERRORLEVEL% == 0 (
+ echo BuildDriver.cmd: error: MS Build does not support building of projects stored in a path containing spaces. >&2
+ exit /B 1
+)
+
+
+:: Build options
+
+set TC_C_DEFINES=-D_WIN32 -DTC_WINDOWS_DRIVER
+set TC_C_FLAGS=-nologo -I..
+set TC_C_WARNING_LEVEL=-W4
+set TC_C_DISABLED_WARNINGS=-wd4057 -wd4100 -wd4127 -wd4152 -wd4201 -wd4701 -wd4702 -wd4706
+set TC_LIBRARIAN_FLAGS=-nologo
+set TC_LINKER_FLAGS=-nologo
+set TC_TEST_SIGN=0
+
+
+:: Windows Driver Kit root
+
+set TC_WINDDK_ROOT=%SYSTEMDRIVE%\WinDDK\%TC_WINDDK_BUILD%
+if exist "%TC_WINDDK_ROOT%\bin\setenv.bat" goto ddk_found
+
+set TC_WINDDK_ROOT=%WINDDK_ROOT%\%TC_WINDDK_BUILD%
+if exist "%TC_WINDDK_ROOT%\bin\setenv.bat" goto ddk_found
+
+set TC_WINDDK_ROOT=%WINDDK_ROOT%
+if exist "%TC_WINDDK_ROOT%\bin\setenv.bat" goto ddk_found
+
+echo BuildDriver.cmd: error: Windows Driver Development Kit not found in the default directory. Set WINDDK_ROOT environment variable to point to your Windows DDK installation directory. >&2
+exit /B 1
+
+:ddk_found
+
+
+:: CPU architecture
+
+if "%TC_ARG_ARCH%"=="-x64" (
+ set TC_BUILD_ARCH=x64 WNET
+ set TC_BUILD_ARCH_DIR=amd64
+ set TC_ARCH=x64
+ set TC_ARCH_SUFFIX=-x64
+ set TC_C_DISABLED_WARNINGS=%TC_C_DISABLED_WARNINGS% -wd4328 -wd4366
+ set TC_LINKER_FLAGS=%TC_LINKER_FLAGS% -LTCG
+ if defined TC_KERNEL_TEST_CERTIFICATE_NAME set TC_TEST_SIGN=1
+) else (
+ set TC_BUILD_ARCH=WXP
+ set TC_BUILD_ARCH_DIR=i386
+ set TC_ARCH=x86
+ set TC_ARCH_SUFFIX=
+)
+
+
+:: Build type
+
+if "%TC_ARG_TYPE%"=="-debug" (
+ set TC_BUILD_TYPE=chk
+ set TC_C_DEFINES=%TC_C_DEFINES% -DDEBUG -D_DEBUG
+ set TC_BUILD_ALT_DIR=_driver_debug
+ set TC_COPY_DIR="..\Debug"
+) else (
+ set TC_BUILD_TYPE=fre
+ set TC_BUILD_ALT_DIR=_driver_release
+ set TC_COPY_DIR="..\Release"
+ set TC_TEST_SIGN=0
+)
+
+
+:: WDK environment
+
+pushd .
+call %TC_WINDDK_ROOT%\bin\setenv %TC_WINDDK_ROOT% %TC_BUILD_TYPE% %TC_BUILD_ARCH% no_oacr || exit /B %errorlevel%
+popd
+
+:: set path to VC++ 2010
+IF EXIST "%programfiles(x86)%" (GOTO 64-Bit) ELSE (GOTO 32-Bit)
+
+:32-Bit
+@set "VCPATH=%programfiles%\Microsoft Visual Studio 10.0\"
+GOTO CONTINUE
+
+:64-Bit
+@set "VCPATH=%programfiles(x86)%\Microsoft Visual Studio 10.0\"
+GOTO CONTINUE
+
+:CONTINUE
+
+if "%TC_ARG_ARCH%"=="-x64" (
+ @set "PATH=%VCPATH%Common7\IDE;%VCPATH%VC\bin\amd64;%PATH%"
+) else (
+ @set "PATH=%VCPATH%Common7\IDE;%VCPATH%VC\bin;%PATH%"
+)
+
+:: Build
+
+if "%TC_ARG_CMD%"=="-rebuild" (set TC_BUILD_OPTS=-c -Z)
+
+pushd .
+:build_dirs
+
+ if "%~1"=="" goto done
+ cd /D "%~1" || exit /B %errorlevel%
+
+ if "%TC_ARG_CMD%"=="-clean" (
+ rd /s /q obj%TC_BUILD_ALT_DIR%\%TC_BUILD_ARCH_DIR% 2>NUL:
+ rd /q obj%TC_BUILD_ALT_DIR% 2>NUL:
+ ) else (
+
+ set USER_C_FLAGS=%TC_C_FLAGS% %TC_C_DISABLED_WARNINGS% -FAcs -Fa%~1\obj%TC_BUILD_ALT_DIR%\%TC_BUILD_ARCH_DIR%\
+ set MSC_WARNING_LEVEL=%TC_C_WARNING_LEVEL%
+ set C_DEFINES=%TC_C_DEFINES%
+ set RCOPTIONS=/I %MFC_INC_PATH%
+ set LIBRARIAN_FLAGS=%TC_LIBRARIAN_FLAGS%
+ set LINKER_FLAGS=%TC_LINKER_FLAGS%
+ set BUILD_ALT_DIR=%TC_BUILD_ALT_DIR%
+
+ build %TC_BUILD_OPTS% -w -nmake /S -nmake /C 2>build_errors.log 1>&2
+
+ if errorlevel 1 (
+ type build_errors.log
+ type build_errors_asm.log 2>NUL:
+ exit /B 1
+ )
+ del /q build_errors.log build_errors_asm.log build%BUILD_ALT_DIR%.* 2>NUL:
+ )
+
+ shift
+
+goto build_dirs
+:done
+popd
+
+
+if "%TC_ARG_CMD%"=="-clean" exit /B 0
+
+md "%TC_COPY_DIR%\Setup Files" >NUL: 2>NUL:
+copy /B /Y obj%TC_BUILD_ALT_DIR%\%TC_BUILD_ARCH_DIR%\veracrypt.sys "%TC_COPY_DIR%\Setup Files\veracrypt%TC_ARCH_SUFFIX%.sys" >NUL:
+
+if errorlevel 1 (
+ echo BuildDriver.cmd: error: Cannot copy target. >&2
+ exit /B 1
+)
+
+if %TC_TEST_SIGN% equ 1 (
+ signtool sign /s "%TC_KERNEL_TEST_CERTIFICATE_STORE%" /n "%TC_KERNEL_TEST_CERTIFICATE_NAME%" "%TC_COPY_DIR%\Setup Files\veracrypt%TC_ARCH_SUFFIX%.sys" >NUL:
+
+ if errorlevel 1 (
+ echo BuildDriver.cmd: error: Cannot test-sign target. >&2
+ exit /B 1
+ )
+)
+
+exit /B 0
diff --git a/src/Driver/DriveFilter.c b/src/Driver/DriveFilter.c
index 66f4981..08bebe1 100644
--- a/src/Driver/DriveFilter.c
+++ b/src/Driver/DriveFilter.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -33,6 +33,10 @@ static BOOL DeviceFilterActive = FALSE;
BOOL BootArgsValid = FALSE;
BootArguments BootArgs;
+byte* BootSecRegionData = NULL;
+uint32 BootSecRegionSize = 0;
+uint32 BootPkcs5 = 0;
+
static uint64 BootLoaderArgsPtr;
static BOOL BootDriveSignatureValid = FALSE;
@@ -76,10 +80,11 @@ NTSTATUS LoadBootArguments ()
NTSTATUS status = STATUS_UNSUCCESSFUL;
PHYSICAL_ADDRESS bootArgsAddr;
byte *mappedBootArgs;
+ byte *mappedCryptoInfo = NULL;
uint16 bootLoaderArgsIndex;
KeInitializeMutex (&MountMutex, 0);
-
+// __debugbreak();
for (bootLoaderArgsIndex = 0;
bootLoaderArgsIndex < sizeof(BootArgsRegions)/ sizeof(BootArgsRegions[1]) && status != STATUS_SUCCESS;
++bootLoaderArgsIndex)
@@ -102,6 +107,9 @@ NTSTATUS LoadBootArguments ()
&& bootArguments->BootArgumentsCrc32 != GetCrc32 ((byte *) bootArguments, (int) ((byte *) &bootArguments->BootArgumentsCrc32 - (byte *) bootArguments)))
{
Dump ("BootArguments CRC incorrect\n");
+ burn (mappedBootArgs, sizeof (BootArguments));
+ MmUnmapIoSpace (mappedBootArgs, sizeof (BootArguments));
+ mappedBootArgs = NULL;
TC_BUG_CHECK (STATUS_CRC_ERROR);
}
@@ -126,22 +134,81 @@ NTSTATUS LoadBootArguments ()
Dump ("BootDriveSignature = %x\n", BootArgs.BootDriveSignature);
Dump ("BootArgumentsCrc32 = %x\n", BootArgs.BootArgumentsCrc32);
- if (CacheBootPassword && BootArgs.BootPassword.Length > 0)
- {
- int pim = CacheBootPim? (int) (BootArgs.Flags >> 16) : 0;
- AddPasswordToCache (&BootArgs.BootPassword, pim);
- }
-
// clear fingerprint
burn (BootLoaderFingerprint, sizeof (BootLoaderFingerprint));
+ MmUnmapIoSpace (mappedBootArgs, sizeof (BootArguments));
+ mappedBootArgs = NULL;
+
+ // Extra parameters? (pkcs5, hash)
+ if (BootArgs.CryptoInfoLength > 0)
+ {
+ PHYSICAL_ADDRESS cryptoInfoAddress;
+ cryptoInfoAddress.QuadPart = BootLoaderArgsPtr + BootArgs.CryptoInfoOffset;
+ Dump ("CryptoInfo memory %x %d\n", cryptoInfoAddress.LowPart, BootArgs.CryptoInfoLength);
+ mappedCryptoInfo = MmMapIoSpace (cryptoInfoAddress, BootArgs.CryptoInfoLength, MmCached);
+ if (mappedCryptoInfo)
+ {
+ /* Get the parameters used for booting to speed up driver startup and avoid testing irrelevant PRFs */
+ BOOT_CRYPTO_HEADER* pBootCryptoInfo = (BOOT_CRYPTO_HEADER*) mappedCryptoInfo;
+ BootPkcs5 = pBootCryptoInfo->pkcs5; // save hash to speed up boot.
+
+ BootSecRegionData = NULL;
+ BootSecRegionSize = 0;
+
+ // SecRegion data?
+ if(BootArgs.CryptoInfoLength > (sizeof(BOOT_CRYPTO_HEADER) + sizeof(SECREGION_BOOT_PARAMS)) ) {
+ uint32 crc;
+ PHYSICAL_ADDRESS SecRegionAddress;
+ SECREGION_BOOT_PARAMS* SecRegionParams = (SECREGION_BOOT_PARAMS*) (mappedCryptoInfo + sizeof(BOOT_CRYPTO_HEADER) + 2);
+ byte *secRegionData = NULL;
+
+ SecRegionAddress.QuadPart = SecRegionParams->Ptr;
+ Dump ("SecRegion memory 0x%x %d\n", SecRegionAddress.LowPart, SecRegionParams->Size);
+ // SecRegion correct?
+ if( (SecRegionParams->Ptr != 0) && (SecRegionParams->Size > 0)) {
+ crc = GetCrc32((byte*)SecRegionParams, 12);
+ if(crc == SecRegionParams->Crc) {
+ Dump ("SecRegion crc ok\n");
+ secRegionData = MmMapIoSpace (SecRegionAddress, SecRegionParams->Size, MmCached);
+ if(secRegionData) {
+ BootSecRegionData = TCalloc (SecRegionParams->Size);
+ if(BootSecRegionData != NULL) {
+ BootSecRegionSize = SecRegionParams->Size;
+ memcpy(BootSecRegionData, secRegionData, SecRegionParams->Size);
+ }
+ burn (secRegionData, SecRegionParams->Size);
+ MmUnmapIoSpace (secRegionData, SecRegionParams->Size);
+ }
+ }
+ }
+ }
+ // Erase boot loader scheduled keys
+ burn (mappedCryptoInfo, BootArgs.CryptoInfoLength);
+ MmUnmapIoSpace (mappedCryptoInfo, BootArgs.CryptoInfoLength);
+ BootArgs.CryptoInfoLength = 0;
+ }
+ else
+ {
+ BootArgs.CryptoInfoLength = 0;
+ }
+ }
status = STATUS_SUCCESS;
}
+ else
+ {
+ Dump ("BootArguments contains a password larger than maximum limit\n");
+ burn (mappedBootArgs, sizeof (BootArguments));
+ MmUnmapIoSpace (mappedBootArgs, sizeof (BootArguments));
+ mappedBootArgs = NULL;
+ TC_BUG_CHECK (STATUS_FAIL_CHECK);
+ }
+ }
+
+ if (mappedBootArgs) {
+ MmUnmapIoSpace (mappedBootArgs, sizeof (BootArguments));
}
-
- MmUnmapIoSpace (mappedBootArgs, sizeof (BootArguments));
}
-
return status;
}
@@ -260,10 +327,14 @@ static void ComputeBootLoaderFingerprint(PDEVICE_OBJECT LowerDeviceObject, byte*
status = TCReadDevice (LowerDeviceObject, ioBuffer, offset, TC_SECTOR_SIZE_BIOS);
if (NT_SUCCESS (status))
{
-#if !defined (_WIN64)
- KFLOATING_SAVE floatingPointState;
- NTSTATUS saveStatus = STATUS_SUCCESS;
- if (HasISSE())
+ NTSTATUS saveStatus = STATUS_INVALID_PARAMETER;
+#ifdef _WIN64
+ XSTATE_SAVE SaveState;
+ if (g_isIntel && HasSAVX())
+ saveStatus = KeSaveExtendedProcessorState(XSTATE_MASK_GSSE, &SaveState);
+#else
+ KFLOATING_SAVE floatingPointState;
+ if (HasISSE() || (HasSSSE3() && HasMMX()))
saveStatus = KeSaveFloatingPointState (&floatingPointState);
#endif
WHIRLPOOL_add (ioBuffer, TC_BOOT_SECTOR_PIM_VALUE_OFFSET, &whirlpool);
@@ -300,8 +371,10 @@ static void ComputeBootLoaderFingerprint(PDEVICE_OBJECT LowerDeviceObject, byte*
sha512_end (&BootLoaderFingerprint [WHIRLPOOL_DIGESTSIZE], &sha2);
}
-#if !defined (_WIN64)
- if (NT_SUCCESS (saveStatus) && HasISSE())
+ if (NT_SUCCESS (saveStatus))
+#ifdef _WIN64
+ KeRestoreExtendedProcessorState(&SaveState);
+#else
KeRestoreFloatingPointState (&floatingPointState);
#endif
}
@@ -320,37 +393,64 @@ static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password,
LARGE_INTEGER offset;
char *header;
int pkcs5_prf = 0, pim = 0;
- byte *mappedCryptoInfo = NULL;
PARTITION_INFORMATION_EX pi;
BOOL bIsGPT = FALSE;
Dump ("MountDrive pdo=%p\n", Extension->Pdo);
ASSERT (KeGetCurrentIrql() == PASSIVE_LEVEL);
- // Check boot drive signature first (header CRC search could fail if a user restored the header to a non-boot drive)
- if (BootDriveSignatureValid)
- {
+ // Check disk MBR id and GPT ID if BootSecRegion is available to detect boot drive
+ if (BootSecRegionData != NULL && BootSecRegionSize >= 1024) {
byte mbr[TC_SECTOR_SIZE_BIOS];
-
+ DCS_DISK_ENTRY_LIST* DeList = (DCS_DISK_ENTRY_LIST*)(BootSecRegionData + 512);
offset.QuadPart = 0;
status = TCReadDevice (Extension->LowerDeviceObject, mbr, offset, TC_SECTOR_SIZE_BIOS);
- if (NT_SUCCESS (status) && BootArgs.BootDriveSignature != *(uint32 *) (mbr + 0x1b8))
+ if (NT_SUCCESS (status) && DeList->DE[DE_IDX_DISKID].DiskId.MbrID != *(uint32 *) (mbr + 0x1b8))
return STATUS_UNSUCCESSFUL;
- }
- header = TCalloc (TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
- if (!header)
- return STATUS_INSUFFICIENT_RESOURCES;
+ offset.QuadPart = 512;
+ status = TCReadDevice (Extension->LowerDeviceObject, mbr, offset, TC_SECTOR_SIZE_BIOS);
+ if (NT_SUCCESS (status) && memcmp(&DeList->DE[DE_IDX_DISKID].DiskId.GptID, mbr + 0x38, sizeof(DCS_GUID)) != 0)
+ return STATUS_UNSUCCESSFUL;
- offset.QuadPart = hiddenVolume ? hiddenHeaderOffset : TC_BOOT_VOLUME_HEADER_SECTOR_OFFSET;
- Dump ("Reading volume header at %I64u\n", offset.QuadPart);
+ header = TCalloc (TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
+ if (!header)
+ return STATUS_INSUFFICIENT_RESOURCES;
+ // Copy header from SecRegion instead of read from disk
+ memcpy(header, BootSecRegionData, 512);
+
+ // Set SecRegion data for the disk (sectors to substitute to hide GPT table)
+ Extension->Queue.SecRegionData = BootSecRegionData;
+ Extension->Queue.SecRegionSize = BootSecRegionSize;
+ } else {
+ // Check boot drive signature first (header CRC search could fail if a user restored the header to a non-boot drive)
+ if (BootDriveSignatureValid)
+ {
+ byte mbr[TC_SECTOR_SIZE_BIOS];
- status = TCReadDevice (Extension->LowerDeviceObject, header, offset, TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
- if (!NT_SUCCESS (status))
- {
- Dump ("TCReadDevice error %x\n", status);
- goto ret;
+ offset.QuadPart = 0;
+ status = TCReadDevice (Extension->LowerDeviceObject, mbr, offset, TC_SECTOR_SIZE_BIOS);
+
+ if (NT_SUCCESS (status) && BootArgs.BootDriveSignature != *(uint32 *) (mbr + 0x1b8))
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ header = TCalloc (TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
+ if (!header)
+ return STATUS_INSUFFICIENT_RESOURCES;
+
+ offset.QuadPart = hiddenVolume ? hiddenHeaderOffset : TC_BOOT_VOLUME_HEADER_SECTOR_OFFSET;
+ Dump ("Reading volume header at %I64u\n", offset.QuadPart);
+
+ status = TCReadDevice (Extension->LowerDeviceObject, header, offset, TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
+ if (!NT_SUCCESS (status))
+ {
+ Dump ("TCReadDevice error %x\n", status);
+ goto ret;
+ }
+ Extension->Queue.SecRegionData = NULL;
+ Extension->Queue.SecRegionSize = 0;
}
if (headerSaltCrc32)
@@ -378,23 +478,12 @@ static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password,
bIsGPT = (pi.PartitionStyle == PARTITION_STYLE_GPT)? TRUE : FALSE;
}
- if (BootArgs.CryptoInfoLength > 0)
+ if (BootPkcs5 > 0)
{
- PHYSICAL_ADDRESS cryptoInfoAddress;
-
- cryptoInfoAddress.QuadPart = BootLoaderArgsPtr + BootArgs.CryptoInfoOffset;
-#ifdef DEBUG
- Dump ("Wiping memory %x %d\n", cryptoInfoAddress.LowPart, BootArgs.CryptoInfoLength);
-#endif
- mappedCryptoInfo = MmMapIoSpace (cryptoInfoAddress, BootArgs.CryptoInfoLength, MmCached);
- if (mappedCryptoInfo)
- {
- /* Get the parameters used for booting to speed up driver startup and avoid testing irrelevant PRFs */
- BOOT_CRYPTO_HEADER* pBootCryptoInfo = (BOOT_CRYPTO_HEADER*) mappedCryptoInfo;
- Hash* pHash = HashGet(pBootCryptoInfo->pkcs5);
- if (pHash && (bIsGPT || pHash->SystemEncryption))
- pkcs5_prf = pBootCryptoInfo->pkcs5;
- }
+ /* Get the parameters used for booting to speed up driver startup and avoid testing irrelevant PRFs */
+ Hash* pHash = HashGet(BootPkcs5);
+ if (pHash && (bIsGPT || pHash->SystemEncryption))
+ pkcs5_prf = BootPkcs5;
}
pim = (int) (BootArgs.Flags >> 16);
@@ -423,13 +512,7 @@ static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password,
if (Extension->Queue.CryptoInfo->VolumeSize.Value > hiddenPartitionOffset - BootArgs.DecoySystemPartitionStart)
{
- // Erase boot loader scheduled keys
- if (mappedCryptoInfo)
- {
- burn (mappedCryptoInfo, BootArgs.CryptoInfoLength);
- MmUnmapIoSpace (mappedCryptoInfo, BootArgs.CryptoInfoLength);
- BootArgs.CryptoInfoLength = 0;
- }
+ // we have already erased boot loader scheduled keys
TC_THROW_FATAL_EXCEPTION;
}
@@ -457,18 +540,48 @@ static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password,
Dump ("Loaded: ConfiguredEncryptedAreaStart=%I64d (%I64d) ConfiguredEncryptedAreaEnd=%I64d (%I64d)\n", Extension->ConfiguredEncryptedAreaStart / 1024 / 1024, Extension->ConfiguredEncryptedAreaStart, Extension->ConfiguredEncryptedAreaEnd / 1024 / 1024, Extension->ConfiguredEncryptedAreaEnd);
Dump ("Loaded: EncryptedAreaStart=%I64d (%I64d) EncryptedAreaEnd=%I64d (%I64d)\n", Extension->Queue.EncryptedAreaStart / 1024 / 1024, Extension->Queue.EncryptedAreaStart, Extension->Queue.EncryptedAreaEnd / 1024 / 1024, Extension->Queue.EncryptedAreaEnd);
- // Erase boot loader scheduled keys
- if (mappedCryptoInfo)
- {
- burn (mappedCryptoInfo, BootArgs.CryptoInfoLength);
- MmUnmapIoSpace (mappedCryptoInfo, BootArgs.CryptoInfoLength);
- BootArgs.CryptoInfoLength = 0;
- }
+ // at this stage, we have already erased boot loader scheduled keys
BootDriveFilterExtension = Extension;
BootDriveFound = Extension->BootDrive = Extension->DriveMounted = Extension->VolumeHeaderPresent = TRUE;
BootDriveFilterExtension->MagicNumber = TC_BOOT_DRIVE_FILTER_EXTENSION_MAGIC_NUMBER;
+ // Try to load password cached if saved in SecRegion
+ if (BootSecRegionData != NULL && BootSecRegionSize > 1024) {
+ DCS_DISK_ENTRY_LIST* DeList = (DCS_DISK_ENTRY_LIST*)(BootSecRegionData + 512);
+ uint32 crc;
+ uint32 crcSaved;
+ crcSaved = DeList->CRC32;
+ DeList->CRC32 = 0;
+ crc = GetCrc32((byte*)DeList, 512);
+ if(crc == crcSaved){
+ if(DeList->DE[DE_IDX_PWDCACHE].Type == DE_PwdCache) {
+ uint64 sector = 0;
+ DCS_DEP_PWD_CACHE* pwdCache = (DCS_DEP_PWD_CACHE*)(BootSecRegionData + DeList->DE[DE_IDX_PWDCACHE].Sectors.Offset);
+ DecryptDataUnits((unsigned char*)pwdCache, (UINT64_STRUCT*)&sector, 1, Extension->Queue.CryptoInfo);
+ crcSaved = pwdCache->CRC;
+ pwdCache->CRC = 0;
+ crc = GetCrc32((unsigned char*)pwdCache, 512);
+ if(crcSaved == crc && pwdCache->Count < CACHE_SIZE){
+ uint32 i;
+ for(i = 0; i<pwdCache->Count; ++i){
+ if (CacheBootPassword && pwdCache->Pwd[i].Length > 0) {
+ int cachedPim = CacheBootPim? (int) (pwdCache->Pim[i]) : 0;
+ AddPasswordToCache (&pwdCache->Pwd[i], cachedPim);
+ }
+ }
+ burn(pwdCache, sizeof(*pwdCache));
+ }
+ }
+ }
+ }
+
+ if (CacheBootPassword && BootArgs.BootPassword.Length > 0)
+ {
+ int cachedPim = CacheBootPim? pim : 0;
+ AddPasswordToCache (&BootArgs.BootPassword, cachedPim);
+ }
+
burn (&BootArgs.BootPassword, sizeof (BootArgs.BootPassword));
{
diff --git a/src/Driver/DriveFilter.h b/src/Driver/DriveFilter.h
index fbbfcac..9ce151c 100644
--- a/src/Driver/DriveFilter.h
+++ b/src/Driver/DriveFilter.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Driver/Driver.rc b/src/Driver/Driver.rc
index a7de74b..9e995f1 100644
--- a/src/Driver/Driver.rc
+++ b/src/Driver/Driver.rc
@@ -1,101 +1,101 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,19,4,0
- PRODUCTVERSION 1,19,4,0
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x3L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", "IDRIX"
- VALUE "FileDescription", "VeraCrypt Driver"
- VALUE "FileVersion", "1.19"
- VALUE "LegalTrademarks", "VeraCrypt"
- VALUE "OriginalFilename", "veracrypt.sys"
- VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.19"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,21,5,0
+ PRODUCTVERSION 1,21,5,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x3L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "IDRIX"
+ VALUE "FileDescription", "VeraCrypt Driver"
+ VALUE "FileVersion", "1.21"
+ VALUE "LegalTrademarks", "VeraCrypt"
+ VALUE "OriginalFilename", "veracrypt.sys"
+ VALUE "ProductName", "VeraCrypt"
+ VALUE "ProductVersion", "1.21"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/Driver/Driver.vcproj b/src/Driver/Driver.vcproj
index 8d28d75..4c474c3 100644
--- a/src/Driver/Driver.vcproj
+++ b/src/Driver/Driver.vcproj
@@ -1,398 +1,398 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="Driver"
- ProjectGUID="{EF5EF444-18D0-40D7-8DFA-775EC4448602}"
- RootNamespace="Driver"
- Keyword="MakeFileProj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="0"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="echo ------ Building veracrypt.sys: Debug x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -build -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Building veracrypt.sys: Debug x64 ------&#x0D;&#x0A;BuildDriver.cmd -build -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- ReBuildCommandLine="echo ------ Rebuilding veracrypt.sys: Debug x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -rebuild -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Rebuilding veracrypt.sys: Debug x64 ------&#x0D;&#x0A;BuildDriver.cmd -rebuild -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- CleanCommandLine="echo ------ Cleaning veracrypt.sys: Debug x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -clean -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Cleaning veracrypt.sys: Debug x64 ------&#x0D;&#x0A;BuildDriver.cmd -clean -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- Output=""
- PreprocessorDefinitions="DEBUG;_DEBUG;TC_WINDOWS_DRIVER"
- IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="0"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="echo ------ Building veracrypt.sys: Release x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -build -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Building veracrypt.sys: Release x64 ------&#x0D;&#x0A;BuildDriver.cmd -build -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- ReBuildCommandLine="echo ------ Rebuilding veracrypt.sys: Release x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -rebuild -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Rebuilding veracrypt.sys: Release x64 ------&#x0D;&#x0A;BuildDriver.cmd -rebuild -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- CleanCommandLine="echo ------ Cleaning veracrypt.sys: Release x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -clean -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Cleaning veracrypt.sys: Release x64 ------&#x0D;&#x0A;BuildDriver.cmd -clean -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- Output=""
- PreprocessorDefinitions="TC_WINDOWS_DRIVER"
- IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- <Configuration
- Name="Release x86|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="BuildDriver.cmd -build -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- ReBuildCommandLine="BuildDriver.cmd -rebuild -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- CleanCommandLine="BuildDriver.cmd -clean -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- Output=""
- PreprocessorDefinitions="TC_WINDOWS_DRIVER"
- IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- <Configuration
- Name="Debug x86|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -build -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- ReBuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -rebuild -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- CleanCommandLine="BuildDriver.cmd -clean -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- Output="$(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe"
- PreprocessorDefinitions="DEBUG;_DEBUG;TC_WINDOWS_DRIVER"
- IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- <Configuration
- Name="Release x64|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="BuildDriver.cmd -build -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- ReBuildCommandLine="BuildDriver.cmd -rebuild -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- CleanCommandLine="BuildDriver.cmd -clean -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- Output=""
- PreprocessorDefinitions="TC_WINDOWS_DRIVER"
- IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- <Configuration
- Name="Debug x64|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -build -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- ReBuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -rebuild -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- CleanCommandLine="BuildDriver.cmd -clean -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
- Output="$(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe"
- PreprocessorDefinitions="DEBUG;_DEBUG;TC_WINDOWS_DRIVER"
- IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\DriveFilter.c"
- >
- </File>
- <File
- RelativePath=".\DumpFilter.c"
- >
- </File>
- <File
- RelativePath=".\EncryptedIoQueue.c"
- >
- </File>
- <File
- RelativePath=".\Ntdriver.c"
- >
- </File>
- <File
- RelativePath=".\Ntvol.c"
- >
- </File>
- <File
- RelativePath=".\VolumeFilter.c"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\Cache.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crypto.c"
- >
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.c"
- >
- </File>
- <File
- RelativePath="..\Common\Endian.c"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.c"
- >
- </File>
- <File
- RelativePath="..\Common\Pkcs5.c"
- >
- </File>
- <File
- RelativePath="..\Common\Tests.c"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.c"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.c"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Crypto"
- >
- <File
- RelativePath="..\Crypto\Aes_hw_cpu.asm"
- >
- </File>
- <File
- RelativePath="..\Crypto\Aes_x64.asm"
- >
- </File>
- <File
- RelativePath="..\Crypto\Aes_x86.asm"
- >
- </File>
- <File
- RelativePath="..\Crypto\Aeskey.c"
- >
- </File>
- <File
- RelativePath="..\Crypto\Aestab.c"
- >
- </File>
- <File
- RelativePath="..\Crypto\Rmd160.c"
- >
- </File>
- <File
- RelativePath="..\Crypto\Serpent.c"
- >
- </File>
- <File
- RelativePath="..\Crypto\Sha2.c"
- >
- </File>
- <File
- RelativePath="..\Crypto\Twofish.c"
- >
- </File>
- <File
- RelativePath="..\Crypto\Whirlpool.c"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\Common\Apidrvr.h"
- >
- </File>
- <File
- RelativePath="..\Common\Cache.h"
- >
- </File>
- <File
- RelativePath="..\Common\Common.h"
- >
- </File>
- <File
- RelativePath=".\DriveFilter.h"
- >
- </File>
- <File
- RelativePath=".\DumpFilter.h"
- >
- </File>
- <File
- RelativePath=".\EncryptedIoQueue.h"
- >
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.h"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.h"
- >
- </File>
- <File
- RelativePath=".\Ntdriver.h"
- >
- </File>
- <File
- RelativePath=".\Ntvol.h"
- >
- </File>
- <File
- RelativePath=".\resource.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tcdefs.h"
- >
- </File>
- <File
- RelativePath=".\VolumeFilter.h"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.h"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- <File
- RelativePath=".\Driver.rc"
- >
- </File>
- </Filter>
- <Filter
- Name="Build Files"
- >
- <File
- RelativePath=".\BuildDriver.cmd"
- >
- </File>
- <File
- RelativePath=".\Makefile"
- >
- </File>
- <File
- RelativePath=".\Sources"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\Makefile"
- >
- </File>
- <File
- RelativePath="..\Common\Sources"
- >
- </File>
- </Filter>
- <Filter
- Name="Crypto"
- >
- <File
- RelativePath="..\Crypto\Makefile"
- >
- </File>
- <File
- RelativePath="..\Crypto\Makefile.inc"
- >
- </File>
- <File
- RelativePath="..\Crypto\Sources"
- >
- </File>
- </Filter>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="Driver"
+ ProjectGUID="{EF5EF444-18D0-40D7-8DFA-775EC4448602}"
+ RootNamespace="Driver"
+ Keyword="MakeFileProj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="0"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="echo ------ Building veracrypt.sys: Debug x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -build -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Building veracrypt.sys: Debug x64 ------&#x0D;&#x0A;BuildDriver.cmd -build -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ ReBuildCommandLine="echo ------ Rebuilding veracrypt.sys: Debug x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -rebuild -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Rebuilding veracrypt.sys: Debug x64 ------&#x0D;&#x0A;BuildDriver.cmd -rebuild -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ CleanCommandLine="echo ------ Cleaning veracrypt.sys: Debug x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -clean -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Cleaning veracrypt.sys: Debug x64 ------&#x0D;&#x0A;BuildDriver.cmd -clean -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ Output=""
+ PreprocessorDefinitions="DEBUG;_DEBUG;TC_WINDOWS_DRIVER"
+ IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="0"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="echo ------ Building veracrypt.sys: Release x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -build -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Building veracrypt.sys: Release x64 ------&#x0D;&#x0A;BuildDriver.cmd -build -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ ReBuildCommandLine="echo ------ Rebuilding veracrypt.sys: Release x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -rebuild -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Rebuilding veracrypt.sys: Release x64 ------&#x0D;&#x0A;BuildDriver.cmd -rebuild -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ CleanCommandLine="echo ------ Cleaning veracrypt.sys: Release x86 ------&#x0D;&#x0A;cmd.exe /c BuildDriver.cmd -clean -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;&#x0D;&#x0A;if errorlevel 1 exit %errorlevel%&#x0D;&#x0A;echo.&#x0D;&#x0A;echo ------ Cleaning veracrypt.sys: Release x64 ------&#x0D;&#x0A;BuildDriver.cmd -clean -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ Output=""
+ PreprocessorDefinitions="TC_WINDOWS_DRIVER"
+ IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Release x86|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="BuildDriver.cmd -build -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ ReBuildCommandLine="BuildDriver.cmd -rebuild -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ CleanCommandLine="BuildDriver.cmd -clean -release -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ Output=""
+ PreprocessorDefinitions="TC_WINDOWS_DRIVER"
+ IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug x86|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -build -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ ReBuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -rebuild -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ CleanCommandLine="BuildDriver.cmd -clean -debug -x86 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ Output="$(ProjectDir)\obj_driver_debug\i386\VeraCrypt.exe"
+ PreprocessorDefinitions="DEBUG;_DEBUG;TC_WINDOWS_DRIVER"
+ IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Release x64|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="BuildDriver.cmd -build -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ ReBuildCommandLine="BuildDriver.cmd -rebuild -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ CleanCommandLine="BuildDriver.cmd -clean -release -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ Output=""
+ PreprocessorDefinitions="TC_WINDOWS_DRIVER"
+ IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug x64|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -build -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ ReBuildCommandLine="if exist $(SolutionDir)\Mount\Debug\VeraCrypt.exe ( copy $(SolutionDir)\Mount\Debug\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL:&#x0D;&#x0A;) else ( copy $(SolutionDir)\Mount\Release\VeraCrypt.exe $(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe &gt;NUL: )&#x0D;&#x0A;&#x0D;&#x0A;BuildDriver.cmd -rebuild -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ CleanCommandLine="BuildDriver.cmd -clean -debug -x64 &quot;$(SolutionDir)\Common&quot; &quot;$(SolutionDir)\Crypto&quot; &quot;$(ProjectDir)&quot;"
+ Output="$(ProjectDir)\obj_driver_debug\amd64\VeraCrypt.exe"
+ PreprocessorDefinitions="DEBUG;_DEBUG;TC_WINDOWS_DRIVER"
+ IncludeSearchPath="&quot;$(ProjectDir)&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\Common&quot;;&quot;$(SolutionDir)\Crypto&quot;;&quot;$(WINDDK_ROOT)\inc\ddk&quot;;&quot;$(WINDDK_ROOT)\inc\api&quot;"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\DriveFilter.c"
+ >
+ </File>
+ <File
+ RelativePath=".\DumpFilter.c"
+ >
+ </File>
+ <File
+ RelativePath=".\EncryptedIoQueue.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Ntdriver.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Ntvol.c"
+ >
+ </File>
+ <File
+ RelativePath=".\VolumeFilter.c"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\Cache.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crypto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Endian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Pkcs5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tests.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Crypto"
+ >
+ <File
+ RelativePath="..\Crypto\Aes_hw_cpu.asm"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Aes_x64.asm"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Aes_x86.asm"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Aeskey.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Aestab.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Rmd160.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Serpent.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Sha2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Twofish.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Whirlpool.c"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\Common\Apidrvr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Cache.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Common.h"
+ >
+ </File>
+ <File
+ RelativePath=".\DriveFilter.h"
+ >
+ </File>
+ <File
+ RelativePath=".\DumpFilter.h"
+ >
+ </File>
+ <File
+ RelativePath=".\EncryptedIoQueue.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Ntdriver.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Ntvol.h"
+ >
+ </File>
+ <File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tcdefs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\VolumeFilter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath=".\Driver.rc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Build Files"
+ >
+ <File
+ RelativePath=".\BuildDriver.cmd"
+ >
+ </File>
+ <File
+ RelativePath=".\Makefile"
+ >
+ </File>
+ <File
+ RelativePath=".\Sources"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\Makefile"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Sources"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Crypto"
+ >
+ <File
+ RelativePath="..\Crypto\Makefile"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Makefile.inc"
+ >
+ </File>
+ <File
+ RelativePath="..\Crypto\Sources"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/Driver/Driver.vcxproj b/src/Driver/Driver.vcxproj
index f534a0e..381d208 100644
--- a/src/Driver/Driver.vcxproj
+++ b/src/Driver/Driver.vcxproj
@@ -223,6 +223,36 @@ BuildDriver.cmd -rebuild -debug -x64 "$(SolutionDir)\Common" "$(SolutionDir)\Cry
<None Include="..\Crypto\Aes_hw_cpu.asm" />
<None Include="..\Crypto\Aes_x64.asm" />
<None Include="..\Crypto\Aes_x86.asm" />
+ <None Include="..\Crypto\Camellia_aesni_x64.S" />
+ <None Include="..\Crypto\Camellia_x64.S" />
+ <None Include="..\Crypto\sha256-x86-nayuki.S">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha256_avx1_x64.asm">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha256_avx2_x64.asm">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha256_sse4_x64.asm">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha512-x64-nayuki.S">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha512-x86-nayuki.S">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha512_avx1_x64.asm">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha512_avx2_x64.asm">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\sha512_sse4_x64.asm">
+ <FileType>Document</FileType>
+ </None>
+ <None Include="..\Crypto\Twofish_x64.S" />
<None Include="BuildDriver.cmd" />
<None Include="Makefile" />
<None Include="Sources" />
diff --git a/src/Driver/Driver.vcxproj.filters b/src/Driver/Driver.vcxproj.filters
index dfb7eda..3622c7a 100644
--- a/src/Driver/Driver.vcxproj.filters
+++ b/src/Driver/Driver.vcxproj.filters
@@ -143,6 +143,42 @@
<None Include="..\Crypto\Sources">
<Filter>Build Files\Crypto</Filter>
</None>
+ <None Include="..\Crypto\Camellia_aesni_x64.S">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\Camellia_x64.S">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\Twofish_x64.S">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha256-x86-nayuki.S">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha512_sse4_x64.asm">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha256_avx1_x64.asm">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha256_avx2_x64.asm">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha256_sse4_x64.asm">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha512-x86-nayuki.S">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha512-x64-nayuki.S">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha512_avx1_x64.asm">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
+ <None Include="..\Crypto\sha512_avx2_x64.asm">
+ <Filter>Source Files\Crypto</Filter>
+ </None>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\Common\Apidrvr.h">
diff --git a/src/Driver/DumpFilter.c b/src/Driver/DumpFilter.c
index ff570b1..2b58d06 100644
--- a/src/Driver/DumpFilter.c
+++ b/src/Driver/DumpFilter.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -14,6 +14,7 @@
#include "DriveFilter.h"
#include "Ntdriver.h"
#include "Tests.h"
+#include "cpu.h"
static DriveFilterExtension *BootDriveFilterExtension = NULL;
static LARGE_INTEGER DumpPartitionOffset;
@@ -63,7 +64,11 @@ NTSTATUS DumpFilterEntry (PFILTER_EXTENSION filterExtension, PFILTER_INITIALIZAT
// KeSaveFloatingPointState() may generate a bug check during crash dump
#if !defined (_WIN64)
if (filterExtension->DumpType == DumpTypeCrashdump)
+ {
dumpConfig.HwEncryptionEnabled = FALSE;
+ // disable also CPU extended features used in optimizations
+ DisableCPUExtendedFeatures ();
+ }
#endif
EnableHwEncryption (dumpConfig.HwEncryptionEnabled);
@@ -189,7 +194,7 @@ static NTSTATUS DumpFilterWrite (PFILTER_EXTENSION filterExtension, PLARGE_INTEG
if ((offset & (ENCRYPTION_DATA_UNIT_SIZE - 1)) != 0)
TC_BUG_CHECK (STATUS_INVALID_PARAMETER);
- writeBuffer = MmGetSystemAddressForMdlSafe (writeMdl, HighPagePriority);
+ writeBuffer = MmGetSystemAddressForMdlSafe (writeMdl, (HighPagePriority | ExDefaultMdlProtection));
if (!writeBuffer)
TC_BUG_CHECK (STATUS_INSUFFICIENT_RESOURCES);
diff --git a/src/Driver/DumpFilter.h b/src/Driver/DumpFilter.h
index 7582e93..c72115a 100644
--- a/src/Driver/DumpFilter.h
+++ b/src/Driver/DumpFilter.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Driver/EncryptedIoQueue.c b/src/Driver/EncryptedIoQueue.c
index 029a42f..f7e453f 100644
--- a/src/Driver/EncryptedIoQueue.c
+++ b/src/Driver/EncryptedIoQueue.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -225,6 +225,47 @@ static void ReleaseFragmentBuffer (EncryptedIoQueue *queue, byte *buffer)
}
}
+BOOL
+UpdateBuffer(
+ byte* buffer,
+ byte* secRegion,
+ uint64 bufferDiskOffset,
+ uint32 bufferLength,
+ BOOL doUpadte
+ )
+{
+ uint64 intersectStart;
+ uint32 intersectLength;
+ uint32 i;
+ DCS_DISK_ENTRY_LIST *DeList = (DCS_DISK_ENTRY_LIST*)(secRegion + 512);
+ BOOL updated = FALSE;
+
+ if (secRegion == NULL) return FALSE;
+ for (i = 0; i < DeList->Count; ++i) {
+ if (DeList->DE[i].Type == DE_Sectors) {
+ GetIntersection(
+ bufferDiskOffset, bufferLength,
+ DeList->DE[i].Sectors.Start, DeList->DE[i].Sectors.Start + DeList->DE[i].Sectors.Length - 1,
+ &intersectStart, &intersectLength
+ );
+ if (intersectLength != 0) {
+ updated = TRUE;
+ if(doUpadte && buffer != NULL) {
+// Dump("Subst data\n");
+ memcpy(
+ buffer + (intersectStart - bufferDiskOffset),
+ secRegion + DeList->DE[i].Sectors.Offset + (intersectStart - DeList->DE[i].Sectors.Start),
+ intersectLength
+ );
+ } else {
+ return TRUE;
+ }
+ }
+ }
+ }
+ return updated;
+}
+
static VOID CompletionThreadProc (PVOID threadArg)
{
@@ -260,6 +301,11 @@ static VOID CompletionThreadProc (PVOID threadArg)
DecryptDataUnits (request->Data + request->EncryptedOffset, &dataUnit, request->EncryptedLength / ENCRYPTION_DATA_UNIT_SIZE, queue->CryptoInfo);
}
+// Dump("Read sector %lld count %d\n", request->Offset.QuadPart >> 9, request->Length >> 9);
+ // Update subst sectors
+ if((queue->SecRegionData != NULL) && (queue->SecRegionSize > 512)) {
+ UpdateBuffer(request->Data, queue->SecRegionData, request->Offset.QuadPart, request->Length, TRUE);
+ }
if (request->CompleteOriginalIrp)
{
@@ -592,7 +638,7 @@ static VOID MainThreadProc (PVOID threadArg)
{
UINT64_STRUCT dataUnit;
- dataBuffer = (PUCHAR) MmGetSystemAddressForMdlSafe (irp->MdlAddress, HighPagePriority);
+ dataBuffer = (PUCHAR) MmGetSystemAddressForMdlSafe (irp->MdlAddress, (HighPagePriority | ExDefaultMdlProtection));
if (!dataBuffer)
{
TCfree (buffer);
@@ -609,6 +655,10 @@ static VOID MainThreadProc (PVOID threadArg)
DecryptDataUnits (buffer + (intersectStart - alignedOffset.QuadPart), &dataUnit, intersectLength / ENCRYPTION_DATA_UNIT_SIZE, queue->CryptoInfo);
}
}
+ // Update subst sectors
+ if((queue->SecRegionData != NULL) && (queue->SecRegionSize > 512)) {
+ UpdateBuffer(buffer, queue->SecRegionData, alignedOffset.QuadPart, alignedLength, TRUE);
+ }
memcpy (dataBuffer, buffer + (item->OriginalOffset.LowPart & (ENCRYPTION_DATA_UNIT_SIZE - 1)), item->OriginalLength);
}
@@ -697,9 +747,18 @@ static VOID MainThreadProc (PVOID threadArg)
Dump ("Preventing write to boot loader or host protected area\n");
CompleteOriginalIrp (item, STATUS_MEDIA_WRITE_PROTECTED, 0);
continue;
+ }
+ else if (item->Write
+ && (queue->SecRegionData != NULL) && (queue->SecRegionSize > 512)
+ && UpdateBuffer (NULL, queue->SecRegionData, item->OriginalOffset.QuadPart, (uint32)(item->OriginalOffset.QuadPart + item->OriginalLength - 1), FALSE))
+ {
+ // Prevent inappropriately designed software from damaging important data
+ Dump ("Preventing write to the system GPT area\n");
+ CompleteOriginalIrp (item, STATUS_MEDIA_WRITE_PROTECTED, 0);
+ continue;
}
- dataBuffer = (PUCHAR) MmGetSystemAddressForMdlSafe (irp->MdlAddress, HighPagePriority);
+ dataBuffer = (PUCHAR) MmGetSystemAddressForMdlSafe (irp->MdlAddress, (HighPagePriority | ExDefaultMdlProtection));
if (dataBuffer == NULL)
{
diff --git a/src/Driver/EncryptedIoQueue.h b/src/Driver/EncryptedIoQueue.h
index ffe7147..c4a105e 100644
--- a/src/Driver/EncryptedIoQueue.h
+++ b/src/Driver/EncryptedIoQueue.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -117,6 +117,8 @@ typedef struct
LARGE_INTEGER LastPerformanceCounter;
#endif
+ byte* SecRegionData;
+ SIZE_T SecRegionSize;
} EncryptedIoQueue;
diff --git a/src/Driver/Fuse/Driver.make b/src/Driver/Fuse/Driver.make
index 169d035..f58785b 100644
--- a/src/Driver/Fuse/Driver.make
+++ b/src/Driver/Fuse/Driver.make
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
diff --git a/src/Driver/Fuse/FuseService.cpp b/src/Driver/Fuse/FuseService.cpp
index 9731653..026883d 100644
--- a/src/Driver/Fuse/FuseService.cpp
+++ b/src/Driver/Fuse/FuseService.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Driver/Fuse/FuseService.h b/src/Driver/Fuse/FuseService.h
index 0498a42..4b84401 100644
--- a/src/Driver/Fuse/FuseService.h
+++ b/src/Driver/Fuse/FuseService.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Driver/Ntdriver.c b/src/Driver/Ntdriver.c
index eaa8fa8..83cf7de 100644
--- a/src/Driver/Ntdriver.c
+++ b/src/Driver/Ntdriver.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -17,6 +17,7 @@
#include "Fat.h"
#include "Tests.h"
#include "cpu.h"
+#include "Crc.h"
#include "Apidrvr.h"
#include "Boot/Windows/BootDefs.h"
@@ -39,10 +40,44 @@
#include <Ntstrsafe.h>
#include <Intsafe.h>
+#ifndef IOCTL_DISK_GET_CLUSTER_INFO
+#define IOCTL_DISK_GET_CLUSTER_INFO CTL_CODE(IOCTL_DISK_BASE, 0x0085, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif
+
+#ifndef IOCTL_DISK_ARE_VOLUMES_READY
+#define IOCTL_DISK_ARE_VOLUMES_READY CTL_CODE(IOCTL_DISK_BASE, 0x0087, METHOD_BUFFERED, FILE_READ_ACCESS)
+#endif
+
+#ifndef FT_BALANCED_READ_MODE
+#define FTTYPE ((ULONG)'f')
+#define FT_BALANCED_READ_MODE CTL_CODE(FTTYPE, 6, METHOD_NEITHER, FILE_ANY_ACCESS)
+#endif
+
+#ifndef IOCTL_VOLUME_QUERY_ALLOCATION_HINT
+#define IOCTL_VOLUME_QUERY_ALLOCATION_HINT CTL_CODE(IOCTL_VOLUME_BASE, 20, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
+#endif
+
+#ifndef IOCTL_DISK_IS_CLUSTERED
+#define IOCTL_DISK_IS_CLUSTERED CTL_CODE(IOCTL_DISK_BASE, 0x003e, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif
+
+#ifndef IOCTL_VOLUME_POST_ONLINE
+#define IOCTL_VOLUME_POST_ONLINE CTL_CODE(IOCTL_VOLUME_BASE, 25, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#endif
+
+#ifndef IOCTL_VOLUME_IS_DYNAMIC
+#define IOCTL_VOLUME_IS_DYNAMIC CTL_CODE(IOCTL_VOLUME_BASE, 18, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif
+
/* Init section, which is thrown away as soon as DriverEntry returns */
#pragma alloc_text(INIT,DriverEntry)
#pragma alloc_text(INIT,TCCreateRootDeviceObject)
+/* We need to silence 'type cast' warning in order to use MmGetSystemRoutineAddress.
+ * MmGetSystemRoutineAddress() should have been declare FARPROC instead of PVOID.
+ */
+#pragma warning(disable:4055)
+
PDRIVER_OBJECT TCDriverObject;
PDEVICE_OBJECT RootDeviceObject = NULL;
static KMUTEX RootDeviceControlMutex;
@@ -61,6 +96,11 @@ static size_t EncryptionThreadPoolFreeCpuCountLimit = 0;
static BOOL SystemFavoriteVolumeDirty = FALSE;
static BOOL PagingFileCreationPrevented = FALSE;
static BOOL EnableExtendedIoctlSupport = FALSE;
+static KeSaveExtendedProcessorStateFn KeSaveExtendedProcessorStatePtr = NULL;
+static KeRestoreExtendedProcessorStateFn KeRestoreExtendedProcessorStatePtr = NULL;
+
+POOL_TYPE ExDefaultNonPagedPoolType = NonPagedPool;
+ULONG ExDefaultMdlProtection = 0;
PDEVICE_OBJECT VirtualVolumeDeviceObjects[MAX_MOUNTED_VOLUME_DRIVE_NUMBER + 1];
@@ -79,6 +119,23 @@ NTSTATUS DriverEntry (PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
Dump ("OsMajorVersion=%d OsMinorVersion=%d\n", OsMajorVersion, OsMinorVersion);
+ // NX pool support is available starting from Windows 8
+ if ((OsMajorVersion > 6) || (OsMajorVersion == 6 && OsMinorVersion >= 2))
+ {
+ ExDefaultNonPagedPoolType = (POOL_TYPE) NonPagedPoolNx;
+ ExDefaultMdlProtection = MdlMappingNoExecute;
+ }
+
+ // KeSaveExtendedProcessorState/KeRestoreExtendedProcessorState are available starting from Windows 7
+ if ((OsMajorVersion > 6) || (OsMajorVersion == 6 && OsMinorVersion >= 1))
+ {
+ UNICODE_STRING saveFuncName, restoreFuncName;
+ RtlInitUnicodeString(&saveFuncName, L"KeSaveExtendedProcessorState");
+ RtlInitUnicodeString(&restoreFuncName, L"KeRestoreExtendedProcessorState");
+ KeSaveExtendedProcessorStatePtr = (KeSaveExtendedProcessorStateFn) MmGetSystemRoutineAddress(&saveFuncName);
+ KeRestoreExtendedProcessorStatePtr = (KeRestoreExtendedProcessorStateFn) MmGetSystemRoutineAddress(&restoreFuncName);
+ }
+
// Load dump filter if the main driver is already loaded
if (NT_SUCCESS (TCDeviceIoControl (NT_ROOT_PREFIX, TC_IOCTL_GET_DRIVER_VERSION, NULL, 0, &version, sizeof (version))))
return DumpFilterEntry ((PFILTER_EXTENSION) DriverObject, (PFILTER_INITIALIZATION_DATA) RegistryPath);
@@ -97,7 +154,16 @@ NTSTATUS DriverEntry (PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
if (startKeyValue->Type == REG_DWORD && *((uint32 *) startKeyValue->Data) == SERVICE_BOOT_START)
{
if (!SelfTestsPassed)
- TC_BUG_CHECK (STATUS_INVALID_PARAMETER);
+ {
+ // in case of system encryption, if self-tests fail, disable all extended CPU
+ // features and try again in order to workaround faulty configurations
+ DisableCPUExtendedFeatures ();
+ SelfTestsPassed = AutoTestAlgorithms();
+
+ // BUG CHECK if the self-tests still fail
+ if (!SelfTestsPassed)
+ TC_BUG_CHECK (STATUS_INVALID_PARAMETER);
+ }
LoadBootArguments();
VolumeClassFilterRegistered = IsVolumeClassFilterRegistered();
@@ -173,6 +239,16 @@ void DumpMemory (void *mem, int size)
}
}
+BOOL IsAllZeroes (unsigned char* pbData, DWORD dwDataLen)
+{
+ while (dwDataLen--)
+ {
+ if (*pbData)
+ return FALSE;
+ pbData++;
+ }
+ return TRUE;
+}
BOOL ValidateIOBufferSize (PIRP irp, size_t requiredBufferSize, ValidateIOBufferSizeType type)
{
@@ -633,6 +709,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
break;
case IOCTL_DISK_GET_MEDIA_TYPES:
+ case IOCTL_STORAGE_GET_MEDIA_TYPES:
case IOCTL_DISK_GET_DRIVE_GEOMETRY:
Dump ("ProcessVolumeDeviceControlIrp (IOCTL_DISK_GET_DRIVE_GEOMETRY)\n");
/* Return the drive geometry for the disk. Note that we
@@ -652,8 +729,30 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
}
break;
+ case IOCTL_DISK_GET_DRIVE_GEOMETRY_EX:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_DISK_GET_DRIVE_GEOMETRY_EX)\n");
+ /* Return the drive geometry for the disk and its size.*/
+ if (ValidateIOBufferSize (Irp, sizeof (DISK_GEOMETRY_EX), ValidateOutput))
+ {
+ PDISK_GEOMETRY_EX outputBuffer = (PDISK_GEOMETRY_EX)
+ Irp->AssociatedIrp.SystemBuffer;
+
+ outputBuffer->Geometry.MediaType = Extension->bRemovable ? RemovableMedia : FixedMedia;
+ outputBuffer->Geometry.Cylinders.QuadPart = Extension->NumberOfCylinders;
+ outputBuffer->Geometry.TracksPerCylinder = Extension->TracksPerCylinder;
+ outputBuffer->Geometry.SectorsPerTrack = Extension->SectorsPerTrack;
+ outputBuffer->Geometry.BytesPerSector = Extension->BytesPerSector;
+ /* add one sector to DiskLength since our partition size is DiskLength and its offset if BytesPerSector */
+ outputBuffer->DiskSize.QuadPart = Extension->DiskLength + Extension->BytesPerSector;
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (DISK_GEOMETRY_EX);
+ }
+ break;
+
case IOCTL_STORAGE_QUERY_PROPERTY:
- Dump ("ProcessVolumeDeviceControlIrp (IOCTL_STORAGE_QUERY_PROPERTY)\n");
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_STORAGE_QUERY_PROPERTY)\n");
+ Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST;
+ Irp->IoStatus.Information = 0;
if (EnableExtendedIoctlSupport)
{
if (ValidateIOBufferSize (Irp, sizeof (STORAGE_PROPERTY_QUERY), ValidateInput))
@@ -661,12 +760,16 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
PSTORAGE_PROPERTY_QUERY pStoragePropQuery = (PSTORAGE_PROPERTY_QUERY) Irp->AssociatedIrp.SystemBuffer;
STORAGE_QUERY_TYPE type = pStoragePropQuery->QueryType;
+ Dump ("IOCTL_STORAGE_QUERY_PROPERTY - PropertyId = %d, type = %d\n", pStoragePropQuery->PropertyId, type);
+
/* return error if an unsupported type is encountered */
- Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST;
- Irp->IoStatus.Information = 0;
+ Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
if ( (pStoragePropQuery->PropertyId == StorageAccessAlignmentProperty)
|| (pStoragePropQuery->PropertyId == StorageDeviceProperty)
+ || (pStoragePropQuery->PropertyId == StorageAdapterProperty)
+ || (pStoragePropQuery->PropertyId == StorageDeviceSeekPenaltyProperty)
+ || (pStoragePropQuery->PropertyId == StorageDeviceTrimProperty)
)
{
if (type == PropertyExistsQuery)
@@ -680,16 +783,57 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
{
case StorageDeviceProperty:
{
- if (ValidateIOBufferSize (Irp, sizeof (STORAGE_DEVICE_DESCRIPTOR), ValidateOutput))
+ /* Add 0x00 for NULL terminating string used as ProductId, ProductRevision, SerialNumber, VendorId */
+ ULONG descriptorSize = sizeof (STORAGE_DEVICE_DESCRIPTOR) + 1;
+ if (ValidateIOBufferSize (Irp, descriptorSize, ValidateOutput))
{
PSTORAGE_DEVICE_DESCRIPTOR outputBuffer = (PSTORAGE_DEVICE_DESCRIPTOR) Irp->AssociatedIrp.SystemBuffer;
outputBuffer->Version = sizeof(STORAGE_DEVICE_DESCRIPTOR);
- outputBuffer->Size = sizeof(STORAGE_DEVICE_DESCRIPTOR);
+ outputBuffer->Size = descriptorSize;
outputBuffer->DeviceType = FILE_DEVICE_DISK;
outputBuffer->RemovableMedia = Extension->bRemovable? TRUE : FALSE;
+ outputBuffer->ProductIdOffset = sizeof (STORAGE_DEVICE_DESCRIPTOR);
+ outputBuffer->SerialNumberOffset = sizeof (STORAGE_DEVICE_DESCRIPTOR);
+ outputBuffer->ProductRevisionOffset = sizeof (STORAGE_DEVICE_DESCRIPTOR);
+ outputBuffer->VendorIdOffset = sizeof (STORAGE_DEVICE_DESCRIPTOR);
+ outputBuffer->BusType = BusTypeVirtual;
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = descriptorSize;
+ }
+ else if (irpSp->Parameters.DeviceIoControl.OutputBufferLength == sizeof (STORAGE_DESCRIPTOR_HEADER))
+ {
+ PSTORAGE_DESCRIPTOR_HEADER outputBuffer = (PSTORAGE_DESCRIPTOR_HEADER) Irp->AssociatedIrp.SystemBuffer;
+ outputBuffer->Version = sizeof(STORAGE_DEVICE_DESCRIPTOR);
+ outputBuffer->Size = descriptorSize;
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_DESCRIPTOR_HEADER);
+ }
+ }
+ break;
+ case StorageAdapterProperty:
+ {
+ ULONG descriptorSize = sizeof (STORAGE_ADAPTER_DESCRIPTOR);
+ if (ValidateIOBufferSize (Irp, descriptorSize, ValidateOutput))
+ {
+ PSTORAGE_ADAPTER_DESCRIPTOR outputBuffer = (PSTORAGE_ADAPTER_DESCRIPTOR) Irp->AssociatedIrp.SystemBuffer;
+
+ outputBuffer->Version = sizeof(STORAGE_ADAPTER_DESCRIPTOR);
+ outputBuffer->Size = descriptorSize;
+ outputBuffer->MaximumTransferLength = Extension->HostMaximumTransferLength;
+ outputBuffer->MaximumPhysicalPages = Extension->HostMaximumPhysicalPages;
+ outputBuffer->AlignmentMask = Extension->HostAlignmentMask;
+ outputBuffer->BusType = BusTypeVirtual;
Irp->IoStatus.Status = STATUS_SUCCESS;
- Irp->IoStatus.Information = sizeof (STORAGE_DEVICE_DESCRIPTOR);
+ Irp->IoStatus.Information = descriptorSize;
+ }
+ else if (irpSp->Parameters.DeviceIoControl.OutputBufferLength == sizeof (STORAGE_DESCRIPTOR_HEADER))
+ {
+ PSTORAGE_DESCRIPTOR_HEADER outputBuffer = (PSTORAGE_DESCRIPTOR_HEADER) Irp->AssociatedIrp.SystemBuffer;
+ outputBuffer->Version = sizeof(STORAGE_ADAPTER_DESCRIPTOR);
+ outputBuffer->Size = descriptorSize;
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_DESCRIPTOR_HEADER);
}
}
break;
@@ -702,11 +846,62 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
outputBuffer->Version = sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR);
outputBuffer->Size = sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR);
outputBuffer->BytesPerLogicalSector = Extension->BytesPerSector;
- outputBuffer->BytesPerPhysicalSector = Extension->HostBytesPerPhysicalSector;
- outputBuffer->BytesOffsetForSectorAlignment = Extension->BytesOffsetForSectorAlignment;
+ outputBuffer->BytesPerPhysicalSector = Extension->HostBytesPerPhysicalSector;
Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = sizeof (STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR);
}
+ else if (irpSp->Parameters.DeviceIoControl.OutputBufferLength == sizeof (STORAGE_DESCRIPTOR_HEADER))
+ {
+ PSTORAGE_DESCRIPTOR_HEADER outputBuffer = (PSTORAGE_DESCRIPTOR_HEADER) Irp->AssociatedIrp.SystemBuffer;
+ outputBuffer->Version = sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR);
+ outputBuffer->Size = sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR);
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_DESCRIPTOR_HEADER);
+ }
+ }
+ break;
+ case StorageDeviceSeekPenaltyProperty:
+ {
+ if (ValidateIOBufferSize (Irp, sizeof (DEVICE_SEEK_PENALTY_DESCRIPTOR), ValidateOutput))
+ {
+ PDEVICE_SEEK_PENALTY_DESCRIPTOR outputBuffer = (PDEVICE_SEEK_PENALTY_DESCRIPTOR) Irp->AssociatedIrp.SystemBuffer;
+
+ outputBuffer->Version = sizeof(DEVICE_SEEK_PENALTY_DESCRIPTOR);
+ outputBuffer->Size = sizeof(DEVICE_SEEK_PENALTY_DESCRIPTOR);
+ outputBuffer->IncursSeekPenalty = TRUE; //TODO: in case of SSD drive, we should probably return FALSE
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (DEVICE_SEEK_PENALTY_DESCRIPTOR);
+ }
+ else if (irpSp->Parameters.DeviceIoControl.OutputBufferLength == sizeof (STORAGE_DESCRIPTOR_HEADER))
+ {
+ PSTORAGE_DESCRIPTOR_HEADER outputBuffer = (PSTORAGE_DESCRIPTOR_HEADER) Irp->AssociatedIrp.SystemBuffer;
+ outputBuffer->Version = sizeof(DEVICE_SEEK_PENALTY_DESCRIPTOR);
+ outputBuffer->Size = sizeof(DEVICE_SEEK_PENALTY_DESCRIPTOR);
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_DESCRIPTOR_HEADER);
+ }
+ }
+ break;
+ case StorageDeviceTrimProperty:
+ {
+ if (ValidateIOBufferSize (Irp, sizeof (DEVICE_TRIM_DESCRIPTOR), ValidateOutput))
+ {
+ PDEVICE_TRIM_DESCRIPTOR outputBuffer = (PDEVICE_TRIM_DESCRIPTOR) Irp->AssociatedIrp.SystemBuffer;
+
+ outputBuffer->Version = sizeof(DEVICE_TRIM_DESCRIPTOR);
+ outputBuffer->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
+ outputBuffer->TrimEnabled = FALSE; /* TODO: implement Trim support for SSD drives */
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (DEVICE_TRIM_DESCRIPTOR);
+ }
+ else if (irpSp->Parameters.DeviceIoControl.OutputBufferLength == sizeof (STORAGE_DESCRIPTOR_HEADER))
+ {
+ PSTORAGE_DESCRIPTOR_HEADER outputBuffer = (PSTORAGE_DESCRIPTOR_HEADER) Irp->AssociatedIrp.SystemBuffer;
+ outputBuffer->Version = sizeof(DEVICE_TRIM_DESCRIPTOR);
+ outputBuffer->Size = sizeof(DEVICE_TRIM_DESCRIPTOR);
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_DESCRIPTOR_HEADER);
+ }
}
break;
}
@@ -714,8 +909,6 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
}
}
}
- else
- return TCCompleteIrp (Irp, STATUS_INVALID_DEVICE_REQUEST, 0);
break;
@@ -732,6 +925,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
outputBuffer->RewritePartition = FALSE;
outputBuffer->StartingOffset.QuadPart = Extension->BytesPerSector;
outputBuffer->PartitionLength.QuadPart= Extension->DiskLength;
+ outputBuffer->PartitionNumber = 1;
outputBuffer->HiddenSectors = 0;
Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = sizeof (PARTITION_INFORMATION);
@@ -748,6 +942,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
outputBuffer->RewritePartition = FALSE;
outputBuffer->StartingOffset.QuadPart = Extension->BytesPerSector;
outputBuffer->PartitionLength.QuadPart= Extension->DiskLength;
+ outputBuffer->PartitionNumber = 1;
outputBuffer->Mbr.PartitionType = Extension->PartitionType;
outputBuffer->Mbr.BootIndicator = FALSE;
outputBuffer->Mbr.RecognizedPartition = TRUE;
@@ -759,13 +954,13 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
case IOCTL_DISK_GET_DRIVE_LAYOUT:
Dump ("ProcessVolumeDeviceControlIrp (IOCTL_DISK_GET_DRIVE_LAYOUT)\n");
- if (ValidateIOBufferSize (Irp, sizeof (DRIVE_LAYOUT_INFORMATION), ValidateOutput))
+ if (ValidateIOBufferSize (Irp, sizeof (DRIVE_LAYOUT_INFORMATION) + 3*sizeof(PARTITION_INFORMATION), ValidateOutput))
{
PDRIVE_LAYOUT_INFORMATION outputBuffer = (PDRIVE_LAYOUT_INFORMATION)
Irp->AssociatedIrp.SystemBuffer;
outputBuffer->PartitionCount = 1;
- outputBuffer->Signature = 0;
+ outputBuffer->Signature = GetCrc32((unsigned char*) &(Extension->UniqueVolumeId), 4);
outputBuffer->PartitionEntry->PartitionType = Extension->PartitionType;
outputBuffer->PartitionEntry->BootIndicator = FALSE;
@@ -773,10 +968,37 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
outputBuffer->PartitionEntry->RewritePartition = FALSE;
outputBuffer->PartitionEntry->StartingOffset.QuadPart = Extension->BytesPerSector;
outputBuffer->PartitionEntry->PartitionLength.QuadPart = Extension->DiskLength;
+ outputBuffer->PartitionEntry->PartitionNumber = 1;
outputBuffer->PartitionEntry->HiddenSectors = 0;
Irp->IoStatus.Status = STATUS_SUCCESS;
- Irp->IoStatus.Information = sizeof (PARTITION_INFORMATION);
+ Irp->IoStatus.Information = sizeof (DRIVE_LAYOUT_INFORMATION) + 3*sizeof(PARTITION_INFORMATION);
+ }
+ break;
+
+ case IOCTL_DISK_GET_DRIVE_LAYOUT_EX:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_DISK_GET_DRIVE_LAYOUT_EX)\n");
+ if (ValidateIOBufferSize (Irp, sizeof (DRIVE_LAYOUT_INFORMATION_EX) + 3*sizeof(PARTITION_INFORMATION_EX), ValidateOutput))
+ {
+ PDRIVE_LAYOUT_INFORMATION_EX outputBuffer = (PDRIVE_LAYOUT_INFORMATION_EX)
+ Irp->AssociatedIrp.SystemBuffer;
+
+ outputBuffer->PartitionCount = 1;
+ outputBuffer->PartitionStyle = PARTITION_STYLE_MBR;
+ outputBuffer->Mbr.Signature = GetCrc32((unsigned char*) &(Extension->UniqueVolumeId), 4);
+
+ outputBuffer->PartitionEntry->PartitionStyle = PARTITION_STYLE_MBR;
+ outputBuffer->PartitionEntry->Mbr.BootIndicator = FALSE;
+ outputBuffer->PartitionEntry->Mbr.RecognizedPartition = TRUE;
+ outputBuffer->PartitionEntry->RewritePartition = FALSE;
+ outputBuffer->PartitionEntry->StartingOffset.QuadPart = Extension->BytesPerSector;
+ outputBuffer->PartitionEntry->PartitionLength.QuadPart = Extension->DiskLength;
+ outputBuffer->PartitionEntry->PartitionNumber = 1;
+ outputBuffer->PartitionEntry->Mbr.HiddenSectors = 0;
+ outputBuffer->PartitionEntry->Mbr.PartitionType = Extension->PartitionType;
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (DRIVE_LAYOUT_INFORMATION_EX) + 3*sizeof(PARTITION_INFORMATION_EX);
}
break;
@@ -844,6 +1066,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
case IOCTL_DISK_CHECK_VERIFY:
case IOCTL_STORAGE_CHECK_VERIFY:
+ case IOCTL_STORAGE_CHECK_VERIFY2:
Dump ("ProcessVolumeDeviceControlIrp (IOCTL_STORAGE_CHECK_VERIFY)\n");
{
Irp->IoStatus.Status = STATUS_SUCCESS;
@@ -875,6 +1098,12 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
Irp->IoStatus.Information = 0;
break;
+ case IOCTL_VOLUME_POST_ONLINE:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_VOLUME_POST_ONLINE)\n");
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = 0;
+ break;
+
case IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS:
Dump ("ProcessVolumeDeviceControlIrp (IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS)\n");
// Vista's filesystem defragmenter fails if IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS does not succeed.
@@ -896,6 +1125,93 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
}
break;
+ case IOCTL_STORAGE_READ_CAPACITY:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_STORAGE_READ_CAPACITY)\n");
+ if (ValidateIOBufferSize (Irp, sizeof (STORAGE_READ_CAPACITY), ValidateOutput))
+ {
+ STORAGE_READ_CAPACITY *capacity = (STORAGE_READ_CAPACITY *) Irp->AssociatedIrp.SystemBuffer;
+
+ capacity->Version = sizeof (STORAGE_READ_CAPACITY);
+ capacity->Size = sizeof (STORAGE_READ_CAPACITY);
+ capacity->BlockLength = Extension->BytesPerSector;
+ capacity->NumberOfBlocks.QuadPart = (Extension->DiskLength / Extension->BytesPerSector) + 1;
+ capacity->DiskLength.QuadPart = Extension->DiskLength + Extension->BytesPerSector;
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_READ_CAPACITY);
+ }
+ break;
+
+ /*case IOCTL_STORAGE_GET_DEVICE_NUMBER:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_STORAGE_GET_DEVICE_NUMBER)\n");
+ if (ValidateIOBufferSize (Irp, sizeof (STORAGE_DEVICE_NUMBER), ValidateOutput))
+ {
+ STORAGE_DEVICE_NUMBER *storage = (STORAGE_DEVICE_NUMBER *) Irp->AssociatedIrp.SystemBuffer;
+
+ storage->DeviceType = FILE_DEVICE_DISK;
+ storage->DeviceNumber = (ULONG) -1;
+ storage->PartitionNumber = 1;
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_DEVICE_NUMBER);
+ }
+ break;*/
+
+ case IOCTL_STORAGE_GET_HOTPLUG_INFO:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_STORAGE_GET_HOTPLUG_INFO)\n");
+ if (ValidateIOBufferSize (Irp, sizeof (STORAGE_HOTPLUG_INFO), ValidateOutput))
+ {
+ STORAGE_HOTPLUG_INFO *info = (STORAGE_HOTPLUG_INFO *) Irp->AssociatedIrp.SystemBuffer;
+
+ info->Size = sizeof (STORAGE_HOTPLUG_INFO);
+ info->MediaRemovable = Extension->bRemovable? TRUE : FALSE;
+ info->MediaHotplug = FALSE;
+ info->DeviceHotplug = FALSE;
+ info->WriteCacheEnableOverride = FALSE;
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (STORAGE_HOTPLUG_INFO);
+ }
+ break;
+
+ case IOCTL_VOLUME_IS_DYNAMIC:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_VOLUME_IS_DYNAMIC)\n");
+ if (ValidateIOBufferSize (Irp, sizeof (BOOLEAN), ValidateOutput))
+ {
+ BOOLEAN *pbDynamic = (BOOLEAN*) Irp->AssociatedIrp.SystemBuffer;
+
+ *pbDynamic = FALSE;
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (BOOLEAN);
+ }
+ break;
+
+ case IOCTL_DISK_IS_CLUSTERED:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_DISK_IS_CLUSTERED)\n");
+ if (ValidateIOBufferSize (Irp, sizeof (BOOLEAN), ValidateOutput))
+ {
+ BOOLEAN *pbIsClustered = (BOOLEAN*) Irp->AssociatedIrp.SystemBuffer;
+
+ *pbIsClustered = FALSE;
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (BOOLEAN);
+ }
+ break;
+
+ case IOCTL_VOLUME_GET_GPT_ATTRIBUTES:
+ Dump ("ProcessVolumeDeviceControlIrp (IOCTL_VOLUME_GET_GPT_ATTRIBUTES)\n");
+ if (ValidateIOBufferSize (Irp, sizeof (VOLUME_GET_GPT_ATTRIBUTES_INFORMATION), ValidateOutput))
+ {
+ VOLUME_GET_GPT_ATTRIBUTES_INFORMATION *pGptAttr = (VOLUME_GET_GPT_ATTRIBUTES_INFORMATION*) Irp->AssociatedIrp.SystemBuffer;
+
+ pGptAttr->GptAttributes = 0; // we are MBR not GPT
+
+ Irp->IoStatus.Status = STATUS_SUCCESS;
+ Irp->IoStatus.Information = sizeof (VOLUME_GET_GPT_ATTRIBUTES_INFORMATION);
+ }
+ break;
case IOCTL_UNKNOWN_WINDOWS10_EFS_ACCESS:
// This undocumented IOCTL is sent when handling EFS data
@@ -905,6 +1221,22 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
Irp->IoStatus.Information = 0;
break;
+
+ case IOCTL_DISK_GET_CLUSTER_INFO:
+ Dump ("ProcessVolumeDeviceControlIrp: returning STATUS_NOT_SUPPORTED for %ls\n", TCTranslateCode (irpSp->Parameters.DeviceIoControl.IoControlCode));
+ Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
+ Irp->IoStatus.Information = 0;
+ break;
+
+ case IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT:
+ case IOCTL_DISK_MEDIA_REMOVAL:
+ case IOCTL_VOLUME_QUERY_ALLOCATION_HINT:
+ case FT_BALANCED_READ_MODE:
+ case IOCTL_STORAGE_GET_DEVICE_NUMBER:
+ Dump ("ProcessVolumeDeviceControlIrp: returning STATUS_INVALID_DEVICE_REQUEST for %ls\n", TCTranslateCode (irpSp->Parameters.DeviceIoControl.IoControlCode));
+ Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST;
+ Irp->IoStatus.Information = 0;
+ break;
default:
Dump ("ProcessVolumeDeviceControlIrp (unknown code 0x%.8X)\n", irpSp->Parameters.DeviceIoControl.IoControlCode);
return TCCompleteIrp (Irp, STATUS_INVALID_DEVICE_REQUEST, 0);
@@ -1007,7 +1339,7 @@ NTSTATUS ProcessMainDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION Ex
InitializeObjectAttributes (&ObjectAttributes, &FullFileName, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL);
- if (opentest->bDetectTCBootLoader || opentest->DetectFilesystem || opentest->bMatchVolumeID)
+ if (opentest->bDetectTCBootLoader || opentest->DetectFilesystem || opentest->bComputeVolumeIDs)
access |= FILE_READ_DATA;
ntStatus = ZwCreateFile (&NtFileHandle,
@@ -1018,9 +1350,10 @@ NTSTATUS ProcessMainDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION Ex
{
opentest->TCBootLoaderDetected = FALSE;
opentest->FilesystemDetected = FALSE;
- opentest->VolumeIDMatched = FALSE;
+ memset (opentest->VolumeIDComputed, 0, sizeof (opentest->VolumeIDComputed));
+ memset (opentest->volumeIDs, 0, sizeof (opentest->volumeIDs));
- if (opentest->bDetectTCBootLoader || opentest->DetectFilesystem || opentest->bMatchVolumeID)
+ if (opentest->bDetectTCBootLoader || opentest->DetectFilesystem || opentest->bComputeVolumeIDs)
{
byte *readBuffer = TCalloc (TC_MAX_VOLUME_SECTOR_SIZE);
if (!readBuffer)
@@ -1066,23 +1399,30 @@ NTSTATUS ProcessMainDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION Ex
{
switch (BE64 (*(uint64 *) readBuffer))
{
- case 0xEB52904E54465320: // NTFS
- case 0xEB3C904D53444F53: // FAT16
- case 0xEB58904D53444F53: // FAT32
- case 0xEB76904558464154: // exFAT
-
+ case 0xEB52904E54465320ULL: // NTFS
+ case 0xEB3C904D53444F53ULL: // FAT16/FAT32
+ case 0xEB58904D53444F53ULL: // FAT32
+ case 0xEB76904558464154ULL: // exFAT
+ case 0x0000005265465300ULL: // ReFS
+ case 0xEB58906D6B66732EULL: // FAT32 mkfs.fat
+ case 0xEB58906D6B646F73ULL: // FAT32 mkfs.vfat/mkdosfs
+ case 0xEB3C906D6B66732EULL: // FAT16/FAT12 mkfs.fat
+ case 0xEB3C906D6B646F73ULL: // FAT16/FAT12 mkfs.vfat/mkdosfs
opentest->FilesystemDetected = TRUE;
break;
+ case 0x0000000000000000ULL:
+ // all 512 bytes are zeroes => unencrypted filesystem like Microsoft reserved partition
+ if (IsAllZeroes (readBuffer + 8, TC_VOLUME_HEADER_EFFECTIVE_SIZE - 8))
+ opentest->FilesystemDetected = TRUE;
+ break;
}
}
}
}
- if (opentest->bMatchVolumeID)
+ if (opentest->bComputeVolumeIDs && (!opentest->DetectFilesystem || !opentest->FilesystemDetected))
{
int volumeType;
- BYTE volumeID[VOLUME_ID_SIZE];
-
// Go through all volume types (e.g., normal, hidden)
for (volumeType = TC_VOLUME_TYPE_NORMAL;
volumeType < TC_VOLUME_TYPE_COUNT;
@@ -1114,13 +1454,8 @@ NTSTATUS ProcessMainDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION Ex
if (NT_SUCCESS (ntStatus))
{
/* compute the ID of this volume: SHA-256 of the effective header */
- sha256 (volumeID, readBuffer, TC_VOLUME_HEADER_EFFECTIVE_SIZE);
-
- if (0 == memcmp (volumeID, opentest->volumeID, VOLUME_ID_SIZE))
- {
- opentest->VolumeIDMatched = TRUE;
- break;
- }
+ sha256 (opentest->volumeIDs[volumeType], readBuffer, TC_VOLUME_HEADER_EFFECTIVE_SIZE);
+ opentest->VolumeIDComputed[volumeType] = TRUE;
}
}
}
@@ -1472,6 +1807,7 @@ NTSTATUS ProcessMainDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION Ex
NTSTATUS ntStatus;
EnsureNullTerminatedString (g->deviceName, sizeof (g->deviceName));
+ Dump ("Calling IOCTL_DISK_GET_DRIVE_GEOMETRY on %ls\n", g->deviceName);
ntStatus = TCDeviceIoControl (g->deviceName,
IOCTL_DISK_GET_DRIVE_GEOMETRY,
@@ -1483,6 +1819,33 @@ NTSTATUS ProcessMainDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION Ex
}
break;
+ case VC_IOCTL_GET_DRIVE_GEOMETRY_EX:
+ if (ValidateIOBufferSize (Irp, sizeof (DISK_GEOMETRY_EX_STRUCT), ValidateInputOutput))
+ {
+ DISK_GEOMETRY_EX_STRUCT *g = (DISK_GEOMETRY_EX_STRUCT *) Irp->AssociatedIrp.SystemBuffer;
+ {
+ NTSTATUS ntStatus;
+ DISK_GEOMETRY_EX geo = {0};
+
+ EnsureNullTerminatedString (g->deviceName, sizeof (g->deviceName));
+ Dump ("Calling IOCTL_DISK_GET_DRIVE_GEOMETRY_EX on %ls\n", g->deviceName);
+
+ ntStatus = TCDeviceIoControl (g->deviceName,
+ IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,
+ NULL, 0, &geo, sizeof (geo));
+
+ if (NT_SUCCESS(ntStatus))
+ {
+ memcpy (&g->diskGeometry, &geo.Geometry, sizeof (DISK_GEOMETRY));
+ g->DiskSize.QuadPart = geo.DiskSize.QuadPart;
+ }
+
+ Irp->IoStatus.Information = sizeof (DISK_GEOMETRY_EX_STRUCT);
+ Irp->IoStatus.Status = ntStatus;
+ }
+ }
+ break;
+
case TC_IOCTL_PROBE_REAL_DRIVE_SIZE:
if (ValidateIOBufferSize (Irp, sizeof (ProbeRealDriveSizeRequest), ValidateInputOutput))
{
@@ -2125,6 +2488,7 @@ LPWSTR TCTranslateCode (ULONG ulCode)
TC_CASE_RET_NAME (TC_IOCTL_START_DECOY_SYSTEM_WIPE);
TC_CASE_RET_NAME (TC_IOCTL_WIPE_PASSWORD_CACHE);
TC_CASE_RET_NAME (TC_IOCTL_WRITE_BOOT_DRIVE_SECTOR);
+ TC_CASE_RET_NAME (VC_IOCTL_GET_DRIVE_GEOMETRY_EX);
TC_CASE_RET_NAME (IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS);
@@ -2165,6 +2529,8 @@ LPWSTR TCTranslateCode (ULONG ulCode)
return (LPWSTR) _T ("IOCTL_DISK_SET_PARTITION_INFO");
else if (ulCode == IOCTL_DISK_GET_DRIVE_LAYOUT)
return (LPWSTR) _T ("IOCTL_DISK_GET_DRIVE_LAYOUT");
+ else if (ulCode == IOCTL_DISK_GET_DRIVE_LAYOUT_EX)
+ return (LPWSTR) _T ("IOCTL_DISK_GET_DRIVE_LAYOUT_EX");
else if (ulCode == IOCTL_DISK_SET_DRIVE_LAYOUT_EX)
return (LPWSTR) _T ("IOCTL_DISK_SET_DRIVE_LAYOUT_EX");
else if (ulCode == IOCTL_DISK_VERIFY)
@@ -2219,8 +2585,34 @@ LPWSTR TCTranslateCode (ULONG ulCode)
return (LPWSTR) _T ("IOCTL_DISK_FIND_NEW_DEVICES");
else if (ulCode == IOCTL_DISK_GET_MEDIA_TYPES)
return (LPWSTR) _T ("IOCTL_DISK_GET_MEDIA_TYPES");
+ else if (ulCode == IOCTL_DISK_IS_CLUSTERED)
+ return (LPWSTR) _T ("IOCTL_DISK_IS_CLUSTERED");
+ else if (ulCode == IOCTL_STORAGE_GET_MEDIA_TYPES)
+ return (LPWSTR) _T ("IOCTL_STORAGE_GET_MEDIA_TYPES");
+ else if (ulCode == IOCTL_STORAGE_GET_HOTPLUG_INFO)
+ return (LPWSTR) _T ("IOCTL_STORAGE_GET_HOTPLUG_INFO");
else if (ulCode == IOCTL_STORAGE_SET_HOTPLUG_INFO)
return (LPWSTR) _T ("IOCTL_STORAGE_SET_HOTPLUG_INFO");
+ else if (ulCode == IOCTL_STORAGE_QUERY_PROPERTY)
+ return (LPWSTR) _T ("IOCTL_STORAGE_QUERY_PROPERTY");
+ else if (ulCode == IOCTL_VOLUME_GET_GPT_ATTRIBUTES)
+ return (LPWSTR) _T ("IOCTL_VOLUME_GET_GPT_ATTRIBUTES");
+ else if (ulCode == FT_BALANCED_READ_MODE)
+ return (LPWSTR) _T ("FT_BALANCED_READ_MODE");
+ else if (ulCode == IOCTL_VOLUME_QUERY_ALLOCATION_HINT)
+ return (LPWSTR) _T ("IOCTL_VOLUME_QUERY_ALLOCATION_HINT");
+ else if (ulCode == IOCTL_DISK_GET_CLUSTER_INFO)
+ return (LPWSTR) _T ("IOCTL_DISK_GET_CLUSTER_INFO");
+ else if (ulCode == IOCTL_DISK_ARE_VOLUMES_READY)
+ return (LPWSTR) _T ("IOCTL_DISK_ARE_VOLUMES_READY");
+ else if (ulCode == IOCTL_VOLUME_IS_DYNAMIC)
+ return (LPWSTR) _T ("IOCTL_VOLUME_IS_DYNAMIC");
+ else if (ulCode == IOCTL_MOUNTDEV_QUERY_STABLE_GUID)
+ return (LPWSTR) _T ("IOCTL_MOUNTDEV_QUERY_STABLE_GUID");
+ else if (ulCode == IOCTL_VOLUME_POST_ONLINE)
+ return (LPWSTR) _T ("IOCTL_VOLUME_POST_ONLINE");
+ else if (ulCode == IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT)
+ return (LPWSTR) _T ("IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT");
else if (ulCode == IRP_MJ_READ)
return (LPWSTR) _T ("IRP_MJ_READ");
else if (ulCode == IRP_MJ_WRITE)
@@ -2745,6 +3137,7 @@ NTSTATUS MountDevice (PDEVICE_OBJECT DeviceObject, MOUNT_STRUCT *mount)
if (!SelfTestsPassed)
{
+ Dump ("Failure of built-in automatic self-tests! Mounting not allowed.\n");
mount->nReturnCode = ERR_SELF_TESTS_FAILED;
return ERR_SELF_TESTS_FAILED;
}
@@ -3421,14 +3814,14 @@ NTSTATUS WriteRegistryConfigFlags (uint32 flags)
NTSTATUS GetDeviceSectorSize (PDEVICE_OBJECT deviceObject, ULONG *bytesPerSector)
{
NTSTATUS status;
- DISK_GEOMETRY geometry;
+ DISK_GEOMETRY_EX geometry;
- status = SendDeviceIoControlRequest (deviceObject, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &geometry, sizeof (geometry));
+ status = SendDeviceIoControlRequest (deviceObject, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, &geometry, sizeof (geometry));
if (!NT_SUCCESS (status))
return status;
- *bytesPerSector = geometry.BytesPerSector;
+ *bytesPerSector = geometry.Geometry.BytesPerSector;
return STATUS_SUCCESS;
}
@@ -3593,3 +3986,28 @@ BOOL IsOSAtLeast (OSVersionEnum reqMinOS)
return ((OsMajorVersion << 16 | OsMinorVersion << 8)
>= (major << 16 | minor << 8));
}
+
+NTSTATUS NTAPI KeSaveExtendedProcessorState (
+ __in ULONG64 Mask,
+ PXSTATE_SAVE XStateSave
+ )
+{
+ if (KeSaveExtendedProcessorStatePtr)
+ {
+ return (KeSaveExtendedProcessorStatePtr) (Mask, XStateSave);
+ }
+ else
+ {
+ return STATUS_SUCCESS;
+ }
+}
+
+VOID NTAPI KeRestoreExtendedProcessorState (
+ PXSTATE_SAVE XStateSave
+ )
+{
+ if (KeRestoreExtendedProcessorStatePtr)
+ {
+ (KeRestoreExtendedProcessorStatePtr) (XStateSave);
+ }
+} \ No newline at end of file
diff --git a/src/Driver/Ntdriver.h b/src/Driver/Ntdriver.h
index 2c5f13d..fd4d355 100644
--- a/src/Driver/Ntdriver.h
+++ b/src/Driver/Ntdriver.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -63,7 +63,9 @@ typedef struct EXTENSION
uint32 HostBytesPerSector;
uint32 HostBytesPerPhysicalSector;
- ULONG BytesOffsetForSectorAlignment;
+ ULONG HostMaximumTransferLength;
+ ULONG HostMaximumPhysicalPages;
+ ULONG HostAlignmentMask;
KEVENT keVolumeEvent; /* Event structure used when setting up a device */
diff --git a/src/Driver/Ntvol.c b/src/Driver/Ntvol.c
index cfcc45e..23b1a1b 100644
--- a/src/Driver/Ntvol.c
+++ b/src/Driver/Ntvol.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -63,6 +63,11 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
Extension->hDeviceFile = NULL;
Extension->bTimeStampValid = FALSE;
+ /* default value for storage alignment */
+ Extension->HostMaximumTransferLength = 65536;
+ Extension->HostMaximumPhysicalPages = 17;
+ Extension->HostAlignmentMask = 0;
+
RtlInitUnicodeString (&FullFileName, pwszMountVolume);
InitializeObjectAttributes (&oaFileAttributes, &FullFileName, OBJ_CASE_INSENSITIVE | (forceAccessCheck ? OBJ_FORCE_ACCESS_CHECK : 0) | OBJ_KERNEL_HANDLE, NULL, NULL);
KeInitializeEvent (&Extension->keVolumeEvent, NotificationEvent, FALSE);
@@ -82,9 +87,9 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
PARTITION_INFORMATION pi;
PARTITION_INFORMATION_EX pix;
LARGE_INTEGER diskLengthInfo;
- DISK_GEOMETRY dg;
+ DISK_GEOMETRY_EX dg;
STORAGE_PROPERTY_QUERY storagePropertyQuery = {0};
- STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR storageDescriptor = {0};
+ STORAGE_DESCRIPTOR_HEADER storageHeader = {0};
ntStatus = IoGetDeviceObjectPointer (&FullFileName,
FILE_READ_DATA | FILE_READ_ATTRIBUTES,
@@ -94,26 +99,66 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
if (!NT_SUCCESS (ntStatus))
goto error;
- ntStatus = TCSendHostDeviceIoControlRequest (DeviceObject, Extension, IOCTL_DISK_GET_DRIVE_GEOMETRY, (char *) &dg, sizeof (dg));
+ ntStatus = TCSendHostDeviceIoControlRequest (DeviceObject, Extension, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, (char *) &dg, sizeof (dg));
if (!NT_SUCCESS (ntStatus))
goto error;
- lDiskLength.QuadPart = dg.Cylinders.QuadPart * dg.SectorsPerTrack * dg.TracksPerCylinder * dg.BytesPerSector;
- Extension->HostBytesPerSector = dg.BytesPerSector;
-
- storagePropertyQuery.PropertyId = StorageAccessAlignmentProperty;
- storagePropertyQuery.QueryType = PropertyStandardQuery;
+ lDiskLength.QuadPart = dg.DiskSize.QuadPart;
+ Extension->HostBytesPerSector = dg.Geometry.BytesPerSector;
+ Extension->HostBytesPerPhysicalSector = dg.Geometry.BytesPerSector;
/* IOCTL_STORAGE_QUERY_PROPERTY supported only on Vista and above */
- if (NT_SUCCESS (TCSendHostDeviceIoControlRequestEx (DeviceObject, Extension, IOCTL_STORAGE_QUERY_PROPERTY,
- (char*) &storagePropertyQuery, sizeof(storagePropertyQuery),
- (char *) &storageDescriptor, sizeof (storageDescriptor))))
- {
- Extension->HostBytesPerPhysicalSector = storageDescriptor.BytesPerPhysicalSector;
- }
- else
+ if (OsMajorVersion >= 6)
{
- Extension->HostBytesPerPhysicalSector = dg.BytesPerSector;
+ storagePropertyQuery.PropertyId = StorageAccessAlignmentProperty;
+ storagePropertyQuery.QueryType = PropertyStandardQuery;
+
+ if (NT_SUCCESS (TCSendHostDeviceIoControlRequestEx (DeviceObject, Extension, IOCTL_STORAGE_QUERY_PROPERTY,
+ (char*) &storagePropertyQuery, sizeof(storagePropertyQuery),
+ (char *) &storageHeader, sizeof (storageHeader))))
+ {
+ byte* outputBuffer = TCalloc (storageHeader.Size);
+ if (!outputBuffer)
+ {
+ ntStatus = STATUS_INSUFFICIENT_RESOURCES;
+ goto error;
+ }
+
+ if (NT_SUCCESS (TCSendHostDeviceIoControlRequestEx (DeviceObject, Extension, IOCTL_STORAGE_QUERY_PROPERTY,
+ (char*) &storagePropertyQuery, sizeof(storagePropertyQuery),
+ outputBuffer, storageHeader.Size)))
+ {
+ PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR pStorageDescriptor = (PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR) outputBuffer;
+ Extension->HostBytesPerPhysicalSector = pStorageDescriptor->BytesPerPhysicalSector;
+ }
+
+ TCfree (outputBuffer);
+ }
+
+ storagePropertyQuery.PropertyId = StorageAdapterProperty;
+ if (NT_SUCCESS (TCSendHostDeviceIoControlRequestEx (DeviceObject, Extension, IOCTL_STORAGE_QUERY_PROPERTY,
+ (char*) &storagePropertyQuery, sizeof(storagePropertyQuery),
+ (char *) &storageHeader, sizeof (storageHeader))))
+ {
+ byte* outputBuffer = TCalloc (storageHeader.Size);
+ if (!outputBuffer)
+ {
+ ntStatus = STATUS_INSUFFICIENT_RESOURCES;
+ goto error;
+ }
+
+ if (NT_SUCCESS (TCSendHostDeviceIoControlRequestEx (DeviceObject, Extension, IOCTL_STORAGE_QUERY_PROPERTY,
+ (char*) &storagePropertyQuery, sizeof(storagePropertyQuery),
+ outputBuffer, storageHeader.Size)))
+ {
+ PSTORAGE_ADAPTER_DESCRIPTOR pStorageDescriptor = (PSTORAGE_ADAPTER_DESCRIPTOR) outputBuffer;
+ Extension->HostMaximumTransferLength = pStorageDescriptor->MaximumTransferLength;
+ Extension->HostMaximumPhysicalPages = pStorageDescriptor->MaximumPhysicalPages;
+ Extension->HostAlignmentMask = pStorageDescriptor->AlignmentMask;
+ }
+
+ TCfree (outputBuffer);
+ }
}
// Drive geometry is used only when IOCTL_DISK_GET_PARTITION_INFO fails
@@ -164,6 +209,9 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
Extension->HostBytesPerSector = mount->BytesPerSector;
Extension->HostBytesPerPhysicalSector = mount->BytesPerPhysicalSector;
+ Extension->HostMaximumTransferLength = mount->MaximumTransferLength;
+ Extension->HostMaximumPhysicalPages = mount->MaximumPhysicalPages;
+ Extension->HostAlignmentMask = mount->AlignmentMask;
if (Extension->HostBytesPerSector != TC_SECTOR_SIZE_FILE_HOSTED_VOLUME)
disableBuffering = FALSE;
@@ -517,7 +565,7 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
Extension->cryptoInfo->bPartitionInInactiveSysEncScope = mount->bPartitionInInactiveSysEncScope;
- /* compute the ID of this volume: SHA-512 of the effective header */
+ /* compute the ID of this volume: SHA-256 of the effective header */
sha256 (Extension->volumeID, readBuffer, TC_VOLUME_HEADER_EFFECTIVE_SIZE);
if (volumeType == TC_VOLUME_TYPE_NORMAL)
@@ -644,6 +692,8 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
// mount it (i.e. not just to protect it)
if (volumeType == TC_VOLUME_TYPE_NORMAL || !mount->bProtectHiddenVolume)
{
+ LARGE_INTEGER dataOffset;
+ ULONG dataLength;
// Validate sector size
if (bRawDevice && Extension->cryptoInfo->SectorSize != Extension->HostBytesPerSector)
{
@@ -656,9 +706,90 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
Extension->TracksPerCylinder = 1;
Extension->SectorsPerTrack = 1;
Extension->BytesPerSector = Extension->cryptoInfo->SectorSize;
- Extension->NumberOfCylinders = Extension->DiskLength / Extension->BytesPerSector;
+ // Add extra sector since our virtual partition starts at Extension->BytesPerSector and not 0
+ Extension->NumberOfCylinders = (Extension->DiskLength / Extension->BytesPerSector) + 1;
Extension->PartitionType = 0;
+ // Try to detect the filesystem used by the volume in order to give a correct value to Extension->PartitionType
+ dataOffset.QuadPart = (LONGLONG) Extension->cryptoInfo->volDataAreaOffset;
+ dataLength = bRawDevice ? Extension->HostBytesPerSector : TC_VOLUME_HEADER_EFFECTIVE_SIZE;
+
+ Dump ("Reading first data at %I64d\n", dataOffset.QuadPart);
+
+ if (NT_SUCCESS (ZwReadFile (Extension->hDeviceFile,
+ NULL,
+ NULL,
+ NULL,
+ &IoStatusBlock,
+ readBuffer,
+ dataLength,
+ &dataOffset,
+ NULL)))
+ {
+ uint64 fsId = 0;
+ UINT64_STRUCT dataUnit;
+
+ dataUnit.Value = Extension->cryptoInfo->volDataAreaOffset / ENCRYPTION_DATA_UNIT_SIZE;
+
+ if (Extension->cryptoInfo->bPartitionInInactiveSysEncScope)
+ dataUnit.Value += Extension->cryptoInfo->FirstDataUnitNo.Value;
+ DecryptDataUnits ((unsigned char*) readBuffer, &dataUnit, dataLength / ENCRYPTION_DATA_UNIT_SIZE, Extension->cryptoInfo);
+
+ fsId = BE64 (*(uint64 *) readBuffer);
+
+ switch (fsId)
+ {
+ case 0xEB3C904D53444F53: // FAT16/FAT12
+ case 0xEB3C906D6B66732E: // mkfs.fat
+ case 0xEB3C906D6B646F73: // mkfs.vfat/mkdosfs
+ // workaround for FAT32 formatting by TrueCrypt/VeraCrypt
+ if (memcmp (readBuffer + 0x52, "FAT32 ", 8) == 0)
+ {
+ Extension->PartitionType = PARTITION_FAT32;
+ Dump ("FAT32 detected with FAT16 header\n");
+ }
+ else
+ {
+ if (memcmp (readBuffer + 0x36, "FAT12 ", 8) == 0)
+ {
+ Extension->PartitionType = PARTITION_FAT_12;
+ Dump ("FAT12 detected\n");
+ }
+ else
+ {
+ Extension->PartitionType = PARTITION_FAT_16;
+ Dump ("FAT16 detected\n");
+ }
+ }
+ break;
+ case 0xEB58906D6B66732E: // mkfs.fat
+ case 0xEB58906D6B646F73: // mkfs.vfat/mkdosfs
+ case 0xEB58904D53444F53: // FAT32
+ Extension->PartitionType = PARTITION_FAT32;
+ Dump ("FAT32 detected\n");
+ break;
+ case 0xEB52904E54465320: // NTFS
+ Extension->PartitionType = PARTITION_IFS;
+ Dump ("NTFS detected\n");
+ break;
+ case 0xEB76904558464154: // exFAT
+ Extension->PartitionType = PARTITION_IFS;
+ Dump ("exFAT detected\n");
+ break;
+ case 0x0000005265465300: // ReFS
+ Extension->PartitionType = PARTITION_IFS;
+ Dump ("ReFS detected\n");
+ break;
+ default:
+ Dump ("Unknown FS ID (0x%.8I64x)\n", fsId);
+ break;
+ }
+
+ // erase sensitive data
+ EncryptDataUnits ((unsigned char*) readBuffer, &dataUnit, dataLength / ENCRYPTION_DATA_UNIT_SIZE, Extension->cryptoInfo);
+ burn (readBuffer, dataLength);
+ }
+
Extension->bRawDevice = bRawDevice;
memset (Extension->wszVolume, 0, sizeof (Extension->wszVolume));
diff --git a/src/Driver/Ntvol.h b/src/Driver/Ntvol.h
index ae7d9cb..1d80b7d 100644
--- a/src/Driver/Ntvol.h
+++ b/src/Driver/Ntvol.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Driver/VolumeFilter.c b/src/Driver/VolumeFilter.c
index 50ac74d..a3d323b 100644
--- a/src/Driver/VolumeFilter.c
+++ b/src/Driver/VolumeFilter.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Driver/VolumeFilter.h b/src/Driver/VolumeFilter.h
index b73b4f4..f3e5323 100644
--- a/src/Driver/VolumeFilter.h
+++ b/src/Driver/VolumeFilter.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/ExpandVolume/DlgExpandVolume.cpp b/src/ExpandVolume/DlgExpandVolume.cpp
index d0a98fe..c1acd76 100644
--- a/src/ExpandVolume/DlgExpandVolume.cpp
+++ b/src/ExpandVolume/DlgExpandVolume.cpp
@@ -9,7 +9,7 @@
or Copyright (c) 2012-2013 Josef Schneider <josef@netpage.dk>
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/ExpandVolume/ExpandVolume.c b/src/ExpandVolume/ExpandVolume.c
index 82c4207..3ed2257 100644
--- a/src/ExpandVolume/ExpandVolume.c
+++ b/src/ExpandVolume/ExpandVolume.c
@@ -9,7 +9,7 @@
or Copyright (c) 2012-2013 Josef Schneider <josef@netpage.dk>
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -559,18 +559,17 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
}
else
{
- DISK_GEOMETRY driveInfo;
+ DISK_GEOMETRY_EX driveInfo;
- bResult = DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0,
+ bResult = DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0,
&driveInfo, sizeof (driveInfo), &dwResult, NULL);
if (!bResult)
goto error;
- hostSize = driveInfo.Cylinders.QuadPart * driveInfo.BytesPerSector *
- driveInfo.SectorsPerTrack * driveInfo.TracksPerCylinder;
+ hostSize = driveInfo.DiskSize.QuadPart;
- HostSectorSize = driveInfo.BytesPerSector;
+ HostSectorSize = driveInfo.Geometry.BytesPerSector;
}
if (hostSize == 0)
diff --git a/src/ExpandVolume/ExpandVolume.h b/src/ExpandVolume/ExpandVolume.h
index 8a9ace6..5f4eb7f 100644
--- a/src/ExpandVolume/ExpandVolume.h
+++ b/src/ExpandVolume/ExpandVolume.h
@@ -9,7 +9,7 @@
or Copyright (c) 2012-2013 Josef Schneider <josef@netpage.dk>
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/ExpandVolume/ExpandVolume.rc b/src/ExpandVolume/ExpandVolume.rc
index 06ec849..075d92c 100644
--- a/src/ExpandVolume/ExpandVolume.rc
+++ b/src/ExpandVolume/ExpandVolume.rc
@@ -1,298 +1,298 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-#include "..\\common\\resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_SIZE_DIALOG DIALOGEX 0, 0, 376, 271
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt Expander"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- EDITTEXT IDC_SIZEBOX,30,102,109,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "&KB",IDC_KB,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,169,105,38,10
- CONTROL "&MB",IDC_MB,"Button",BS_AUTORADIOBUTTON,209,105,38,10
- 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
- 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
- GROUPBOX "Enter new volume size",IDC_STATIC,15,83,346,63
- RTEXT "Current size: ",IDT_CURRENT_SIZE,27,42,46,8
- CONTROL "",IDC_EXPAND_VOLUME_OLDSIZE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,80,42,275,8,WS_EX_TRANSPARENT
- RTEXT "New size: ",IDT_NEW_SIZE,28,54,45,8
- LTEXT "",IDC_EXPAND_VOLUME_NEWSIZE,80,54,275,8,0,WS_EX_TRANSPARENT
- RTEXT "Volume: ",IDT_VOL_NAME,31,18,42,8
- GROUPBOX "",IDC_STATIC,15,9,346,59
- CONTROL "",IDC_EXPAND_VOLUME_NAME,"Static",SS_SIMPLE | WS_GROUP,80,18,275,8,WS_EX_TRANSPARENT
- RTEXT "File system: ",IDT_FILE_SYS,31,30,42,8
- CONTROL "",IDC_EXPAND_FILE_SYSTEM,"Static",SS_SIMPLE | WS_GROUP,80,30,275,8,WS_EX_TRANSPARENT
-END
-
-IDD_MOUNT_DLG DIALOGEX 0, 0, 376, 271
-STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt Expander"
-MENU IDR_MENU
-CLASS "VeraCryptCustomDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- COMBOBOX IDC_VOLUME,56,192,212,74,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Select &File...",IDC_SELECT_FILE,276,192,84,14
- PUSHBUTTON "Select D&evice...",IDC_SELECT_DEVICE,276,211,84,14
- DEFPUSHBUTTON "Mount",IDOK,8,243,84,18,WS_GROUP
- PUSHBUTTON "E&xit",IDC_EXIT,284,243,84,18,WS_GROUP
- CONTROL 112,IDC_LOGO,"Static",SS_BITMAP | SS_NOTIFY | WS_BORDER,16,192,27,31
- GROUPBOX "Volume",IDT_VOLUME,8,179,360,53
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,1,0,373,147
- GROUPBOX "",IDC_STATIC,282,238,88,24
- GROUPBOX "",IDC_STATIC,6,238,88,24
- GROUPBOX "",IDC_STATIC,1,147,373,123,BS_CENTER
- LTEXT "1. Select the VeraCrypt volume to be expanded\n2. Click the 'Mount' button",IDC_STATIC,15,156,293,21
- LTEXT "Static",IDC_INFOEXPAND,8,6,361,134,SS_NOPREFIX | SS_SUNKEN,WS_EX_STATICEDGE
-END
-
-IDD_PASSWORD_DLG DIALOGEX 0, 0, 322, 107
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
-CAPTION "Enter VeraCrypt Volume Password"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- EDITTEXT IDC_PASSWORD,69,8,166,14,ES_PASSWORD | ES_AUTOHSCROLL
- COMBOBOX IDC_PKCS5_PRF_ID,69,26,86,90,CBS_DROPDOWNLIST | WS_TABSTOP
- CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,28,76,10
- EDITTEXT IDC_PIM,69,43,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,70,49,97,10
- CONTROL "Cache passwords and keyfil&es in memory",IDC_CACHE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,62,153,10
- CONTROL "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,75,83,10
- CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,88,83,11
- PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,171,86,64,14
- PUSHBUTTON "Mount Opti&ons...",IDC_MOUNT_OPTIONS,243,86,64,14
- DEFPUSHBUTTON "OK",IDOK,243,8,64,14
- PUSHBUTTON "Cancel",IDCANCEL,243,25,64,14
- RTEXT "Password:",IDT_PASSWORD,0,10,65,13
- RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,0,27,65,13
- RTEXT "Volume PIM:",IDT_PIM,0,46,65,13,NOT WS_VISIBLE
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,115,46,189,8,NOT WS_VISIBLE
-END
-
-IDD_EXPAND_PROGRESS_DLG DIALOGEX 0, 0, 376, 283
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt Expander"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- RTEXT "Current size: ",IDT_CURRENT_SIZE,27,40,46,8
- CONTROL "",IDC_EXPAND_VOLUME_OLDSIZE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,80,40,275,8,WS_EX_TRANSPARENT
- RTEXT "New size: ",IDT_NEW_SIZE,28,52,45,8
- LTEXT "",IDC_EXPAND_VOLUME_NEWSIZE,80,52,275,8,0,WS_EX_TRANSPARENT
- CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,22,96,332,12
- RTEXT "",IDC_TIMEREMAIN,275,114,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "",IDC_WRITESPEED,178,114,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- LTEXT "",IDC_BYTESWRITTEN,77,114,39,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "Done",IDT_DONE,53,115,22,8
- RTEXT "Speed",IDT_SPEED,142,115,34,8
- RTEXT "Left",IDT_LEFT,248,115,25,8
- GROUPBOX "",IDC_STATIC,15,84,346,49
- RTEXT "Volume: ",IDT_VOL_NAME,31,16,42,8
- GROUPBOX "",IDC_STATIC,15,7,346,72
- CONTROL "",IDC_EXPAND_VOLUME_NAME,"Static",SS_SIMPLE | WS_GROUP,80,16,275,8,WS_EX_TRANSPARENT
- DEFPUSHBUTTON "Continue",IDOK,15,247,84,18
- PUSHBUTTON "Cancel",IDCANCEL,277,247,84,18
- EDITTEXT IDC_BOX_STATUS,15,176,346,66,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL
- CONTROL "",IDC_EXPAND_VOLUME_INITSPACE,"Static",SS_SIMPLE | WS_GROUP,80,64,275,8,WS_EX_TRANSPARENT
- RTEXT "Fill new space: ",IDT_INIT_SPACE,20,64,53,8
- RTEXT "File system: ",IDT_FILE_SYS,31,28,42,8
- CONTROL "",IDC_EXPAND_FILE_SYSTEM,"Static",SS_SIMPLE | WS_GROUP,80,28,275,8,WS_EX_TRANSPARENT
- RTEXT "Random Pool: ",IDT_RANDOM_POOL2,20,144,53,8
- CONTROL "",IDC_RANDOM_BYTES,"Static",SS_SIMPLE | WS_GROUP,80,144,149,8,WS_EX_TRANSPARENT
- CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,236,142,125,12
- GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,20,156,214,18
- CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,31,165,193,6
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_SIZE_DIALOG, DIALOG
- BEGIN
- LEFTMARGIN, 15
- RIGHTMARGIN, 361
- VERTGUIDE, 30
- TOPMARGIN, 14
- BOTTOMMARGIN, 256
- END
-
- IDD_MOUNT_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 369
- VERTGUIDE, 8
- BOTTOMMARGIN, 269
- END
-
- IDD_PASSWORD_DLG, DIALOG
- BEGIN
- BOTTOMMARGIN, 102
- END
-
- IDD_EXPAND_PROGRESS_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 361
- VERTGUIDE, 15
- VERTGUIDE, 73
- VERTGUIDE, 80
- VERTGUIDE, 355
- TOPMARGIN, 9
- BOTTOMMARGIN, 268
- HORZGUIDE, 176
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// HEADER
-//
-
-IDR_MOUNT_RSRC_HEADER HEADER "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,19,4,0
- PRODUCTVERSION 1,19,4,0
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", "IDRIX"
- VALUE "FileDescription", "VeraCrypt Expander"
- VALUE "FileVersion", "1.19"
- VALUE "LegalTrademarks", "VeraCrypt"
- VALUE "OriginalFilename", "VeraCryptExpander.exe"
- VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.19"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "#include ""..\\\\common\\\\resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#include ""..\\\\common\\\\common.rc""\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_LOGO_96DPI BITMAP "Logo_96dpi.bmp"
-IDB_LOGO_288DPI BITMAP "Logo_288dpi.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_MENU MENUEX
-BEGIN
- MENUITEM "About", IDM_ABOUT,MFT_STRING,MFS_ENABLED
- MENUITEM "Homepage", IDM_HOMEPAGE,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_UACSTRING "VeraCrypt Expander"
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#include "..\\common\\common.rc"
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+#include "..\\common\\resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_SIZE_DIALOG DIALOGEX 0, 0, 376, 271
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Expander"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ EDITTEXT IDC_SIZEBOX,30,102,109,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "&KB",IDC_KB,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,169,105,38,10
+ CONTROL "&MB",IDC_MB,"Button",BS_AUTORADIOBUTTON,209,105,38,10
+ 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
+ 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
+ GROUPBOX "Enter new volume size",IDC_STATIC,15,83,346,63
+ RTEXT "Current size: ",IDT_CURRENT_SIZE,27,42,46,8
+ CONTROL "",IDC_EXPAND_VOLUME_OLDSIZE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,80,42,275,8,WS_EX_TRANSPARENT
+ RTEXT "New size: ",IDT_NEW_SIZE,28,54,45,8
+ LTEXT "",IDC_EXPAND_VOLUME_NEWSIZE,80,54,275,8,0,WS_EX_TRANSPARENT
+ RTEXT "Volume: ",IDT_VOL_NAME,31,18,42,8
+ GROUPBOX "",IDC_STATIC,15,9,346,59
+ CONTROL "",IDC_EXPAND_VOLUME_NAME,"Static",SS_SIMPLE | WS_GROUP,80,18,275,8,WS_EX_TRANSPARENT
+ RTEXT "File system: ",IDT_FILE_SYS,31,30,42,8
+ CONTROL "",IDC_EXPAND_FILE_SYSTEM,"Static",SS_SIMPLE | WS_GROUP,80,30,275,8,WS_EX_TRANSPARENT
+END
+
+IDD_MOUNT_DLG DIALOGEX 0, 0, 376, 271
+STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Expander"
+MENU IDR_MENU
+CLASS "VeraCryptCustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ COMBOBOX IDC_VOLUME,56,192,212,74,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Select &File...",IDC_SELECT_FILE,276,192,84,14
+ PUSHBUTTON "Select D&evice...",IDC_SELECT_DEVICE,276,211,84,14
+ DEFPUSHBUTTON "Mount",IDOK,8,243,84,18,WS_GROUP
+ PUSHBUTTON "E&xit",IDC_EXIT,284,243,84,18,WS_GROUP
+ CONTROL 112,IDC_LOGO,"Static",SS_BITMAP | SS_NOTIFY | WS_BORDER,16,192,27,31
+ GROUPBOX "Volume",IDT_VOLUME,8,179,360,53
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,1,0,373,147
+ GROUPBOX "",IDC_STATIC,282,238,88,24
+ GROUPBOX "",IDC_STATIC,6,238,88,24
+ GROUPBOX "",IDC_STATIC,1,147,373,123,BS_CENTER
+ LTEXT "1. Select the VeraCrypt volume to be expanded\n2. Click the 'Mount' button",IDC_STATIC,15,156,293,21
+ LTEXT "Static",IDC_INFOEXPAND,8,6,361,134,SS_NOPREFIX | SS_SUNKEN,WS_EX_STATICEDGE
+END
+
+IDD_PASSWORD_DLG DIALOGEX 0, 0, 322, 107
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
+CAPTION "Enter VeraCrypt Volume Password"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ EDITTEXT IDC_PASSWORD,69,8,166,14,ES_PASSWORD | ES_AUTOHSCROLL
+ COMBOBOX IDC_PKCS5_PRF_ID,69,26,86,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,28,76,10
+ EDITTEXT IDC_PIM,69,43,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,70,49,97,10
+ CONTROL "Cache passwords and keyfil&es in memory",IDC_CACHE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,62,153,10
+ CONTROL "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,75,83,10
+ CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,88,83,11
+ PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,171,86,64,14
+ PUSHBUTTON "Mount Opti&ons...",IDC_MOUNT_OPTIONS,243,86,64,14
+ DEFPUSHBUTTON "OK",IDOK,243,8,64,14
+ PUSHBUTTON "Cancel",IDCANCEL,243,25,64,14
+ RTEXT "Password:",IDT_PASSWORD,0,10,65,13
+ RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,0,27,65,13
+ RTEXT "Volume PIM:",IDT_PIM,0,46,65,13,NOT WS_VISIBLE
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,115,46,189,8,NOT WS_VISIBLE
+END
+
+IDD_EXPAND_PROGRESS_DLG DIALOGEX 0, 0, 376, 283
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Expander"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ RTEXT "Current size: ",IDT_CURRENT_SIZE,27,40,46,8
+ CONTROL "",IDC_EXPAND_VOLUME_OLDSIZE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,80,40,275,8,WS_EX_TRANSPARENT
+ RTEXT "New size: ",IDT_NEW_SIZE,28,52,45,8
+ LTEXT "",IDC_EXPAND_VOLUME_NEWSIZE,80,52,275,8,0,WS_EX_TRANSPARENT
+ CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,22,96,332,12
+ RTEXT "",IDC_TIMEREMAIN,275,114,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ RTEXT "",IDC_WRITESPEED,178,114,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ LTEXT "",IDC_BYTESWRITTEN,77,114,39,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ RTEXT "Done",IDT_DONE,53,115,22,8
+ RTEXT "Speed",IDT_SPEED,142,115,34,8
+ RTEXT "Left",IDT_LEFT,248,115,25,8
+ GROUPBOX "",IDC_STATIC,15,84,346,49
+ RTEXT "Volume: ",IDT_VOL_NAME,31,16,42,8
+ GROUPBOX "",IDC_STATIC,15,7,346,72
+ CONTROL "",IDC_EXPAND_VOLUME_NAME,"Static",SS_SIMPLE | WS_GROUP,80,16,275,8,WS_EX_TRANSPARENT
+ DEFPUSHBUTTON "Continue",IDOK,15,247,84,18
+ PUSHBUTTON "Cancel",IDCANCEL,277,247,84,18
+ EDITTEXT IDC_BOX_STATUS,15,176,346,66,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL
+ CONTROL "",IDC_EXPAND_VOLUME_INITSPACE,"Static",SS_SIMPLE | WS_GROUP,80,64,275,8,WS_EX_TRANSPARENT
+ RTEXT "Fill new space: ",IDT_INIT_SPACE,20,64,53,8
+ RTEXT "File system: ",IDT_FILE_SYS,31,28,42,8
+ CONTROL "",IDC_EXPAND_FILE_SYSTEM,"Static",SS_SIMPLE | WS_GROUP,80,28,275,8,WS_EX_TRANSPARENT
+ RTEXT "Random Pool: ",IDT_RANDOM_POOL2,20,144,53,8
+ CONTROL "",IDC_RANDOM_BYTES,"Static",SS_SIMPLE | WS_GROUP,80,144,149,8,WS_EX_TRANSPARENT
+ CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,236,142,125,12
+ GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,20,156,214,18
+ CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,31,165,193,6
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_SIZE_DIALOG, DIALOG
+ BEGIN
+ LEFTMARGIN, 15
+ RIGHTMARGIN, 361
+ VERTGUIDE, 30
+ TOPMARGIN, 14
+ BOTTOMMARGIN, 256
+ END
+
+ IDD_MOUNT_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 369
+ VERTGUIDE, 8
+ BOTTOMMARGIN, 269
+ END
+
+ IDD_PASSWORD_DLG, DIALOG
+ BEGIN
+ BOTTOMMARGIN, 102
+ END
+
+ IDD_EXPAND_PROGRESS_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 361
+ VERTGUIDE, 15
+ VERTGUIDE, 73
+ VERTGUIDE, 80
+ VERTGUIDE, 355
+ TOPMARGIN, 9
+ BOTTOMMARGIN, 268
+ HORZGUIDE, 176
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// HEADER
+//
+
+IDR_MOUNT_RSRC_HEADER HEADER "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,21,5,0
+ PRODUCTVERSION 1,21,5,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "IDRIX"
+ VALUE "FileDescription", "VeraCrypt Expander"
+ VALUE "FileVersion", "1.21"
+ VALUE "LegalTrademarks", "VeraCrypt"
+ VALUE "OriginalFilename", "VeraCryptExpander.exe"
+ VALUE "ProductName", "VeraCrypt"
+ VALUE "ProductVersion", "1.21"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "#include ""..\\\\common\\\\resource.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "#include ""..\\\\common\\\\common.rc""\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_LOGO_96DPI BITMAP "Logo_96dpi.bmp"
+IDB_LOGO_288DPI BITMAP "Logo_288dpi.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MENU MENUEX
+BEGIN
+ MENUITEM "About", IDM_ABOUT,MFT_STRING,MFS_ENABLED
+ MENUITEM "Homepage", IDM_HOMEPAGE,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE
+BEGIN
+ IDS_UACSTRING "VeraCrypt Expander"
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "..\\common\\common.rc"
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/ExpandVolume/ExpandVolume.vcproj b/src/ExpandVolume/ExpandVolume.vcproj
index 4ca6c9d..37b6f46 100644
--- a/src/ExpandVolume/ExpandVolume.vcproj
+++ b/src/ExpandVolume/ExpandVolume.vcproj
@@ -1,977 +1,977 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="ExpandVolume"
- ProjectGUID="{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}"
- RootNamespace="ExpandVolume"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- CommandLine=""
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
- PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- ExceptionHandling="1"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="true"
- EnableFunctionLevelLinking="false"
- UsePrecompiledHeader="0"
- BrowseInformation="0"
- BrowseInformationFile=""
- WarningLevel="3"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptExpander.exe"
- LinkIncremental="2"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/ExpandVolume.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="VeraCryptExpander.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCryptExpander.exe &quot;..\Debug\Setup Files&quot; &gt;NUL:&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- CommandLine=""
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TargetEnvironment="3"
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
- PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- ExceptionHandling="1"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="true"
- EnableFunctionLevelLinking="false"
- UsePrecompiledHeader="0"
- BrowseInformation="0"
- BrowseInformationFile=""
- WarningLevel="3"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptExpander.exe"
- LinkIncremental="2"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/ExpandVolume.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="VeraCryptExpander.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy $(TargetPath) &quot;..\Debug\Setup Files\VeraCryptExpander-x64.exe&quot; &gt;NUL:&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TypeLibraryName="$(SolutionDir)/Mount/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/w34189"
- Optimization="2"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
- PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="3"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptExpander.exe"
- LinkIncremental="1"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="false"
- GenerateMapFile="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="VeraCryptExpander.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy Release\VeraCryptExpander.exe &quot;..\Release\Setup Files\&quot;"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TargetEnvironment="3"
- TypeLibraryName="$(SolutionDir)/Mount/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/w34189"
- Optimization="2"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
- PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="3"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptExpander.exe"
- LinkIncremental="1"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="false"
- GenerateMapFile="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="VeraCryptExpander.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy $(TargetPath) &quot;..\Release\Setup Files\VeraCryptExpander-x64.exe&quot;"
- />
- </Configuration>
- </Configurations>
- <References>
- <ProjectReference
- ReferencedProjectIdentifier="{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
- RelativePathToProject=".\Crypto\Crypto.vcproj"
- />
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\DlgExpandVolume.cpp"
- >
- </File>
- <File
- RelativePath=".\ExpandVolume.c"
- >
- </File>
- <File
- RelativePath=".\InitDataArea.c"
- >
- </File>
- <File
- RelativePath=".\WinMain.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\BaseCom.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\BootEncryption.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\Cmdline.c"
- >
- </File>
- <File
- RelativePath="..\Common\Combo.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crypto.c"
- >
- </File>
- <File
- RelativePath="..\Common\Dictionary.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Dlgcode.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.c"
- >
- </File>
- <File
- RelativePath="..\Common\Endian.c"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.c"
- >
- </File>
- <File
- RelativePath="..\Common\Keyfiles.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Language.c"
- >
- </File>
- <File
- RelativePath="..\Common\Password.c"
- >
- </File>
- <File
- RelativePath="..\Common\Pkcs5.c"
- >
- </File>
- <File
- RelativePath="..\Common\Progress.c"
- >
- </File>
- <File
- RelativePath="..\Common\Random.c"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.c"
- >
- </File>
- <File
- RelativePath="..\Common\SecurityToken.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\Tests.c"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.c"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.c"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xml.c"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Mount"
- >
- <File
- RelativePath="..\Mount\Favorites.cpp"
- >
- </File>
- <File
- RelativePath="..\Mount\Hotkeys.c"
- >
- </File>
- <File
- RelativePath="..\Mount\MainCom.cpp"
- >
- </File>
- <File
- RelativePath="..\Mount\MainCom.idl"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="$(SolutionDir)/Mount"
- HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="$(SolutionDir)/Mount"
- HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="$(SolutionDir)/Mount"
- HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCMIDLTool"
- OutputDirectory="$(SolutionDir)/Mount"
- HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Mount\Mount.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\Common\Apidrvr.h"
- >
- </File>
- <File
- RelativePath="..\Common\BaseCom.h"
- >
- </File>
- <File
- RelativePath="..\Common\BootEncryption.h"
- >
- </File>
- <File
- RelativePath="..\Common\Cmdline.h"
- >
- </File>
- <File
- RelativePath="..\Common\Combo.h"
- >
- </File>
- <File
- RelativePath="..\Common\Common.h"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.h"
- >
- </File>
- <File
- RelativePath="..\Common\Crypto.h"
- >
- </File>
- <File
- RelativePath="..\Common\Dictionary.h"
- >
- </File>
- <File
- RelativePath="..\Common\Dlgcode.h"
- >
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.h"
- >
- </File>
- <File
- RelativePath="..\Common\Exception.h"
- >
- </File>
- <File
- RelativePath=".\ExpandVolume.h"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.h"
- >
- </File>
- <File
- RelativePath=".\Hotkeys.h"
- >
- </File>
- <File
- RelativePath=".\InitDataArea.h"
- >
- </File>
- <File
- RelativePath="..\Common\Keyfiles.h"
- >
- </File>
- <File
- RelativePath="..\Common\Language.h"
- >
- </File>
- <File
- RelativePath="..\Mount\MainCom.h"
- >
- </File>
- <File
- RelativePath="..\Mount\Mount.h"
- >
- </File>
- <File
- RelativePath="..\Common\Password.h"
- >
- </File>
- <File
- RelativePath="..\Common\Pkcs5.h"
- >
- </File>
- <File
- RelativePath="..\Common\Progress.h"
- >
- </File>
- <File
- RelativePath="..\Common\Random.h"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.h"
- >
- </File>
- <File
- RelativePath="..\Common\Resource.h"
- >
- </File>
- <File
- RelativePath=".\resource.h"
- >
- </File>
- <File
- RelativePath="..\Common\SecurityToken.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tcdefs.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tests.h"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xml.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- <File
- RelativePath=".\ExpandVolume.rc"
- >
- </File>
- <File
- RelativePath=".\Logo_288dpi.bmp"
- >
- </File>
- <File
- RelativePath=".\Logo_96dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_288dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_96dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_background.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt.ico"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt_mounted.ico"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt_Volume.ico"
- >
- </File>
- <File
- RelativePath=".\VeraCryptExpander.manifest"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\Common.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Language.xml"
- >
- </File>
- </Filter>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ExpandVolume"
+ ProjectGUID="{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}"
+ RootNamespace="ExpandVolume"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
+ PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ ExceptionHandling="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="false"
+ UsePrecompiledHeader="0"
+ BrowseInformation="0"
+ BrowseInformationFile=""
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4311"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptExpander.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/ExpandVolume.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="VeraCryptExpander.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCryptExpander.exe &quot;..\Debug\Setup Files&quot; &gt;NUL:&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TargetEnvironment="3"
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
+ PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ ExceptionHandling="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="false"
+ UsePrecompiledHeader="0"
+ BrowseInformation="0"
+ BrowseInformationFile=""
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4311"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptExpander.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/ExpandVolume.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="VeraCryptExpander.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy $(TargetPath) &quot;..\Debug\Setup Files\VeraCryptExpander-x64.exe&quot; &gt;NUL:&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TypeLibraryName="$(SolutionDir)/Mount/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/w34189"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
+ PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="3"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4311"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptExpander.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="false"
+ GenerateMapFile="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="VeraCryptExpander.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Release\VeraCryptExpander.exe &quot;..\Release\Setup Files\&quot;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TargetEnvironment="3"
+ TypeLibraryName="$(SolutionDir)/Mount/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/w34189"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
+ PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="3"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4311"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptExpander.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="false"
+ GenerateMapFile="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="VeraCryptExpander.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy $(TargetPath) &quot;..\Release\Setup Files\VeraCryptExpander-x64.exe&quot;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ <ProjectReference
+ ReferencedProjectIdentifier="{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
+ RelativePathToProject=".\Crypto\Crypto.vcproj"
+ />
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\DlgExpandVolume.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ExpandVolume.c"
+ >
+ </File>
+ <File
+ RelativePath=".\InitDataArea.c"
+ >
+ </File>
+ <File
+ RelativePath=".\WinMain.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\BaseCom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\BootEncryption.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Cmdline.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Combo.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crypto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dictionary.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Endian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Keyfiles.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Language.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Password.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Pkcs5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Progress.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Random.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\SecurityToken.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tests.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xml.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Mount"
+ >
+ <File
+ RelativePath="..\Mount\Favorites.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Mount\Hotkeys.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Mount\MainCom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Mount\MainCom.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="$(SolutionDir)/Mount"
+ HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="$(SolutionDir)/Mount"
+ HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="$(SolutionDir)/Mount"
+ HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="$(SolutionDir)/Mount"
+ HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Mount\Mount.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\Common\Apidrvr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\BaseCom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\BootEncryption.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Cmdline.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Combo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Common.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crypto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dictionary.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Exception.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ExpandVolume.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Hotkeys.h"
+ >
+ </File>
+ <File
+ RelativePath=".\InitDataArea.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Keyfiles.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Language.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Mount\MainCom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Mount\Mount.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Password.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Pkcs5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Progress.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Resource.h"
+ >
+ </File>
+ <File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\SecurityToken.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tcdefs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tests.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xml.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath=".\ExpandVolume.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\Logo_288dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\Logo_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_288dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_background.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt.ico"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt_mounted.ico"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt_Volume.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\VeraCryptExpander.manifest"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\Common.rc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Language.xml"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/ExpandVolume/ExpandVolume.vcxproj b/src/ExpandVolume/ExpandVolume.vcxproj
index 773f611..38a3f97 100644
--- a/src/ExpandVolume/ExpandVolume.vcxproj
+++ b/src/ExpandVolume/ExpandVolume.vcxproj
@@ -119,7 +119,7 @@
<DisableSpecificWarnings>4311;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\Debug\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\Debug\crypto.lib;..\Common\Debug\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptExpander.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -173,7 +173,7 @@ copy Debug\VeraCryptExpander.exe "..\Debug\Setup Files" &gt;NUL:
<DisableSpecificWarnings>4311;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\x64\Debug\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\x64\Debug\crypto.lib;..\Common\x64\Debug\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptExpander.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -193,6 +193,9 @@ copy Debug\VeraCryptExpander.exe "..\Debug\Setup Files" &gt;NUL:
copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" &gt;NUL:
</Command>
</PostBuildEvent>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
@@ -213,21 +216,20 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" &gt;NUL:
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4311;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\Release\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\Release\crypto.lib;..\Common\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptExpander.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
- <GenerateDebugInformation>false</GenerateDebugInformation>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
@@ -259,21 +261,20 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" &gt;NUL:
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4311;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;..\Common\x64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptExpander.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
- <GenerateDebugInformation>false</GenerateDebugInformation>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
@@ -284,6 +285,9 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" &gt;NUL:
<PostBuildEvent>
<Command>copy $(TargetPath) "..\Release\Setup Files\VeraCryptExpander-x64.exe"</Command>
</PostBuildEvent>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectReference Include="..\Boot\Windows\Boot.vcxproj">
@@ -309,148 +313,6 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" &gt;NUL:
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c" />
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_close.c" />
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c" />
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c" />
- <ClCompile Include="..\Common\libzip\zip_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_error.c" />
- <ClCompile Include="..\Common\libzip\zip_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c" />
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c" />
- <ClCompile Include="..\Common\libzip\zip_err_str.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c" />
- <ClCompile Include="..\Common\libzip\zip_fclose.c" />
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_file_add.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c" />
- <ClCompile Include="..\Common\libzip\zip_file_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_file_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c" />
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fread.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_name.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c" />
- <ClCompile Include="..\Common\libzip\zip_hash.c" />
- <ClCompile Include="..\Common\libzip\zip_io_util.c" />
- <ClCompile Include="..\Common\libzip\zip_memdup.c" />
- <ClCompile Include="..\Common\libzip\zip_name_locate.c" />
- <ClCompile Include="..\Common\libzip\zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_open.c" />
- <ClCompile Include="..\Common\libzip\zip_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c" />
- <ClCompile Include="..\Common\libzip\zip_set_name.c" />
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_source_call.c" />
- <ClCompile Include="..\Common\libzip\zip_source_close.c" />
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c" />
- <ClCompile Include="..\Common\libzip\zip_source_error.c" />
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c" />
- <ClCompile Include="..\Common\libzip\zip_source_function.c" />
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c" />
- <ClCompile Include="..\Common\libzip\zip_source_layered.c" />
- <ClCompile Include="..\Common\libzip\zip_source_open.c" />
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c" />
- <ClCompile Include="..\Common\libzip\zip_source_read.c" />
- <ClCompile Include="..\Common\libzip\zip_source_remove.c" />
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_source_supports.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c" />
- <ClCompile Include="..\Common\libzip\zip_source_window.c" />
- <ClCompile Include="..\Common\libzip\zip_source_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_index.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_init.c" />
- <ClCompile Include="..\Common\libzip\zip_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_string.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c" />
- <ClCompile Include="..\Common\libzip\zip_utf-8.c" />
- <ClCompile Include="..\Common\zlib\adler32.c" />
- <ClCompile Include="..\Common\zlib\crc32.c" />
- <ClCompile Include="..\Common\zlib\deflate.c" />
- <ClCompile Include="..\Common\zlib\inffast.c" />
- <ClCompile Include="..\Common\zlib\inflate.c" />
- <ClCompile Include="..\Common\zlib\inftrees.c" />
- <ClCompile Include="..\Common\zlib\trees.c" />
- <ClCompile Include="..\Common\zlib\zutil.c" />
<ClCompile Include="DlgExpandVolume.cpp" />
<ClCompile Include="ExpandVolume.c" />
<ClCompile Include="InitDataArea.c" />
@@ -510,12 +372,6 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" &gt;NUL:
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="..\Common\libzip\compat.h" />
- <ClInclude Include="..\Common\libzip\config.h" />
- <ClInclude Include="..\Common\libzip\zconf.h" />
- <ClInclude Include="..\Common\libzip\zip.h" />
- <ClInclude Include="..\Common\libzip\zipint.h" />
- <ClInclude Include="..\Common\libzip\zipwin32.h" />
<ClInclude Include="..\Common\Wipe.h" />
<ClInclude Include="..\Common\Apidrvr.h" />
<ClInclude Include="..\Common\BaseCom.h" />
@@ -529,18 +385,6 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" &gt;NUL:
<ClInclude Include="..\Common\Dlgcode.h" />
<ClInclude Include="..\Common\EncryptionThreadPool.h" />
<ClInclude Include="..\Common\Exception.h" />
- <ClInclude Include="..\Common\XUnzip.h" />
- <ClInclude Include="..\Common\XZip.h" />
- <ClInclude Include="..\Common\zlib\crc32.h" />
- <ClInclude Include="..\Common\zlib\deflate.h" />
- <ClInclude Include="..\Common\zlib\inffast.h" />
- <ClInclude Include="..\Common\zlib\inffixed.h" />
- <ClInclude Include="..\Common\zlib\inflate.h" />
- <ClInclude Include="..\Common\zlib\inftrees.h" />
- <ClInclude Include="..\Common\zlib\trees.h" />
- <ClInclude Include="..\Common\zlib\zconf.h" />
- <ClInclude Include="..\Common\zlib\zlib.h" />
- <ClInclude Include="..\Common\zlib\zutil.h" />
<ClInclude Include="ExpandVolume.h" />
<ClInclude Include="..\Common\GfMul.h" />
<ClInclude Include="Hotkeys.h" />
diff --git a/src/ExpandVolume/ExpandVolume.vcxproj.filters b/src/ExpandVolume/ExpandVolume.vcxproj.filters
index 34d2c57..c84fd9d 100644
--- a/src/ExpandVolume/ExpandVolume.vcxproj.filters
+++ b/src/ExpandVolume/ExpandVolume.vcxproj.filters
@@ -22,12 +22,6 @@
<Filter Include="Resource Files\Common">
<UniqueIdentifier>{ece6c790-f488-400d-b92d-64f73ce9f990}</UniqueIdentifier>
</Filter>
- <Filter Include="Source Files\Common\zlib">
- <UniqueIdentifier>{044f5a5d-232b-4c85-b9ff-5b755d249450}</UniqueIdentifier>
- </Filter>
- <Filter Include="Source Files\Common\libzip">
- <UniqueIdentifier>{3431cd6c-72ca-4156-8311-37e469f29da9}</UniqueIdentifier>
- </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="DlgExpandVolume.cpp">
@@ -126,342 +120,6 @@
<ClCompile Include="..\Mount\Mount.c">
<Filter>Source Files\Mount</Filter>
</ClCompile>
- <ClCompile Include="..\Common\zlib\adler32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\crc32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\deflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inffast.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inftrees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\trees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\zutil.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_err_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fclose.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fread.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_hash.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_io_util.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_memdup.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_name_locate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_call.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_function.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_layered.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_read.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_remove.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_supports.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_window.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_init.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_string.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_utf-8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\Common\Wipe.h">
@@ -566,60 +224,6 @@
<ClInclude Include="..\Common\Xts.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\Common\XZip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\XUnzip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\crc32.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\deflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffast.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffixed.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inftrees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\trees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zconf.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zlib.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zutil.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\compat.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\config.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zconf.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zip.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipint.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipwin32.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<Midl Include="..\Mount\MainCom.idl">
diff --git a/src/ExpandVolume/InitDataArea.c b/src/ExpandVolume/InitDataArea.c
index a687f3e..22e26fd 100644
--- a/src/ExpandVolume/InitDataArea.c
+++ b/src/ExpandVolume/InitDataArea.c
@@ -9,7 +9,7 @@
or Copyright (c) 2012-2013 Josef Schneider <josef@netpage.dk>
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/ExpandVolume/InitDataArea.h b/src/ExpandVolume/InitDataArea.h
index 49958a0..f810415 100644
--- a/src/ExpandVolume/InitDataArea.h
+++ b/src/ExpandVolume/InitDataArea.h
@@ -6,7 +6,7 @@
<josef@netpage.dk>
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/ExpandVolume/WinMain.cpp b/src/ExpandVolume/WinMain.cpp
index 42aa6a7..3fea040 100644
--- a/src/ExpandVolume/WinMain.cpp
+++ b/src/ExpandVolume/WinMain.cpp
@@ -9,7 +9,7 @@
or Copyright (c) 2012-2013 Josef Schneider <josef@netpage.dk>
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -284,6 +284,7 @@ void LoadSettings (HWND hwndDlg)
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = ConfigReadInt ("PreserveTimestamps", TRUE);
bShowDisconnectedNetworkDrives = ConfigReadInt ("ShowDisconnectedNetworkDrives", FALSE);
bHideWaitingDialog = ConfigReadInt ("HideWaitingDialog", FALSE);
+ bUseSecureDesktop = ConfigReadInt ("UseSecureDesktop", FALSE);
defaultMountOptions.Removable = ConfigReadInt ("MountVolumesRemovable", FALSE);
defaultMountOptions.ReadOnly = ConfigReadInt ("MountVolumesReadOnly", FALSE);
defaultMountOptions.ProtectHiddenVolume = FALSE;
@@ -427,13 +428,13 @@ BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
- nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
- SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
+ nIndex =(int) SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
+ SendMessage (hComboBox, CB_SETITEMDATA, (WPARAM) nIndex, (LPARAM) 0);
for (i = FIRST_PRF_ID; i <= LAST_PRF_ID; i++)
{
- nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
- SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+ nIndex = (int) SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
+ SendMessage (hComboBox, CB_SETITEMDATA, (WPARAM) nIndex, (LPARAM) i);
}
/* make autodetection the default */
@@ -501,7 +502,7 @@ BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
- int i, nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
+ int i, nIndex = (int) SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
BOOL bIsGPT = FALSE;
@@ -516,8 +517,8 @@ BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
{
if (bIsGPT || HashForSystemEncryption(i))
{
- nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
- SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+ nIndex = (int) SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
+ SendMessage (hComboBox, CB_SETITEMDATA, (WPARAM) nIndex, (LPARAM) i);
}
}
@@ -676,7 +677,7 @@ BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
KeyFilesApply (hwndDlg, &mountOptions.ProtectedHidVolPassword, hidVolProtKeyFilesParam.FirstKeyFile, PasswordDlgVolume);
if (GetPassword (hwndDlg, IDC_PASSWORD, (LPSTR) szXPwd->Text, MAX_PASSWORD + 1, TRUE))
- szXPwd->Length = strlen ((char *) szXPwd->Text);
+ szXPwd->Length = (unsigned __int32) (strlen ((char *) szXPwd->Text));
else
return 1;
@@ -684,11 +685,11 @@ BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
*pkcs5 = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
*truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
- *pim = GetPim (hwndDlg, IDC_PIM);
+ *pim = GetPim (hwndDlg, IDC_PIM, 0);
- /* SHA-256 is not supported by TrueCrypt */
+ /* check that PRF is supported in TrueCrypt Mode */
if ( (*truecryptMode)
- && ((*pkcs5 == SHA256) || (mountOptions.ProtectHiddenVolume && mountOptions.ProtectedHidVolPkcs5Prf == SHA256))
+ && ((!is_pkcs5_prf_supported(*pkcs5, TRUE, PRF_BOOT_NO)) || (mountOptions.ProtectHiddenVolume && !is_pkcs5_prf_supported(mountOptions.ProtectedHidVolPkcs5Prf, TRUE, PRF_BOOT_NO)))
)
{
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
@@ -802,7 +803,7 @@ int RestoreVolumeHeader (HWND hwndDlg, char *lpszVolume)
int ExtcvAskVolumePassword (HWND hwndDlg, const wchar_t* fileName, Password *password, int *pkcs5, int *pim, BOOL* truecryptMode, char *titleStringId, BOOL enableMountOptions)
{
- int result;
+ INT_PTR result;
PasswordDlgParam dlgParam;
PasswordDialogTitleStringId = titleStringId;
@@ -815,7 +816,7 @@ int ExtcvAskVolumePassword (HWND hwndDlg, const wchar_t* fileName, Password *pas
StringCbCopyW (PasswordDlgVolume, sizeof(PasswordDlgVolume), fileName);
- result = DialogBoxParamW (hInst,
+ result = SecureDesktopDialogBoxParam (hInst,
MAKEINTRESOURCEW (IDD_PASSWORD_DLG), hwndDlg,
(DLGPROC) ExtcvPasswordDlgProc, (LPARAM) &dlgParam);
@@ -849,7 +850,7 @@ static BOOL SelectPartition (HWND hwndDlg)
{
RawDevicesDlgParam param;
param.pszFileName = szFileName;
- int nResult = DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_RAWDEVICES_DLG), hwndDlg,
+ INT_PTR nResult = DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_RAWDEVICES_DLG), hwndDlg,
(DLGPROC) RawDevicesDlgProc, (LPARAM) & param);
if (nResult == IDOK)
{
@@ -883,6 +884,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = TRUE;
bShowDisconnectedNetworkDrives = FALSE;
bHideWaitingDialog = FALSE;
+ bUseSecureDesktop = FALSE;
if (UsePreferences)
{
@@ -951,7 +953,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDM_HOMEPAGE )
{
ArrowWaitCursor ();
- ShellExecute (NULL, L"open", L"https://veracrypt.codeplex.com", NULL, NULL, SW_SHOWNORMAL);
+ ShellExecute (NULL, L"open", L"https://www.veracrypt.fr", NULL, NULL, SW_SHOWNORMAL);
Sleep (200);
NormalCursor ();
diff --git a/src/Format/Format.rc b/src/Format/Format.rc
index 6d89f3a..d891c0d 100644
--- a/src/Format/Format.rc
+++ b/src/Format/Format.rc
@@ -1,747 +1,747 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-#include "..\\common\\resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,19,4,0
- PRODUCTVERSION 1,19,4,0
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", "IDRIX"
- VALUE "FileDescription", "VeraCrypt Format"
- VALUE "FileVersion", "1.19"
- VALUE "LegalTrademarks", "VeraCrypt"
- VALUE "OriginalFilename", "VeraCrypt Format.exe"
- VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.19"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// HEADER
-//
-
-IDR_FORMAT_RSRC_HEADER HEADER "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// TYPELIB
-//
-
-IDR_FORMAT_TLB TYPELIB "Format.tlb"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_VOL_CREATION_WIZARD_DLG DIALOGEX 0, 0, 400, 229
-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
-END
-
-IDD_CIPHER_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_PASSWORD_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SIZE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_VOLUME_LOCATION_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_FORMAT_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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,11,60,18
- 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
- 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
-END
-
-IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
- CONTROL "Encrypt a non-system partition/drive",IDC_NONSYS_DEVICE,
- "Button",BS_AUTORADIOBUTTON,0,53,217,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
-END
-
-IDD_INFO_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_HIDVOL_HOST_FILL_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_HIDDEN_VOL_WIZARD_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_PASSWORD_ENTRY_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-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
-END
-
-IDD_SYSENC_SPAN_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SYSENC_RESCUE_DISK_CREATION_DLG DIALOGEX 0, 0, 226, 172
-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
- CONTROL "Skip Rescue Disk verification",IDC_SKIP_RESCUE_VERIFICATION,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,0,145,106,10
-END
-
-IDD_SYSENC_COLLECTING_RANDOM_DATA_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SYSENC_MULTI_BOOT_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SYSENC_RESCUE_DISK_BURN_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SYSENC_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_INPLACE_ENCRYPTION_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
- 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 "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
-END
-
-IDD_SYSENC_KEYS_GEN_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_UNIVERSAL_DUAL_CHOICE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SYSENC_DRIVE_ANALYSIS_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SYSENC_TYPE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_DEVICE_WIPE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
- 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 "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
-END
-
-IDD_DEVICE_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_DEVICE_TRANSFORM_MODE_DLG DIALOGEX 0, 0, 226, 172
-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
- 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
-END
-
-IDD_EXPANDED_LIST_SELECT_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_DRIVE_LETTER_SELECTION_PAGE DIALOGEX 0, 0, 226, 172
-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
-END
-
-IDD_PIM_PAGE_DLG DIALOGEX 0, 0, 226, 172
-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
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "#include ""..\\\\common\\\\resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#include ""..\\\\common\\\\common.rc""\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_VOL_CREATION_WIZARD_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 393
- TOPMARGIN, 1
- BOTTOMMARGIN, 227
- HORZGUIDE, 216
- END
-
- IDD_CIPHER_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 161
- END
-
- IDD_PASSWORD_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 143
- END
-
- IDD_SIZE_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 165
- END
-
- IDD_VOLUME_LOCATION_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
- END
-
- IDD_FORMAT_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
- HORZGUIDE, 80
- HORZGUIDE, 96
- END
-
- IDD_INTRO_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_INFO_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_HIDVOL_HOST_FILL_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_HIDDEN_VOL_WIZARD_MODE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_PASSWORD_ENTRY_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 143
- END
-
- IDD_VOLUME_TYPE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_SYSENC_SPAN_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_SYSENC_RESCUE_DISK_CREATION_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
- END
-
- IDD_SYSENC_COLLECTING_RANDOM_DATA_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
- HORZGUIDE, 80
- HORZGUIDE, 96
- END
-
- IDD_SYSENC_MULTI_BOOT_MODE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_SYSENC_RESCUE_DISK_BURN_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
- END
-
- IDD_SYSENC_WIPE_MODE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_INPLACE_ENCRYPTION_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 166
- HORZGUIDE, 80
- HORZGUIDE, 96
- END
-
- IDD_SYSENC_KEYS_GEN_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
- HORZGUIDE, 80
- HORZGUIDE, 96
- END
-
- IDD_UNIVERSAL_DUAL_CHOICE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_SYSENC_DRIVE_ANALYSIS_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
- HORZGUIDE, 80
- HORZGUIDE, 96
- END
-
- IDD_SYSENC_TYPE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
- END
-
- IDD_DEVICE_WIPE_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 166
- HORZGUIDE, 80
- HORZGUIDE, 96
- END
-
- IDD_DEVICE_WIPE_MODE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_DEVICE_TRANSFORM_MODE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_EXPANDED_LIST_SELECT_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_DRIVE_LETTER_SELECTION_PAGE, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 165
- END
-
- IDD_PIM_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 171
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_WIZARD BITMAP "VeraCrypt_wizard.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_UACSTRING_FMT "VeraCrypt"
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#include "..\\common\\common.rc"
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+#include "..\\common\\resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,21,5,0
+ PRODUCTVERSION 1,21,5,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "IDRIX"
+ VALUE "FileDescription", "VeraCrypt Format"
+ VALUE "FileVersion", "1.21"
+ VALUE "LegalTrademarks", "VeraCrypt"
+ VALUE "OriginalFilename", "VeraCrypt Format.exe"
+ VALUE "ProductName", "VeraCrypt"
+ VALUE "ProductVersion", "1.21"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// HEADER
+//
+
+IDR_FORMAT_RSRC_HEADER HEADER "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// TYPELIB
+//
+
+IDR_FORMAT_TLB TYPELIB "Format.tlb"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_VOL_CREATION_WIZARD_DLG DIALOGEX 0, 0, 400, 229
+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
+END
+
+IDD_CIPHER_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_PASSWORD_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SIZE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_VOLUME_LOCATION_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_FORMAT_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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,11,60,18
+ 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
+ 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
+END
+
+IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+ CONTROL "Encrypt a non-system partition/drive",IDC_NONSYS_DEVICE,
+ "Button",BS_AUTORADIOBUTTON,0,53,217,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
+END
+
+IDD_INFO_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_HIDVOL_HOST_FILL_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_HIDDEN_VOL_WIZARD_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_PASSWORD_ENTRY_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+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
+END
+
+IDD_SYSENC_SPAN_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SYSENC_RESCUE_DISK_CREATION_DLG DIALOGEX 0, 0, 226, 172
+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
+ CONTROL "Skip Rescue Disk verification",IDC_SKIP_RESCUE_VERIFICATION,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,0,145,106,10
+END
+
+IDD_SYSENC_COLLECTING_RANDOM_DATA_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SYSENC_MULTI_BOOT_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SYSENC_RESCUE_DISK_BURN_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SYSENC_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_INPLACE_ENCRYPTION_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+ 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 "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
+END
+
+IDD_SYSENC_KEYS_GEN_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_UNIVERSAL_DUAL_CHOICE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SYSENC_DRIVE_ANALYSIS_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SYSENC_TYPE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_DEVICE_WIPE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+ 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 "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
+END
+
+IDD_DEVICE_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_DEVICE_TRANSFORM_MODE_DLG DIALOGEX 0, 0, 226, 172
+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
+ 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
+END
+
+IDD_EXPANDED_LIST_SELECT_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_DRIVE_LETTER_SELECTION_PAGE DIALOGEX 0, 0, 226, 172
+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
+END
+
+IDD_PIM_PAGE_DLG DIALOGEX 0, 0, 226, 172
+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
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "#include ""..\\\\common\\\\resource.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "#include ""..\\\\common\\\\common.rc""\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_VOL_CREATION_WIZARD_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 393
+ TOPMARGIN, 1
+ BOTTOMMARGIN, 227
+ HORZGUIDE, 216
+ END
+
+ IDD_CIPHER_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 161
+ END
+
+ IDD_PASSWORD_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_SIZE_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_VOLUME_LOCATION_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 167
+ END
+
+ IDD_FORMAT_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 217
+ BOTTOMMARGIN, 153
+ HORZGUIDE, 80
+ HORZGUIDE, 96
+ END
+
+ IDD_INTRO_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_INFO_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_HIDVOL_HOST_FILL_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_HIDDEN_VOL_WIZARD_MODE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_PASSWORD_ENTRY_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_VOLUME_TYPE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_SYSENC_SPAN_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_SYSENC_RESCUE_DISK_CREATION_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 167
+ END
+
+ IDD_SYSENC_COLLECTING_RANDOM_DATA_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 217
+ BOTTOMMARGIN, 153
+ HORZGUIDE, 80
+ HORZGUIDE, 96
+ END
+
+ IDD_SYSENC_MULTI_BOOT_MODE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_SYSENC_RESCUE_DISK_BURN_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 167
+ END
+
+ IDD_SYSENC_WIPE_MODE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_INPLACE_ENCRYPTION_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 217
+ BOTTOMMARGIN, 166
+ HORZGUIDE, 80
+ HORZGUIDE, 96
+ END
+
+ IDD_SYSENC_KEYS_GEN_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 217
+ BOTTOMMARGIN, 153
+ HORZGUIDE, 80
+ HORZGUIDE, 96
+ END
+
+ IDD_UNIVERSAL_DUAL_CHOICE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_SYSENC_DRIVE_ANALYSIS_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 217
+ BOTTOMMARGIN, 153
+ HORZGUIDE, 80
+ HORZGUIDE, 96
+ END
+
+ IDD_SYSENC_TYPE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 167
+ END
+
+ IDD_DEVICE_WIPE_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 217
+ BOTTOMMARGIN, 166
+ HORZGUIDE, 80
+ HORZGUIDE, 96
+ END
+
+ IDD_DEVICE_WIPE_MODE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_DEVICE_TRANSFORM_MODE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_EXPANDED_LIST_SELECT_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_DRIVE_LETTER_SELECTION_PAGE, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 219
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 165
+ END
+
+ IDD_PIM_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 223
+ BOTTOMMARGIN, 171
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_WIZARD BITMAP "VeraCrypt_wizard.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE
+BEGIN
+ IDS_UACSTRING_FMT "VeraCrypt"
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "..\\common\\common.rc"
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/Format/Format.vcproj b/src/Format/Format.vcproj
index b8747ba..9fa108b 100644
--- a/src/Format/Format.vcproj
+++ b/src/Format/Format.vcproj
@@ -1,1028 +1,1028 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="Format"
- ProjectGUID="{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}"
- RootNamespace="Format"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="VOLFORMAT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptFormat.exe"
- LinkIncremental="2"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/Format.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Format.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCryptFormat.exe &quot;..\Debug\Setup Files\VeraCrypt Format.exe&quot; &gt;NUL:&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="VOLFORMAT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptFormat.exe"
- LinkIncremental="2"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/Format.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Format.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy $(TargetPath) &quot;..\Debug\Setup Files\VeraCrypt Format-x64.exe&quot; &gt;NUL:&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/w34189"
- Optimization="2"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="VOLFORMAT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="4"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptFormat.exe"
- LinkIncremental="1"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="false"
- GenerateMapFile="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Format.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy Release\VeraCryptFormat.exe &quot;..\Release\Setup Files\VeraCrypt Format.exe&quot;"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/w34189"
- Optimization="2"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="VOLFORMAT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="4"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptFormat.exe"
- LinkIncremental="1"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="false"
- GenerateMapFile="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Format.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy $(TargetPath) &quot;..\Release\Setup Files\VeraCrypt Format-x64.exe&quot;"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\FormatCom.cpp"
- >
- </File>
- <File
- RelativePath=".\FormatCom.idl"
- >
- </File>
- <File
- RelativePath=".\InPlace.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\Tcformat.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\BaseCom.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\BootEncryption.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\Cmdline.c"
- >
- </File>
- <File
- RelativePath="..\Common\Combo.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crypto.c"
- >
- </File>
- <File
- RelativePath="..\Common\Dictionary.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Dlgcode.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.c"
- >
- </File>
- <File
- RelativePath="..\Common\Endian.c"
- >
- </File>
- <File
- RelativePath="..\Common\Fat.c"
- >
- </File>
- <File
- RelativePath="..\Common\Format.c"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.c"
- >
- </File>
- <File
- RelativePath="..\Common\Keyfiles.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Language.c"
- >
- </File>
- <File
- RelativePath="..\Common\Password.c"
- >
- </File>
- <File
- RelativePath="..\Common\Pkcs5.c"
- >
- </File>
- <File
- RelativePath="..\Common\Progress.c"
- >
- </File>
- <File
- RelativePath="..\Common\Random.c"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.c"
- >
- </File>
- <File
- RelativePath="..\Common\SecurityToken.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\Tests.c"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.c"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.c"
- >
- </File>
- <File
- RelativePath="..\Common\Xml.c"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.c"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\Common\BaseCom.h"
- >
- </File>
- <File
- RelativePath="..\Common\Common.h"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.h"
- >
- </File>
- <File
- RelativePath="..\Common\Crypto.h"
- >
- </File>
- <File
- RelativePath="..\Common\Dictionary.h"
- >
- </File>
- <File
- RelativePath="..\Common\Dlgcode.h"
- >
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.h"
- >
- </File>
- <File
- RelativePath="..\Common\Endian.h"
- >
- </File>
- <File
- RelativePath="..\Common\Exception.h"
- >
- </File>
- <File
- RelativePath="..\Common\Fat.h"
- >
- </File>
- <File
- RelativePath="..\Common\Format.h"
- >
- </File>
- <File
- RelativePath=".\FormatCom.h"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.h"
- >
- </File>
- <File
- RelativePath=".\InPlace.h"
- >
- </File>
- <File
- RelativePath="..\Common\Keyfiles.h"
- >
- </File>
- <File
- RelativePath="..\Common\Language.h"
- >
- </File>
- <File
- RelativePath="..\Mount\Mount.h"
- >
- </File>
- <File
- RelativePath="..\Common\Pkcs5.h"
- >
- </File>
- <File
- RelativePath="..\Common\Progress.h"
- >
- </File>
- <File
- RelativePath="..\Common\Random.h"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.h"
- >
- </File>
- <File
- RelativePath=".\resource.h"
- >
- </File>
- <File
- RelativePath="..\Common\Resource.h"
- >
- </File>
- <File
- RelativePath="..\Common\SecurityToken.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tcdefs.h"
- >
- </File>
- <File
- RelativePath=".\Tcformat.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tests.h"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.h"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xml.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- <File
- RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_AES_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath=".\Format.manifest"
- >
- </File>
- <File
- RelativePath=".\Format.rc"
- >
- </File>
- <File
- RelativePath=".\Format.tlb"
- SubType="Designer"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt_mounted.ico"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt_Volume.ico"
- >
- </File>
- <File
- RelativePath=".\VeraCrypt_wizard.bmp"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Boot\Windows\Release_AES\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Serpent\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Serpent\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_AES\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Common\Common.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Boot\Windows\Release\Decompressor.com"
- >
- </File>
- <File
- RelativePath="..\Common\Language.xml"
- >
- </File>
- <File
- RelativePath="..\Resources\Texts\License.rtf"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_288dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_96dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_background.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt.ico"
- >
- </File>
- </Filter>
- </Filter>
- <File
- RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_AES_SHA2\BootLoader.com.gz"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="Format"
+ ProjectGUID="{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}"
+ RootNamespace="Format"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="VOLFORMAT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptFormat.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/Format.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Format.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCryptFormat.exe &quot;..\Debug\Setup Files\VeraCrypt Format.exe&quot; &gt;NUL:&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="VOLFORMAT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptFormat.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/Format.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Format.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy $(TargetPath) &quot;..\Debug\Setup Files\VeraCrypt Format-x64.exe&quot; &gt;NUL:&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/w34189"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="VOLFORMAT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="4"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptFormat.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="false"
+ GenerateMapFile="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Format.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Release\VeraCryptFormat.exe &quot;..\Release\Setup Files\VeraCrypt Format.exe&quot;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/w34189"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="VOLFORMAT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="4"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4057;4100;4127;4201;4204;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptFormat.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="false"
+ GenerateMapFile="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Format.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy $(TargetPath) &quot;..\Release\Setup Files\VeraCrypt Format-x64.exe&quot;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\FormatCom.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\FormatCom.idl"
+ >
+ </File>
+ <File
+ RelativePath=".\InPlace.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\Tcformat.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\BaseCom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\BootEncryption.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Cmdline.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Combo.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crypto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dictionary.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Endian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Fat.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Format.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Keyfiles.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Language.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Password.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Pkcs5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Progress.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Random.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\SecurityToken.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tests.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xml.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.c"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\Common\BaseCom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Common.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crypto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dictionary.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Endian.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Exception.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Fat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Format.h"
+ >
+ </File>
+ <File
+ RelativePath=".\FormatCom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.h"
+ >
+ </File>
+ <File
+ RelativePath=".\InPlace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Keyfiles.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Language.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Mount\Mount.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Pkcs5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Progress.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.h"
+ >
+ </File>
+ <File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\SecurityToken.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tcdefs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Tcformat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tests.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xml.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_AES_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath=".\Format.manifest"
+ >
+ </File>
+ <File
+ RelativePath=".\Format.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\Format.tlb"
+ SubType="Designer"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt_mounted.ico"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt_Volume.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\VeraCrypt_wizard.bmp"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Boot\Windows\Release_AES\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_AES\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Common.rc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release\Decompressor.com"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Language.xml"
+ >
+ </File>
+ <File
+ RelativePath="..\Resources\Texts\License.rtf"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_288dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_background.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt.ico"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_AES_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/Format/Format.vcxproj b/src/Format/Format.vcxproj
index 6665594..7d21e81 100644
--- a/src/Format/Format.vcxproj
+++ b/src/Format/Format.vcxproj
@@ -106,7 +106,7 @@
<DisableSpecificWarnings>4057;4100;4127;4201;4204;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\Debug\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\Debug\crypto.lib;..\Common\Debug\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptFormat.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -146,7 +146,7 @@ copy Debug\VeraCryptFormat.exe "..\Debug\Setup Files\VeraCrypt Format.exe" &gt;N
<DisableSpecificWarnings>4057;4100;4127;4201;4204;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\x64\Debug\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\x64\Debug\crypto.lib;..\Common\x64\Debug\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptFormat.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -165,6 +165,9 @@ copy Debug\VeraCryptFormat.exe "..\Debug\Setup Files\VeraCrypt Format.exe" &gt;N
copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-x64.exe" &gt;NUL:
</Command>
</PostBuildEvent>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
@@ -186,7 +189,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-x64.exe" &gt;NUL:
<DisableSpecificWarnings>4057;4100;4127;4201;4204;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\Release\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\Release\crypto.lib;..\Common\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptFormat.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -195,7 +198,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-x64.exe" &gt;NUL:
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
@@ -223,21 +226,20 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-x64.exe" &gt;NUL:
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4057;4100;4127;4201;4204;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;..\Common\x64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptFormat.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
- <GenerateDebugInformation>false</GenerateDebugInformation>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
@@ -247,150 +249,11 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-x64.exe" &gt;NUL:
<PostBuildEvent>
<Command>copy $(TargetPath) "..\Release\Setup Files\VeraCrypt Format-x64.exe"</Command>
</PostBuildEvent>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c" />
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_close.c" />
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c" />
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c" />
- <ClCompile Include="..\Common\libzip\zip_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_error.c" />
- <ClCompile Include="..\Common\libzip\zip_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c" />
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c" />
- <ClCompile Include="..\Common\libzip\zip_err_str.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c" />
- <ClCompile Include="..\Common\libzip\zip_fclose.c" />
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_file_add.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c" />
- <ClCompile Include="..\Common\libzip\zip_file_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_file_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c" />
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fread.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_name.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c" />
- <ClCompile Include="..\Common\libzip\zip_hash.c" />
- <ClCompile Include="..\Common\libzip\zip_io_util.c" />
- <ClCompile Include="..\Common\libzip\zip_memdup.c" />
- <ClCompile Include="..\Common\libzip\zip_name_locate.c" />
- <ClCompile Include="..\Common\libzip\zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_open.c" />
- <ClCompile Include="..\Common\libzip\zip_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c" />
- <ClCompile Include="..\Common\libzip\zip_set_name.c" />
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_source_call.c" />
- <ClCompile Include="..\Common\libzip\zip_source_close.c" />
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c" />
- <ClCompile Include="..\Common\libzip\zip_source_error.c" />
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c" />
- <ClCompile Include="..\Common\libzip\zip_source_function.c" />
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c" />
- <ClCompile Include="..\Common\libzip\zip_source_layered.c" />
- <ClCompile Include="..\Common\libzip\zip_source_open.c" />
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c" />
- <ClCompile Include="..\Common\libzip\zip_source_read.c" />
- <ClCompile Include="..\Common\libzip\zip_source_remove.c" />
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_source_supports.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c" />
- <ClCompile Include="..\Common\libzip\zip_source_window.c" />
- <ClCompile Include="..\Common\libzip\zip_source_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_index.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_init.c" />
- <ClCompile Include="..\Common\libzip\zip_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_string.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c" />
- <ClCompile Include="..\Common\libzip\zip_utf-8.c" />
- <ClCompile Include="..\Common\zlib\adler32.c" />
- <ClCompile Include="..\Common\zlib\crc32.c" />
- <ClCompile Include="..\Common\zlib\deflate.c" />
- <ClCompile Include="..\Common\zlib\inffast.c" />
- <ClCompile Include="..\Common\zlib\inflate.c" />
- <ClCompile Include="..\Common\zlib\inftrees.c" />
- <ClCompile Include="..\Common\zlib\trees.c" />
- <ClCompile Include="..\Common\zlib\zutil.c" />
<ClCompile Include="FormatCom.cpp" />
<ClCompile Include="InPlace.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
@@ -461,24 +324,6 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-x64.exe" &gt;NUL:
<ClInclude Include="..\Common\Exception.h" />
<ClInclude Include="..\Common\Fat.h" />
<ClInclude Include="..\Common\Format.h" />
- <ClInclude Include="..\Common\libzip\compat.h" />
- <ClInclude Include="..\Common\libzip\config.h" />
- <ClInclude Include="..\Common\libzip\zconf.h" />
- <ClInclude Include="..\Common\libzip\zip.h" />
- <ClInclude Include="..\Common\libzip\zipint.h" />
- <ClInclude Include="..\Common\libzip\zipwin32.h" />
- <ClInclude Include="..\Common\XUnzip.h" />
- <ClInclude Include="..\Common\XZip.h" />
- <ClInclude Include="..\Common\zlib\crc32.h" />
- <ClInclude Include="..\Common\zlib\deflate.h" />
- <ClInclude Include="..\Common\zlib\inffast.h" />
- <ClInclude Include="..\Common\zlib\inffixed.h" />
- <ClInclude Include="..\Common\zlib\inflate.h" />
- <ClInclude Include="..\Common\zlib\inftrees.h" />
- <ClInclude Include="..\Common\zlib\trees.h" />
- <ClInclude Include="..\Common\zlib\zconf.h" />
- <ClInclude Include="..\Common\zlib\zlib.h" />
- <ClInclude Include="..\Common\zlib\zutil.h" />
<ClInclude Include="FormatCom.h" />
<ClInclude Include="..\Common\GfMul.h" />
<ClInclude Include="InPlace.h" />
diff --git a/src/Format/Format.vcxproj.filters b/src/Format/Format.vcxproj.filters
index 07e68e5..4f0e81e 100644
--- a/src/Format/Format.vcxproj.filters
+++ b/src/Format/Format.vcxproj.filters
@@ -19,12 +19,6 @@
<Filter Include="Resource Files\Common">
<UniqueIdentifier>{881fda51-0ca5-4603-9de7-c618932554b4}</UniqueIdentifier>
</Filter>
- <Filter Include="Source Files\Common\libzip">
- <UniqueIdentifier>{89e6575e-aa9c-47e4-8280-47d282b11228}</UniqueIdentifier>
- </Filter>
- <Filter Include="Source Files\Common\zlib">
- <UniqueIdentifier>{1ebcc85d-1ce3-488c-89e5-f8605df170e2}</UniqueIdentifier>
- </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="FormatCom.cpp">
@@ -114,342 +108,6 @@
<ClCompile Include="..\Common\Xts.c">
<Filter>Source Files\Common</Filter>
</ClCompile>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_err_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fclose.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fread.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_hash.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_io_util.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_memdup.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_name_locate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_call.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_function.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_layered.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_read.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_remove.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_supports.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_window.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_init.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_string.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_utf-8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\adler32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\crc32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\deflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inffast.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inftrees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\trees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\zutil.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="FormatCom.idl">
@@ -550,60 +208,6 @@
<ClInclude Include="..\Common\Xts.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\Common\XZip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\XUnzip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\compat.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\config.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zconf.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zip.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipint.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipwin32.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\crc32.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\deflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffast.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffixed.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inftrees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\trees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zconf.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zlib.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zutil.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\Boot\Windows\Release_Serpent_SHA2\BootSector.bin">
diff --git a/src/Format/FormatCom.cpp b/src/Format/FormatCom.cpp
index 2aa5cea..1bfb4be 100644
--- a/src/Format/FormatCom.cpp
+++ b/src/Format/FormatCom.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -167,11 +167,6 @@ public:
return BaseCom::GetEfiBootDeviceNumber (pSdn);
}
- virtual DWORD STDMETHODCALLTYPE ReadEfiConfig (BSTR* pContent, DWORD *pcbRead)
- {
- return BaseCom::ReadEfiConfig (pContent, pcbRead);
- }
-
virtual DWORD STDMETHODCALLTYPE WriteEfiBootSectorUserConfig (DWORD userConfig, BSTR customUserMessage, int pim, int hashAlg)
{
return BaseCom::WriteEfiBootSectorUserConfig (userConfig, customUserMessage,pim, hashAlg);
diff --git a/src/Format/FormatCom.h b/src/Format/FormatCom.h
index 65fadbe..5f03961 100644
--- a/src/Format/FormatCom.h
+++ b/src/Format/FormatCom.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Format/FormatCom.idl b/src/Format/FormatCom.idl
index 1eb09b4..855d024 100644
--- a/src/Format/FormatCom.idl
+++ b/src/Format/FormatCom.idl
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -16,7 +16,7 @@ import "..\Common\Password.h";
[
uuid(56327DDA-F1A7-4e13-B128-520D129BDEF6),
helpstring("VeraCrypt Format UAC Support Library"),
- version(2.6) // Update ComSetup.cpp when changing version number
+ version(2.7) // Update ComSetup.cpp when changing version number
]
library TrueCryptFormatCom
{
@@ -46,7 +46,6 @@ library TrueCryptFormatCom
DWORD BackupEfiSystemLoader ();
DWORD RestoreEfiSystemLoader ();
DWORD GetEfiBootDeviceNumber (BSTR* pSdn);
- DWORD ReadEfiConfig (BSTR* pContent, DWORD *pcbRead);
DWORD WriteEfiBootSectorUserConfig (DWORD userConfig, BSTR customUserMessage, int pim, int hashAlg);
};
diff --git a/src/Format/InPlace.c b/src/Format/InPlace.c
index f37cb8b..224a3c1 100644
--- a/src/Format/InPlace.c
+++ b/src/Format/InPlace.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -772,7 +772,7 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
Password *password = volParams->password;
int pkcs5_prf = volParams->pkcs5;
int pim = volParams->pim;
- DISK_GEOMETRY driveGeometry;
+ DISK_GEOMETRY_EX driveGeometry;
HWND hwndDlg = volParams->hwndDlg;
@@ -855,13 +855,13 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
NULL);
- if (!DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &driveGeometry, sizeof (driveGeometry), &dwResult, NULL))
+ if (!DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, &driveGeometry, sizeof (driveGeometry), &dwResult, NULL))
{
nStatus = ERR_OS_ERROR;
goto closing_seq;
}
- sectorSize = driveGeometry.BytesPerSector;
+ sectorSize = driveGeometry.Geometry.BytesPerSector;
nStatus = OpenBackupHeader (dev, devicePath, password, pkcs5_prf, pim, &masterCryptoInfo, headerCryptoInfo, deviceSize);
@@ -1282,7 +1282,7 @@ int DecryptPartitionInPlace (volatile FORMAT_VOL_PARAMETERS *volParams, volatile
HWND hwndDlg = volParams->hwndDlg;
int pkcs5_prf = volParams->pkcs5;
int pim = volParams->pim;
- DISK_GEOMETRY driveGeometry;
+ DISK_GEOMETRY_EX driveGeometry;
buf = (char *) TCalloc (TC_MAX_NONSYS_INPLACE_ENC_WORK_CHUNK_SIZE);
@@ -1357,15 +1357,15 @@ int DecryptPartitionInPlace (volatile FORMAT_VOL_PARAMETERS *volParams, volatile
NULL);
- if (!DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &driveGeometry, sizeof (driveGeometry), &dwResult, NULL))
+ if (!DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, &driveGeometry, sizeof (driveGeometry), &dwResult, NULL))
{
nStatus = ERR_OS_ERROR;
goto closing_seq;
}
- if ( (driveGeometry.BytesPerSector == 0)
- || (driveGeometry.BytesPerSector > TC_MAX_VOLUME_SECTOR_SIZE)
- || (driveGeometry.BytesPerSector % ENCRYPTION_DATA_UNIT_SIZE != 0)
+ if ( (driveGeometry.Geometry.BytesPerSector == 0)
+ || (driveGeometry.Geometry.BytesPerSector > TC_MAX_VOLUME_SECTOR_SIZE)
+ || (driveGeometry.Geometry.BytesPerSector % ENCRYPTION_DATA_UNIT_SIZE != 0)
)
{
Error ("SECTOR_SIZE_UNSUPPORTED", hwndDlg);
@@ -1373,7 +1373,7 @@ int DecryptPartitionInPlace (volatile FORMAT_VOL_PARAMETERS *volParams, volatile
goto closing_seq;
}
- sectorSize = driveGeometry.BytesPerSector;
+ sectorSize = driveGeometry.Geometry.BytesPerSector;
tmpSectorBuf = (byte *) TCalloc (sectorSize);
diff --git a/src/Format/InPlace.h b/src/Format/InPlace.h
index ed24cb8..717a8ed 100644
--- a/src/Format/InPlace.h
+++ b/src/Format/InPlace.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c
index d83d9f4..09c5270 100644
--- a/src/Format/Tcformat.c
+++ b/src/Format/Tcformat.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -2556,7 +2556,7 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg)
// Check administrator privileges
if (!IsAdmin () && !IsUacSupported ())
{
- if (fileSystem == FILESYS_NTFS || fileSystem == FILESYS_EXFAT)
+ if (fileSystem == FILESYS_NTFS || fileSystem == FILESYS_EXFAT || fileSystem == FILESYS_REFS)
{
if (Silent || (MessageBoxW (hwndDlg, GetString ("ADMIN_PRIVILEGES_WARN_NTFS"), lpszTitle, MB_OKCANCEL|MB_ICONWARNING|MB_DEFBUTTON2) == IDCANCEL))
goto cancel;
@@ -3416,7 +3416,7 @@ BOOL QueryFreeSpace (HWND hwndDlg, HWND hwndTextBox, BOOL display)
}
else
{
- DISK_GEOMETRY driveInfo;
+ DISK_GEOMETRY_EX driveInfo;
PARTITION_INFORMATION diskInfo;
BOOL piValid = FALSE;
BOOL gValid = FALSE;
@@ -3465,8 +3465,7 @@ BOOL QueryFreeSpace (HWND hwndDlg, HWND hwndTextBox, BOOL display)
LARGE_INTEGER lDiskFree;
// Drive geometry info is used only when GetPartitionInfo() fails
- lDiskFree.QuadPart = driveInfo.Cylinders.QuadPart * driveInfo.BytesPerSector *
- driveInfo.SectorsPerTrack * driveInfo.TracksPerCylinder;
+ lDiskFree.QuadPart = driveInfo.DiskSize.QuadPart;
nVolumeSize = lDiskFree.QuadPart;
@@ -3639,6 +3638,36 @@ void DisableIfGpt(HWND control)
}
}
+static void UpdateClusterSizeList (HWND hwndDlg, int fsType)
+{
+ SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_RESETCONTENT, 0, 0);
+ AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), GetString ("DEFAULT"), 0);
+
+ for (int i = 1; i <= 128; i *= 2)
+ {
+ wstringstream s;
+ DWORD size = GetFormatSectorSize() * i;
+
+ if (size > TC_MAX_FAT_CLUSTER_SIZE)
+ break;
+
+ /* ReFS supports only 4KiB and 64KiB clusters */
+ if ((fsType == FILESYS_REFS) && (size != 4*BYTES_PER_KB) && (size != 64*BYTES_PER_KB))
+ continue;
+
+ if (size == 512)
+ s << L"0.5";
+ else
+ s << size / BYTES_PER_KB;
+
+ s << L" " << GetString ("KB");
+
+ AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), s.str().c_str(), i);
+ }
+
+ SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_SETCURSEL, 0, 0);
+}
+
/* Except in response to the WM_INITDIALOG message, the dialog box procedure
should return nonzero if it processes the message, and zero if it does
not. - see DialogProc */
@@ -4375,7 +4404,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
SetFocus (GetDlgItem (hwndDlg, IDC_PIM));
- SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), GetString (SysEncInEffect ()? "PIM_SYSENC_HELP" : "PIM_HELP"));
+ SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), GetString (SysEncInEffect () && hash_algo != SHA512 && hash_algo != WHIRLPOOL? "PIM_SYSENC_HELP" : "PIM_HELP"));
ToHyperlink (hwndDlg, IDC_LINK_PIM_INFO);
@@ -4836,6 +4865,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
BOOL bNTFSallowed = FALSE;
BOOL bFATallowed = FALSE;
BOOL bEXFATallowed = FALSE;
+ BOOL bReFSallowed = FALSE;
BOOL bNoFSallowed = FALSE;
HCRYPTPROV hRngProv;
@@ -4915,29 +4945,6 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
SetWindowText (GetDlgItem (hwndDlg, IDC_HEADER_KEY), showKeys ? L"" : L"******************************** ");
SetWindowText (GetDlgItem (hwndDlg, IDC_DISK_KEY), showKeys ? L"" : L"******************************** ");
- SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_RESETCONTENT, 0, 0);
- AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), GetString ("DEFAULT"), 0);
-
- for (int i = 1; i <= 128; i *= 2)
- {
- wstringstream s;
- DWORD size = GetFormatSectorSize() * i;
-
- if (size > TC_MAX_FAT_CLUSTER_SIZE)
- break;
-
- if (size == 512)
- s << L"0.5";
- else
- s << size / BYTES_PER_KB;
-
- s << L" " << GetString ("KB");
-
- AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), s.str().c_str(), i);
- }
-
- SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_SETCURSEL, 0, 0);
-
EnableWindow (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), TRUE);
/* Filesystems */
@@ -4972,6 +4979,14 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
AddComboPair (GetDlgItem (hwndDlg, IDC_FILESYS), L"exFAT", FILESYS_EXFAT);
bEXFATallowed = TRUE;
}
+
+ //ReFS write support activated by default starting from Windows 10
+ //We don't support it yet for the creation of hidden volumes
+ if ((!bHiddenVolHost) && IsOSVersionAtLeast (WIN_10, 0) && dataAreaSize >= TC_MIN_REFS_FS_SIZE && dataAreaSize <= TC_MAX_REFS_FS_SIZE)
+ {
+ AddComboPair (GetDlgItem (hwndDlg, IDC_FILESYS), L"ReFS", FILESYS_REFS);
+ bReFSallowed = TRUE;
+ }
}
else
{
@@ -4993,12 +5008,14 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
{
// Set default file system
- if (bFATallowed && !(nNeedToStoreFilesOver4GB == 1 && (bNTFSallowed || bEXFATallowed)))
+ if (bFATallowed && !(nNeedToStoreFilesOver4GB == 1 && (bNTFSallowed || bEXFATallowed || bReFSallowed)))
fileSystem = FILESYS_FAT;
else if (bEXFATallowed)
fileSystem = FILESYS_EXFAT;
else if (bNTFSallowed)
fileSystem = FILESYS_NTFS;
+ else if (bReFSallowed)
+ fileSystem = FILESYS_REFS;
else if (bNoFSallowed)
fileSystem = FILESYS_NONE;
else
@@ -5011,6 +5028,8 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
SendMessage (GetDlgItem (hwndDlg, IDC_FILESYS), CB_SETCURSEL, 0, 0);
SelectAlgo (GetDlgItem (hwndDlg, IDC_FILESYS), (int *) &fileSystem);
+ UpdateClusterSizeList (hwndDlg, fileSystem);
+
EnableWindow (GetDlgItem (hwndDlg, IDC_ABORT_BUTTON), FALSE);
SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_NEXT), GetString ("FORMAT"));
@@ -5212,11 +5231,11 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
return 1;
case IDC_MORE_INFO_ON_CONTAINERS:
- Applink ("introcontainer", TRUE, "");
+ Applink ("introcontainer");
return 1;
case IDC_MORE_INFO_ON_SYS_ENCRYPTION:
- Applink ("introsysenc", TRUE, "");
+ Applink ("introsysenc");
return 1;
}
}
@@ -5238,14 +5257,14 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
return 1;
case IDC_HIDDEN_SYSENC_INFO_LINK:
- Applink ("hiddensysenc", TRUE, "");
+ Applink ("hiddensysenc");
return 1;
}
}
if (nCurPageNo == SYSENC_HIDDEN_OS_REQ_CHECK_PAGE && lw == IDC_HIDDEN_SYSENC_INFO_LINK)
{
- Applink ("hiddensysenc", TRUE, "");
+ Applink ("hiddensysenc");
return 1;
}
@@ -5368,7 +5387,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
break;
case IDC_MORE_INFO_SYS_ENCRYPTION:
- Applink ("sysencprogressinfo", TRUE, "");
+ Applink ("sysencprogressinfo");
return 1;
}
}
@@ -5459,7 +5478,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDC_HIDDEN_VOL_HELP && nCurPageNo == VOLUME_TYPE_PAGE)
{
- Applink ("hiddenvolume", TRUE, "");
+ Applink ("hiddenvolume");
return 1;
}
@@ -5511,32 +5530,32 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
EAGetName (name, nIndex, 0);
if (wcscmp (name, L"AES") == 0)
- Applink ("aes", FALSE, "");
+ Applink ("aes");
else if (wcscmp (name, L"Serpent") == 0)
- Applink ("serpent", FALSE, "");
+ Applink ("serpent");
else if (wcscmp (name, L"Twofish") == 0)
- Applink ("twofish", FALSE, "");
+ Applink ("twofish");
else if (wcscmp (name, L"GOST89") == 0)
- Applink ("gost89", FALSE, "");
+ Applink ("gost89");
else if (wcscmp (name, L"Kuznyechik") == 0)
- Applink ("kuznyechik", FALSE, "");
+ Applink ("kuznyechik");
else if (wcscmp (name, L"Camellia") == 0)
- Applink ("camellia", FALSE, "");
+ Applink ("camellia");
else if (EAGetCipherCount (nIndex) > 1)
- Applink ("cascades", TRUE, "");
+ Applink ("cascades");
return 1;
}
if (lw == IDC_LINK_HASH_INFO && nCurPageNo == CIPHER_PAGE)
{
- Applink ("hashalgorithms", TRUE, "");
+ Applink ("hashalgorithms");
return 1;
}
if (lw == IDC_LINK_PIM_INFO && nCurPageNo == PIM_PAGE)
{
- Applink ("pim", TRUE, "");
+ Applink ("pim");
return 1;
}
@@ -5592,7 +5611,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
{
if (lw == IDC_PIM)
{
- if(GetPim (hwndDlg, IDC_PIM) != 0)
+ if(GetPim (hwndDlg, IDC_PIM, 0) != 0)
{
PimValueChangedWarning = TRUE;
SetDlgItemTextW (hwndDlg, IDC_PIM_HELP, GetString (SysEncInEffect ()? "PIM_SYSENC_CHANGE_WARNING" : "PIM_CHANGE_WARNING"));
@@ -5876,6 +5895,11 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
fileSystem = (int) SendMessage (GetDlgItem (hCurPage, IDC_FILESYS), CB_GETITEMDATA,
SendMessage (GetDlgItem (hCurPage, IDC_FILESYS), CB_GETCURSEL, 0, 0) , 0);
+ if (nCurPageNo == FORMAT_PAGE)
+ {
+ UpdateClusterSizeList (hCurPage, fileSystem);
+ }
+
return 1;
}
@@ -5935,7 +5959,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (IsWindowsIsoBurnerAvailable())
LaunchWindowsIsoBurner (hwndDlg, szRescueDiskISO);
else
- Applink ("isoburning", TRUE, "");
+ Applink ("isoburning");
return 1;
}
@@ -6110,8 +6134,8 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (nVolumeSize < (bHiddenVolHost ? TC_MIN_HIDDEN_VOLUME_HOST_SIZE : (bHiddenVol ? TC_MIN_HIDDEN_VOLUME_SIZE : TC_MIN_VOLUME_SIZE)))
AbortProcess ("ERR_VOLUME_SIZE_TOO_SMALL");
- if ( ((!bHiddenVolHost && bHiddenVol) && (nVolumeSize > nMaximumHiddenVolSize))
- || (nVolumeSize > (bHiddenVolHost ? TC_MAX_HIDDEN_VOLUME_HOST_SIZE : TC_MAX_VOLUME_SIZE))
+ if ( ((!bHiddenVolHost && bHiddenVol) && (nVolumeSize > (unsigned __int64) nMaximumHiddenVolSize))
+ || (nVolumeSize > (unsigned __int64) (bHiddenVolHost ? TC_MAX_HIDDEN_VOLUME_HOST_SIZE : TC_MAX_VOLUME_SIZE))
)
{
AbortProcess ("ERR_VOLUME_SIZE_TOO_BIG");
@@ -6178,6 +6202,13 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
AbortProcess ("ERR_EXFAT_INVALID_VOLUME_SIZE");
}
+ if ( (fileSystem == FILESYS_REFS) &&
+ (dataAreaSize < TC_MIN_REFS_FS_SIZE || dataAreaSize > TC_MAX_REFS_FS_SIZE)
+ )
+ {
+ AbortProcess ("ERR_REFS_INVALID_VOLUME_SIZE");
+ }
+
if ( (fileSystem == FILESYS_FAT) &&
(dataAreaSize < TC_MIN_FAT_FS_SIZE || dataAreaSize > (TC_MAX_FAT_SECTOR_COUNT * GetFormatSectorSize()))
)
@@ -6207,7 +6238,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (volumePassword.Length > 0)
{
// Check password length (check also done for outer volume which is not the case in TrueCrypt).
- if (!CheckPasswordLength (NULL, volumePassword.Length, volumePim, FALSE, Silent, Silent))
+ if (!CheckPasswordLength (NULL, volumePassword.Length, volumePim, FALSE, 0, Silent, Silent))
{
exit (1);
}
@@ -7483,7 +7514,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
return 1;
}
// Check password length (check also done for outer volume which is not the case in TrueCrypt).
- else if (!CheckPasswordLength (hwndDlg, volumePassword.Length, 0, SysEncInEffect(), FALSE, FALSE))
+ else if (!CheckPasswordLength (hwndDlg, volumePassword.Length, 0, SysEncInEffect(), SysEncInEffect()? hash_algo : 0, FALSE, FALSE))
{
return 1;
}
@@ -7551,7 +7582,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
else if (nCurPageNo == PIM_PAGE)
{
- volumePim = GetPim (hCurPage, IDC_PIM);
+ volumePim = GetPim (hCurPage, IDC_PIM, 0);
if (!SysEncInEffect() && (volumePim > MAX_PIM_VALUE))
{
@@ -7570,7 +7601,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
return 1;
}
// Check password length (check also done for outer volume which is not the case in TrueCrypt).
- else if (!CheckPasswordLength (hwndDlg, volumePassword.Length, volumePim, SysEncInEffect(), TRUE, FALSE))
+ else if (!CheckPasswordLength (hwndDlg, volumePassword.Length, volumePim, SysEncInEffect(), SysEncInEffect()? hash_algo : 0, TRUE, FALSE))
{
return 1;
}
@@ -7608,7 +7639,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
hash_algo = (int) SendMessage (GetDlgItem (hCurPage, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, SendMessage (GetDlgItem (hCurPage, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
- volumePim = GetPim (hCurPage, IDC_PIM);
+ volumePim = GetPim (hCurPage, IDC_PIM, 0);
// Store the password in case we need to restore it after keyfile is applied to it
if (!GetPassword (hCurPage, IDC_PASSWORD_DIRECT, szRawPassword, sizeof (szRawPassword), TRUE))
@@ -7665,8 +7696,6 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
/* Hidden volume host successfully mounted as read-only */
- WaitCursor ();
-
// Verify that the outer volume contains a suitable file system, retrieve cluster size, and
// scan the volume bitmap
if (!IsAdmin () && IsUacSupported ())
@@ -8297,7 +8326,7 @@ retryCDDriveCheck:
{
// Creating a non-hidden volume under a hidden OS
- if (fileSystem == FILESYS_NTFS || fileSystem == FILESYS_EXFAT)
+ if (fileSystem == FILESYS_NTFS || fileSystem == FILESYS_EXFAT || fileSystem == FILESYS_REFS)
{
WarningDirect ((wstring (GetString ("CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS"))
+ L"\n\n"
@@ -8735,7 +8764,7 @@ ovf_end:
else if (nCurPageNo == PIM_PAGE)
{
- volumePim = GetPim (hCurPage, IDC_PIM);
+ volumePim = GetPim (hCurPage, IDC_PIM, 0);
}
else if (nCurPageNo == HIDDEN_VOL_HOST_PASSWORD_PAGE
@@ -8968,6 +8997,8 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
CmdVolumeFilesystem = FILESYS_NTFS;
else if (IsOSVersionAtLeast (WIN_VISTA, 1) && _wcsicmp(szTmp, L"EXFAT") == 0)
CmdVolumeFilesystem = FILESYS_EXFAT;
+ else if (IsOSVersionAtLeast (WIN_10, 0) && _wcsicmp(szTmp, L"ReFS") == 0)
+ CmdVolumeFilesystem = FILESYS_REFS;
else
{
AbortProcess ("COMMAND_LINE_ERROR");
@@ -9000,20 +9031,22 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
if (HAS_ARGUMENT == GetArgumentValue (lpszCommandLineArgs,
&i, nNoCommandLineArgs, szTmp, ARRAYSIZE (szTmp)))
{
- if (_wcsicmp(szTmp, L"sha512") == 0 || _wcsicmp(szTmp, L"sha-512") == 0)
+ /* match against special names first */
+ if (_wcsicmp(szTmp, L"sha512") == 0)
CmdVolumePkcs5 = SHA512;
- else if (_wcsicmp(szTmp, L"whirlpool") == 0)
- CmdVolumePkcs5 = WHIRLPOOL;
- else if (_wcsicmp(szTmp, L"sha256") == 0 || _wcsicmp(szTmp, L"sha-256") == 0)
+ else if (_wcsicmp(szTmp, L"sha256") == 0)
CmdVolumePkcs5 = SHA256;
- else if (_wcsicmp(szTmp, L"ripemd160") == 0 || _wcsicmp(szTmp, L"ripemd-160") == 0)
+ else if (_wcsicmp(szTmp, L"ripemd160") == 0)
CmdVolumePkcs5 = RIPEMD160;
else
{
- CmdVolumePkcs5 = 0;
- AbortProcess ("COMMAND_LINE_ERROR");
+ /* match using internal hash names */
+ CmdVolumePkcs5 = HashGetIdByName (szTmp);
+ if (0 == CmdVolumePkcs5)
+ {
+ AbortProcess ("COMMAND_LINE_ERROR");
+ }
}
-
}
else
AbortProcess ("COMMAND_LINE_ERROR");
@@ -10318,7 +10351,7 @@ static DWORD GetFormatSectorSize ()
if (!bDevice)
return TC_SECTOR_SIZE_FILE_HOSTED_VOLUME;
- DISK_GEOMETRY geometry;
+ DISK_GEOMETRY_EX geometry;
if (!GetDriveGeometry (szDiskFile, &geometry))
{
@@ -10326,5 +10359,5 @@ static DWORD GetFormatSectorSize ()
AbortProcessSilent();
}
- return geometry.BytesPerSector;
+ return geometry.Geometry.BytesPerSector;
}
diff --git a/src/Format/Tcformat.h b/src/Format/Tcformat.h
index 14b0ff1..183f17f 100644
--- a/src/Format/Tcformat.h
+++ b/src/Format/Tcformat.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Release/Setup Files/LICENSE b/src/LICENSE
index cacdfb6..cacdfb6 100644
--- a/src/Release/Setup Files/LICENSE
+++ b/src/LICENSE
diff --git a/src/License.html b/src/License.html
index 333aa21..7cb7e61 100644
--- a/src/License.html
+++ b/src/License.html
@@ -163,7 +163,7 @@ The free distribution and use of this software is allowed (with or without chang
This software is provided 'as is' with no explicit or implied warranties in respect of its properties, including, but not limited to, correctness and/or fitness for purpose.<br>
____________________________________________________________<br>
<br>
- Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler.<br>
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler.<br>
<br>
This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software.<br>
<br>
diff --git a/src/License.txt b/src/License.txt
index 5a638ac..b55918d 100644
--- a/src/License.txt
+++ b/src/License.txt
@@ -679,7 +679,7 @@ warranties in respect of its properties, including, but not
limited to, correctness and/or fitness for purpose.
____________________________________________________________
-Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
diff --git a/src/Main/Application.cpp b/src/Main/Application.cpp
index 4b013cf..cb118ba 100644
--- a/src/Main/Application.cpp
+++ b/src/Main/Application.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Application.h b/src/Main/Application.h
index b961ef4..82c6b00 100644
--- a/src/Main/Application.h
+++ b/src/Main/Application.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/CommandLineInterface.cpp b/src/Main/CommandLineInterface.cpp
index 4d2f138..68d308f 100644
--- a/src/Main/CommandLineInterface.cpp
+++ b/src/Main/CommandLineInterface.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/CommandLineInterface.h b/src/Main/CommandLineInterface.h
index d7a1881..cc4c317 100644
--- a/src/Main/CommandLineInterface.h
+++ b/src/Main/CommandLineInterface.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/FatalErrorHandler.cpp b/src/Main/FatalErrorHandler.cpp
index 37a10e7..f0b5e0f 100644
--- a/src/Main/FatalErrorHandler.cpp
+++ b/src/Main/FatalErrorHandler.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -69,7 +69,7 @@ namespace VeraCrypt
vars << L"&addr=" << hex << faultingInstructionAddress << dec;
vars << FatalErrorHandler::GetCallStack (16);
- wxString url = Gui->GetHomepageLinkURL (L"err-report", true, vars.str());
+ wxString url = Gui->GetHomepageLinkURL (L"err-report", vars.str());
url.Replace (L"=0x", L"=");
url.Replace (L"=0X0x", L"=0x");
url.Replace (L"=0X", L"=0x");
@@ -212,7 +212,7 @@ namespace VeraCrypt
vars.Replace (L"::", L".");
vars.Replace (L":", L".");
- wxString url = Gui->GetHomepageLinkURL (L"err-report", true, vars);
+ wxString url = Gui->GetHomepageLinkURL (L"err-report", vars);
url.Replace (L"=0x", L"=");
url.Replace (L"=0X0x", L"=0x");
url.Replace (L"=0X", L"=0x");
diff --git a/src/Main/FatalErrorHandler.h b/src/Main/FatalErrorHandler.h
index 9213965..d787cdd 100644
--- a/src/Main/FatalErrorHandler.h
+++ b/src/Main/FatalErrorHandler.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/FavoriteVolume.cpp b/src/Main/FavoriteVolume.cpp
index 9022d60..0b6ff14 100644
--- a/src/Main/FavoriteVolume.cpp
+++ b/src/Main/FavoriteVolume.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/FavoriteVolume.h b/src/Main/FavoriteVolume.h
index 2a902c3..7bc6a43 100644
--- a/src/Main/FavoriteVolume.h
+++ b/src/Main/FavoriteVolume.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/AboutDialog.cpp b/src/Main/Forms/AboutDialog.cpp
index 214dd27..b2c44ed 100644
--- a/src/Main/Forms/AboutDialog.cpp
+++ b/src/Main/Forms/AboutDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -57,18 +57,18 @@ namespace VeraCrypt
L"Paulo Barreto, Brian Gladman, Wei Dai, Peter Gutmann, and many others.\n\n"
L"Portions of this software:\n"
- L"Copyright \xA9 2013-2016 IDRIX. All rights reserved.\n"
+ L"Copyright \xA9 2013-2017 IDRIX. All rights reserved.\n"
L"Copyright \xA9 2003-2012 TrueCrypt Developers Association. All Rights Reserved.\n"
L"Copyright \xA9 1998-2000 Paul Le Roux. All Rights Reserved.\n"
L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\n"
- L"Copyright \xA9 1995-2013 Jean-loup Gailly and Mark Adler.\n"
+ L"Copyright \xA9 1995-2017 Jean-loup Gailly and Mark Adler.\n"
L"Copyright \xA9 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov.\n"
L"Copyright \xA9 Dieter Baron and Thomas Klausner.\n"
L"Copyright \xA9 2013, Alexey Degtyarev. All rights reserved.\n"
L"Copyright \xA9 1999-2013,2014,2015,2016 Jack Lloyd. All rights reserved.\n\n"
L"\nThis software as a whole:\n"
- L"Copyright \xA9 2013-2016 IDRIX. All rights reserved.\n\n"
+ L"Copyright \xA9 2013-2017 IDRIX. All rights reserved.\n\n"
L"This software uses wxWidgets library, which is copyright \xA9 1998-2011 Julian Smart, Robert Roebling et al.\n\n"
diff --git a/src/Main/Forms/AboutDialog.h b/src/Main/Forms/AboutDialog.h
index 53dfdcb..7ce64b9 100644
--- a/src/Main/Forms/AboutDialog.h
+++ b/src/Main/Forms/AboutDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/BenchmarkDialog.cpp b/src/Main/Forms/BenchmarkDialog.cpp
index 95e225e..66a45b1 100644
--- a/src/Main/Forms/BenchmarkDialog.cpp
+++ b/src/Main/Forms/BenchmarkDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/BenchmarkDialog.h b/src/Main/Forms/BenchmarkDialog.h
index 403f383..7fd3d01 100644
--- a/src/Main/Forms/BenchmarkDialog.h
+++ b/src/Main/Forms/BenchmarkDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/ChangePasswordDialog.cpp b/src/Main/Forms/ChangePasswordDialog.cpp
index ac8e814..2f8e1e4 100644
--- a/src/Main/Forms/ChangePasswordDialog.cpp
+++ b/src/Main/Forms/ChangePasswordDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -24,6 +24,12 @@ namespace VeraCrypt
bool enableNewPassword = false;
bool enableNewKeyfiles = false;
bool enablePkcs5Prf = false;
+ bool isTrueCryptFile = false;
+
+ if (volumePath && volumePath->HasTrueCryptExtension ())
+ {
+ isTrueCryptFile = true;
+ }
switch (mode)
{
@@ -54,6 +60,7 @@ namespace VeraCrypt
CurrentPasswordPanel = new VolumePasswordPanel (this, NULL, password, false, keyfiles, false, true, true, false, true, true);
CurrentPasswordPanel->UpdateEvent.Connect (EventConnector <ChangePasswordDialog> (this, &ChangePasswordDialog::OnPasswordPanelUpdate));
+ CurrentPasswordPanel->SetTrueCryptMode (isTrueCryptFile);
CurrentPasswordPanelSizer->Add (CurrentPasswordPanel, 1, wxALL | wxEXPAND);
NewPasswordPanel = new VolumePasswordPanel (this, NULL, newPassword, true, newKeyfiles, false, enableNewPassword, enableNewKeyfiles, enableNewPassword, enablePkcs5Prf);
diff --git a/src/Main/Forms/ChangePasswordDialog.h b/src/Main/Forms/ChangePasswordDialog.h
index 2ba8399..242bd96 100644
--- a/src/Main/Forms/ChangePasswordDialog.h
+++ b/src/Main/Forms/ChangePasswordDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/DeviceSelectionDialog.cpp b/src/Main/Forms/DeviceSelectionDialog.cpp
index 764edf3..c3a3d84 100644
--- a/src/Main/Forms/DeviceSelectionDialog.cpp
+++ b/src/Main/Forms/DeviceSelectionDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/DeviceSelectionDialog.h b/src/Main/Forms/DeviceSelectionDialog.h
index 76aaa6f..2ab7a9c 100644
--- a/src/Main/Forms/DeviceSelectionDialog.h
+++ b/src/Main/Forms/DeviceSelectionDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/EncryptionOptionsWizardPage.cpp b/src/Main/Forms/EncryptionOptionsWizardPage.cpp
index c36c7ff..e20a659 100644
--- a/src/Main/Forms/EncryptionOptionsWizardPage.cpp
+++ b/src/Main/Forms/EncryptionOptionsWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/EncryptionOptionsWizardPage.h b/src/Main/Forms/EncryptionOptionsWizardPage.h
index 58a7b5d..b8d42d7 100644
--- a/src/Main/Forms/EncryptionOptionsWizardPage.h
+++ b/src/Main/Forms/EncryptionOptionsWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/EncryptionTestDialog.cpp b/src/Main/Forms/EncryptionTestDialog.cpp
index 3698234..17184a0 100644
--- a/src/Main/Forms/EncryptionTestDialog.cpp
+++ b/src/Main/Forms/EncryptionTestDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/EncryptionTestDialog.h b/src/Main/Forms/EncryptionTestDialog.h
index 1d0ccfb..3ba7d5e 100644
--- a/src/Main/Forms/EncryptionTestDialog.h
+++ b/src/Main/Forms/EncryptionTestDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/FavoriteVolumesDialog.cpp b/src/Main/Forms/FavoriteVolumesDialog.cpp
index f6d5f7b..a0c48f9 100644
--- a/src/Main/Forms/FavoriteVolumesDialog.cpp
+++ b/src/Main/Forms/FavoriteVolumesDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/FavoriteVolumesDialog.h b/src/Main/Forms/FavoriteVolumesDialog.h
index bff08e9..adbf400 100644
--- a/src/Main/Forms/FavoriteVolumesDialog.h
+++ b/src/Main/Forms/FavoriteVolumesDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/InfoWizardPage.cpp b/src/Main/Forms/InfoWizardPage.cpp
index 1c36d11..6d8cf92 100644
--- a/src/Main/Forms/InfoWizardPage.cpp
+++ b/src/Main/Forms/InfoWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/InfoWizardPage.h b/src/Main/Forms/InfoWizardPage.h
index f44061c..aa7da26 100644
--- a/src/Main/Forms/InfoWizardPage.h
+++ b/src/Main/Forms/InfoWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/KeyfileGeneratorDialog.cpp b/src/Main/Forms/KeyfileGeneratorDialog.cpp
index 885f56d..2d729cc 100644
--- a/src/Main/Forms/KeyfileGeneratorDialog.cpp
+++ b/src/Main/Forms/KeyfileGeneratorDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/KeyfileGeneratorDialog.h b/src/Main/Forms/KeyfileGeneratorDialog.h
index e990a70..7b8b2b2 100644
--- a/src/Main/Forms/KeyfileGeneratorDialog.h
+++ b/src/Main/Forms/KeyfileGeneratorDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/KeyfilesDialog.cpp b/src/Main/Forms/KeyfilesDialog.cpp
index f07df6b..c734b4d 100644
--- a/src/Main/Forms/KeyfilesDialog.cpp
+++ b/src/Main/Forms/KeyfilesDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/KeyfilesDialog.h b/src/Main/Forms/KeyfilesDialog.h
index 2471506..2ee601e 100644
--- a/src/Main/Forms/KeyfilesDialog.h
+++ b/src/Main/Forms/KeyfilesDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/KeyfilesPanel.cpp b/src/Main/Forms/KeyfilesPanel.cpp
index 782a5cd..71077e8 100644
--- a/src/Main/Forms/KeyfilesPanel.cpp
+++ b/src/Main/Forms/KeyfilesPanel.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/KeyfilesPanel.h b/src/Main/Forms/KeyfilesPanel.h
index e929732..ef680d4 100644
--- a/src/Main/Forms/KeyfilesPanel.h
+++ b/src/Main/Forms/KeyfilesPanel.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/LegalNoticesDialog.cpp b/src/Main/Forms/LegalNoticesDialog.cpp
index 1bbdb2d..ce7e442 100644
--- a/src/Main/Forms/LegalNoticesDialog.cpp
+++ b/src/Main/Forms/LegalNoticesDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/LegalNoticesDialog.h b/src/Main/Forms/LegalNoticesDialog.h
index 49b1878..31df666 100644
--- a/src/Main/Forms/LegalNoticesDialog.h
+++ b/src/Main/Forms/LegalNoticesDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/MainFrame.cpp b/src/Main/Forms/MainFrame.cpp
index b693fbe..ad5bf5b 100644
--- a/src/Main/Forms/MainFrame.cpp
+++ b/src/Main/Forms/MainFrame.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/MainFrame.h b/src/Main/Forms/MainFrame.h
index 15c08b3..39c411a 100644
--- a/src/Main/Forms/MainFrame.h
+++ b/src/Main/Forms/MainFrame.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/MountOptionsDialog.cpp b/src/Main/Forms/MountOptionsDialog.cpp
index c6b47fd..9a9f269 100644
--- a/src/Main/Forms/MountOptionsDialog.cpp
+++ b/src/Main/Forms/MountOptionsDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -36,6 +36,12 @@ namespace VeraCrypt
PasswordPanel = new VolumePasswordPanel (this, &options, options.Password, disableMountOptions, options.Keyfiles, !disableMountOptions, true, true, false, true, true);
PasswordPanel->SetCacheCheckBoxValidator (wxGenericValidator (&Options.CachePassword));
+
+ if (options.Path && options.Path->HasTrueCryptExtension() && !disableMountOptions
+ && !options.TrueCryptMode && (options.Pim <= 0))
+ {
+ PasswordPanel->SetTrueCryptMode (true);
+ }
PasswordSizer->Add (PasswordPanel, 1, wxALL | wxEXPAND);
diff --git a/src/Main/Forms/MountOptionsDialog.h b/src/Main/Forms/MountOptionsDialog.h
index 77214e6..4a2b38b 100644
--- a/src/Main/Forms/MountOptionsDialog.h
+++ b/src/Main/Forms/MountOptionsDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/NewSecurityTokenKeyfileDialog.cpp b/src/Main/Forms/NewSecurityTokenKeyfileDialog.cpp
index e3019a7..6016155 100644
--- a/src/Main/Forms/NewSecurityTokenKeyfileDialog.cpp
+++ b/src/Main/Forms/NewSecurityTokenKeyfileDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/NewSecurityTokenKeyfileDialog.h b/src/Main/Forms/NewSecurityTokenKeyfileDialog.h
index ca3d525..faa7628 100644
--- a/src/Main/Forms/NewSecurityTokenKeyfileDialog.h
+++ b/src/Main/Forms/NewSecurityTokenKeyfileDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/PreferencesDialog.cpp b/src/Main/Forms/PreferencesDialog.cpp
index c6f2804..e2b4f62 100755
--- a/src/Main/Forms/PreferencesDialog.cpp
+++ b/src/Main/Forms/PreferencesDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/PreferencesDialog.h b/src/Main/Forms/PreferencesDialog.h
index 0f89238..25a0f85 100644
--- a/src/Main/Forms/PreferencesDialog.h
+++ b/src/Main/Forms/PreferencesDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/ProgressWizardPage.cpp b/src/Main/Forms/ProgressWizardPage.cpp
index 5ad739d..a827b71 100644
--- a/src/Main/Forms/ProgressWizardPage.cpp
+++ b/src/Main/Forms/ProgressWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/ProgressWizardPage.h b/src/Main/Forms/ProgressWizardPage.h
index be77406..cc50fa6 100644
--- a/src/Main/Forms/ProgressWizardPage.h
+++ b/src/Main/Forms/ProgressWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/RandomPoolEnrichmentDialog.cpp b/src/Main/Forms/RandomPoolEnrichmentDialog.cpp
index fa9b072..e5ef160 100644
--- a/src/Main/Forms/RandomPoolEnrichmentDialog.cpp
+++ b/src/Main/Forms/RandomPoolEnrichmentDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/RandomPoolEnrichmentDialog.h b/src/Main/Forms/RandomPoolEnrichmentDialog.h
index aa11872..a29109f 100644
--- a/src/Main/Forms/RandomPoolEnrichmentDialog.h
+++ b/src/Main/Forms/RandomPoolEnrichmentDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp b/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp
index abc06a7..c449259 100644
--- a/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp
+++ b/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/SecurityTokenKeyfilesDialog.h b/src/Main/Forms/SecurityTokenKeyfilesDialog.h
index de0e1f4..8ba7fa9 100644
--- a/src/Main/Forms/SecurityTokenKeyfilesDialog.h
+++ b/src/Main/Forms/SecurityTokenKeyfilesDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/SelectDirectoryWizardPage.cpp b/src/Main/Forms/SelectDirectoryWizardPage.cpp
index 28b4fc9..a81b9fe 100644
--- a/src/Main/Forms/SelectDirectoryWizardPage.cpp
+++ b/src/Main/Forms/SelectDirectoryWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/SelectDirectoryWizardPage.h b/src/Main/Forms/SelectDirectoryWizardPage.h
index f257134..39517c5 100644
--- a/src/Main/Forms/SelectDirectoryWizardPage.h
+++ b/src/Main/Forms/SelectDirectoryWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/SingleChoiceWizardPage.h b/src/Main/Forms/SingleChoiceWizardPage.h
index 865e2b2..2398672 100644
--- a/src/Main/Forms/SingleChoiceWizardPage.h
+++ b/src/Main/Forms/SingleChoiceWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeCreationProgressWizardPage.cpp b/src/Main/Forms/VolumeCreationProgressWizardPage.cpp
index ccc4cb7..5739949 100644
--- a/src/Main/Forms/VolumeCreationProgressWizardPage.cpp
+++ b/src/Main/Forms/VolumeCreationProgressWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeCreationProgressWizardPage.h b/src/Main/Forms/VolumeCreationProgressWizardPage.h
index 8214426..345ee59 100644
--- a/src/Main/Forms/VolumeCreationProgressWizardPage.h
+++ b/src/Main/Forms/VolumeCreationProgressWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp
index 776e98e..15c92c3 100644
--- a/src/Main/Forms/VolumeCreationWizard.cpp
+++ b/src/Main/Forms/VolumeCreationWizard.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeCreationWizard.h b/src/Main/Forms/VolumeCreationWizard.h
index 8e6e15d..85203b9 100644
--- a/src/Main/Forms/VolumeCreationWizard.h
+++ b/src/Main/Forms/VolumeCreationWizard.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp b/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp
index d8ec601..ec0d778 100644
--- a/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp
+++ b/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeFormatOptionsWizardPage.h b/src/Main/Forms/VolumeFormatOptionsWizardPage.h
index 371f51f..25ca2b3 100644
--- a/src/Main/Forms/VolumeFormatOptionsWizardPage.h
+++ b/src/Main/Forms/VolumeFormatOptionsWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeLocationWizardPage.cpp b/src/Main/Forms/VolumeLocationWizardPage.cpp
index 2765b5e..313d7fe 100644
--- a/src/Main/Forms/VolumeLocationWizardPage.cpp
+++ b/src/Main/Forms/VolumeLocationWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeLocationWizardPage.h b/src/Main/Forms/VolumeLocationWizardPage.h
index 77b48f2..17ed39c 100644
--- a/src/Main/Forms/VolumeLocationWizardPage.h
+++ b/src/Main/Forms/VolumeLocationWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumePasswordPanel.cpp b/src/Main/Forms/VolumePasswordPanel.cpp
index 920d4f9..9bce4c7 100644
--- a/src/Main/Forms/VolumePasswordPanel.cpp
+++ b/src/Main/Forms/VolumePasswordPanel.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -306,6 +306,16 @@ namespace VeraCrypt
{
return TrueCryptModeCheckBox->GetValue ();
}
+
+ void VolumePasswordPanel::SetTrueCryptMode (bool trueCryptMode)
+ {
+ bool bEnablePIM = !trueCryptMode;
+ TrueCryptModeCheckBox->SetValue (trueCryptMode);
+ PimCheckBox->Enable (bEnablePIM);
+ VolumePimStaticText->Enable (bEnablePIM);
+ VolumePimTextCtrl->Enable (bEnablePIM);
+ VolumePimHelpStaticText->Enable (bEnablePIM);
+ }
int VolumePasswordPanel::GetHeaderWipeCount () const
{
diff --git a/src/Main/Forms/VolumePasswordPanel.h b/src/Main/Forms/VolumePasswordPanel.h
index e692d44..83efc2f 100644
--- a/src/Main/Forms/VolumePasswordPanel.h
+++ b/src/Main/Forms/VolumePasswordPanel.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -32,6 +32,7 @@ namespace VeraCrypt
shared_ptr <Pkcs5Kdf> GetPkcs5Kdf (bool bTrueCryptMode, bool &bUnsupportedKdf) const;
int GetVolumePim () const;
bool GetTrueCryptMode () const;
+ void SetTrueCryptMode (bool trueCryptMode);
int GetHeaderWipeCount () const;
void SetCacheCheckBoxValidator (const wxGenericValidator &validator) { CacheCheckBox->SetValidator (validator); }
void SetFocusToPasswordTextCtrl () { PasswordTextCtrl->SetSelection (-1, -1); PasswordTextCtrl->SetFocus(); }
diff --git a/src/Main/Forms/VolumePasswordWizardPage.cpp b/src/Main/Forms/VolumePasswordWizardPage.cpp
index f753bb3..274a59f 100644
--- a/src/Main/Forms/VolumePasswordWizardPage.cpp
+++ b/src/Main/Forms/VolumePasswordWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumePasswordWizardPage.h b/src/Main/Forms/VolumePasswordWizardPage.h
index 06e89c3..a9a2872 100644
--- a/src/Main/Forms/VolumePasswordWizardPage.h
+++ b/src/Main/Forms/VolumePasswordWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumePropertiesDialog.cpp b/src/Main/Forms/VolumePropertiesDialog.cpp
index 5514d30..cbf5e01 100644
--- a/src/Main/Forms/VolumePropertiesDialog.cpp
+++ b/src/Main/Forms/VolumePropertiesDialog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumePropertiesDialog.h b/src/Main/Forms/VolumePropertiesDialog.h
index 171cf6e..277c829 100644
--- a/src/Main/Forms/VolumePropertiesDialog.h
+++ b/src/Main/Forms/VolumePropertiesDialog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeSizeWizardPage.cpp b/src/Main/Forms/VolumeSizeWizardPage.cpp
index c4f855a..f404441 100644
--- a/src/Main/Forms/VolumeSizeWizardPage.cpp
+++ b/src/Main/Forms/VolumeSizeWizardPage.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/VolumeSizeWizardPage.h b/src/Main/Forms/VolumeSizeWizardPage.h
index 9779da4..e12a5a7 100644
--- a/src/Main/Forms/VolumeSizeWizardPage.h
+++ b/src/Main/Forms/VolumeSizeWizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/WaitDialog.cpp b/src/Main/Forms/WaitDialog.cpp
index 4780f7e..d3372db 100644
--- a/src/Main/Forms/WaitDialog.cpp
+++ b/src/Main/Forms/WaitDialog.cpp
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2013-2016 IDRIX. All rights reserved.
+ Copyright (c) 2013-2017 IDRIX. All rights reserved.
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
diff --git a/src/Main/Forms/WaitDialog.h b/src/Main/Forms/WaitDialog.h
index e9c9fa3..a3b1417 100644
--- a/src/Main/Forms/WaitDialog.h
+++ b/src/Main/Forms/WaitDialog.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2013-2016 IDRIX. All rights reserved.
+ Copyright (c) 2013-2017 IDRIX. All rights reserved.
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
diff --git a/src/Main/Forms/WizardFrame.cpp b/src/Main/Forms/WizardFrame.cpp
index b5fe3be..0a21f4e 100644
--- a/src/Main/Forms/WizardFrame.cpp
+++ b/src/Main/Forms/WizardFrame.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/WizardFrame.h b/src/Main/Forms/WizardFrame.h
index ac4f1c4..86a5395 100644
--- a/src/Main/Forms/WizardFrame.h
+++ b/src/Main/Forms/WizardFrame.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Forms/WizardPage.h b/src/Main/Forms/WizardPage.h
index d47a4e9..9f17506 100644
--- a/src/Main/Forms/WizardPage.h
+++ b/src/Main/Forms/WizardPage.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp
index 9ff259c..a6d1ae2 100644..100755
--- a/src/Main/GraphicUserInterface.cpp
+++ b/src/Main/GraphicUserInterface.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -1087,125 +1087,171 @@ namespace VeraCrypt
#endif
}
- wxString GraphicUserInterface::GetHomepageLinkURL (const wxString &linkId, bool secure, const wxString &extraVars) const
+ wxString GraphicUserInterface::GetHomepageLinkURL (const wxString &linkId, const wxString &extraVars) const
{
- wxString url = wxString (StringConverter::ToWide (secure ? TC_APPLINK_SECURE : TC_APPLINK));
+ wxString url = wxString (TC_APPLINK);
+ bool buildUrl = true;
if (linkId == L"donate")
{
- url = L"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5BCXVMTTNJDCY";
+ url = L"Donation.html";
}
else if (linkId == L"main")
{
- url = wxString (StringConverter::ToWide (TC_HOMEPAGE));
+ url = wxString (TC_HOMEPAGE);
+ buildUrl = false;
+ }
+ else if (linkId == L"onlinehelp")
+ {
+ url = L"https://www.veracrypt.fr/en/Documentation.html";
+ buildUrl = false;
}
else if (linkId == L"localizations")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Language%20Packs";
+ url = L"Language Packs.html";
}
else if (linkId == L"beginnerstutorial" || linkId == L"tutorial")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Beginner%27s%20Tutorial";
+ url = L"Beginner's Tutorial.html";
}
else if (linkId == L"releasenotes" || linkId == L"history")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Release%20Notes";
+ url = L"Release Notes.html";
}
else if (linkId == L"hwacceleration")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Hardware%20Acceleration";
+ url = L"Hardware Acceleration.html";
}
else if (linkId == L"parallelization")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Parallelization";
+ url = L"Parallelization.html";
}
else if (linkId == L"help")
{
- url = L"https://veracrypt.codeplex.com/documentation";
+ url = L"Documentation.html";
}
else if (linkId == L"keyfiles")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Keyfiles";
+ url = L"Keyfiles.html";
}
else if (linkId == L"introcontainer")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Creating%20New%20Volumes";
+ url = L"Creating New Volumes.html";
}
else if (linkId == L"introsysenc")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=System%20Encryption";
+ url = L"System Encryption.html";
}
else if (linkId == L"hiddensysenc")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=VeraCrypt%20Hidden%20Operating%20System";
+ url = L"VeraCrypt Hidden Operating System.html";
}
else if (linkId == L"sysencprogressinfo")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=System%20Encryption";
+ url = L"System Encryption.html";
}
else if (linkId == L"hiddenvolume")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Hidden%20Volume";
+ url = L"Hidden Volume.html";
}
else if (linkId == L"aes")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=AES";
+ url = L"AES.html";
}
else if (linkId == L"serpent")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Serpent";
+ url = L"Serpent.html";
}
else if (linkId == L"twofish")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Twofish";
+ url = L"Twofish.html";
}
else if (linkId == L"camellia")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Camellia";
+ url = L"Camellia.html";
}
else if (linkId == L"kuznyechik")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Kuznyechik";
+ url = L"Kuznyechik.html";
}
else if (linkId == L"cascades")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Cascades";
+ url = L"Cascades.html";
}
else if (linkId == L"hashalgorithms")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Hash%20Algorithms";
+ url = L"Hash Algorithms.html";
}
else if (linkId == L"isoburning")
{
url = L"https://cdburnerxp.se/en/home";
+ buildUrl = false;
}
else if (linkId == L"sysfavorites")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=System%20Favorite%20Volumes";
+ url = L"System Favorite Volumes.html";
}
else if (linkId == L"favorites")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Favorite%20Volumes";
+ url = L"Favorite Volumes.html";
}
else if (linkId == L"hiddenvolprotection")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Protection%20of%20Hidden%20Volumes";
+ url = L"Protection of Hidden Volumes.html";
}
else if (linkId == L"faq")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=FAQ";
+ url = L"FAQ.html";
}
else if (linkId == L"downloads")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Downloads";
+ url = L"Downloads.html";
}
else if (linkId == L"news")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=News";
+ url = L"News.html";
}
else if (linkId == L"contact")
{
- url = L"https://veracrypt.codeplex.com/wikipage?title=Contact";
+ url = L"Contact.html";
+ }
+ else
+ {
+ buildUrl = false;
+ }
+
+ if (buildUrl)
+ {
+ wxString htmlPath = wstring (Application::GetExecutableDirectory());
+ bool localFile = true;
+
+#ifdef TC_RESOURCE_DIR
+ htmlPath = StringConverter::ToWide (string (TC_TO_STRING (TC_RESOURCE_DIR)) + "/doc/HTML/");
+#elif defined (TC_WINDOWS)
+ htmlPath += L"\\docs\\html\\en\\";
+#elif defined (TC_MACOSX)
+ htmlPath += L"/../Resources/doc/HTML/";
+#elif defined (TC_UNIX)
+ htmlPath = L"/usr/share/veracrypt/doc/HTML/";
+#else
+ localFile = false;
+#endif
+ if (localFile)
+ {
+ /* check if local file exists */
+ wxFileName htmlFile = htmlPath + url;
+ htmlFile.Normalize();
+ localFile = htmlFile.FileExists();
+ }
+
+ if (!localFile)
+ {
+ htmlPath = L"https://www.veracrypt.fr/en/";
+ url.Replace (L" ", L"%20");
+ url.Replace (L"'", L"%27");
+ }
+
+ url = htmlPath + url;
}
return url;
@@ -1216,51 +1262,19 @@ namespace VeraCrypt
wxString url;
BeginInteractiveBusyState (parent);
- wxLaunchDefaultBrowser (GetHomepageLinkURL (linkId, false, extraVars), wxBROWSER_NEW_WINDOW);
+ wxLaunchDefaultBrowser (GetHomepageLinkURL (linkId, extraVars), wxBROWSER_NEW_WINDOW);
Thread::Sleep (200);
EndInteractiveBusyState (parent);
}
void GraphicUserInterface::OpenOnlineHelp (wxWindow *parent)
{
- OpenHomepageLink (parent, L"help");
+ OpenHomepageLink (parent, L"onlinehelp");
}
void GraphicUserInterface::OpenUserGuide (wxWindow *parent)
{
- try
- {
- wxString docPath = wstring (Application::GetExecutableDirectory());
-
-#ifdef TC_RESOURCE_DIR
- docPath = StringConverter::ToWide (string (TC_TO_STRING (TC_RESOURCE_DIR)) + "/doc/VeraCrypt User Guide.pdf");
-#elif defined (TC_WINDOWS)
- docPath += L"\\VeraCrypt User Guide.pdf";
-#elif defined (TC_MACOSX)
- docPath += L"/../Resources/VeraCrypt User Guide.pdf";
-#elif defined (TC_UNIX)
- docPath = L"/usr/share/veracrypt/doc/VeraCrypt User Guide.pdf";
-#else
-# error TC_RESOURCE_DIR undefined
-#endif
-
- wxFileName docFile = docPath;
- docFile.Normalize();
-
- try
- {
- Gui->OpenDocument (parent, docFile);
- }
- catch (...)
- {
- if (Gui->AskYesNo (LangString ["HELP_READER_ERROR"], true))
- OpenOnlineHelp (parent);
- }
- }
- catch (Exception &e)
- {
- Gui->ShowError (e);
- }
+ OpenHomepageLink (parent, L"help");
}
void GraphicUserInterface::RestoreVolumeHeaders (shared_ptr <VolumePath> volumePath) const
diff --git a/src/Main/GraphicUserInterface.h b/src/Main/GraphicUserInterface.h
index a7056f0..f170d9a 100644
--- a/src/Main/GraphicUserInterface.h
+++ b/src/Main/GraphicUserInterface.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -53,7 +53,7 @@ namespace VeraCrypt
virtual int GetCharWidth (wxWindow *window) const;
virtual int GetDefaultBorderSize () const { return 5; }
virtual wxFont GetDefaultBoldFont (wxWindow *window) const;
- virtual wxString GetHomepageLinkURL (const wxString &linkId, bool secure = false, const wxString &extraVars = wxEmptyString) const;
+ virtual wxString GetHomepageLinkURL (const wxString &linkId, const wxString &extraVars = wxEmptyString) const;
virtual wxFrame *GetMainFrame () const { return mMainFrame; }
virtual int GetScrollbarWidth (wxWindow *window, bool noScrollBar = false) const;
virtual list <long> GetListCtrlSelectedItems (wxListCtrl *listCtrl) const;
diff --git a/src/Main/Hotkey.cpp b/src/Main/Hotkey.cpp
index 132b7cb..8715dc0 100644
--- a/src/Main/Hotkey.cpp
+++ b/src/Main/Hotkey.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Hotkey.h b/src/Main/Hotkey.h
index 86b40f7..1ebd6bc 100644
--- a/src/Main/Hotkey.h
+++ b/src/Main/Hotkey.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/LanguageStrings.cpp b/src/Main/LanguageStrings.cpp
index 8892946..07b294f 100644
--- a/src/Main/LanguageStrings.cpp
+++ b/src/Main/LanguageStrings.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/LanguageStrings.h b/src/Main/LanguageStrings.h
index a55fc08..f69928c 100644
--- a/src/Main/LanguageStrings.h
+++ b/src/Main/LanguageStrings.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Main.h b/src/Main/Main.h
index 18d5eda..f0dade4 100644
--- a/src/Main/Main.h
+++ b/src/Main/Main.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Main.make b/src/Main/Main.make
index 92865ef..f11a2b5 100644..100755
--- a/src/Main/Main.make
+++ b/src/Main/Main.make
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
@@ -133,6 +133,25 @@ INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)
endif
#-----------------------------------
+#------ FreeBSD package naming ------
+ifeq "$(PLATFORM)" "FreeBSD"
+
+SYSTEMNAME = $(shell uname -n)
+
+ifdef TC_NO_GUI
+INSTALLER_TYPE := console
+PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_console_$(PLATFORM_ARCH).tar.gz
+else
+INSTALLER_TYPE := gui
+PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_$(PLATFORM_ARCH).tar.gz
+endif
+
+INTERNAL_INSTALLER_NAME := veracrypt_install_f$(SYSTEMNAME)_$(INSTALLER_TYPE)_$(CPU_ARCH).sh
+INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)
+
+endif
+#-----------------------------------
+
$(APPNAME): $(LIBS) $(OBJS)
@echo Linking $@
$(CXX) -o $(APPNAME) $(OBJS) $(LIBS) $(FUSE_LIBS) $(WX_LIBS) $(LFLAGS)
@@ -152,7 +171,8 @@ endif
endif
ifeq "$(PLATFORM)" "MacOSX"
- mkdir -p $(APPNAME).app/Contents/MacOS $(APPNAME).app/Contents/Resources
+prepare: $(APPNAME)
+ mkdir -p $(APPNAME).app/Contents/MacOS $(APPNAME).app/Contents/Resources/doc/HTML
-rm -f $(APPNAME).app/Contents/MacOS/$(APPNAME)
-rm -f $(APPNAME).app/Contents/MacOS/$(APPNAME)_console
@@ -173,11 +193,17 @@ endif
endif
cp $(PWD)/Resources/Icons/VeraCrypt.icns $(APPNAME).app/Contents/Resources
- cp "$(PWD)/Release/Setup Files/VeraCrypt User Guide.pdf" $(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
echo -n APPLTRUE >$(APPNAME).app/Contents/PkgInfo
sed -e 's/_VERSION_/$(patsubst %a,%.1,$(patsubst %b,%.2,$(TC_VERSION)))/' ../Build/Resources/MacOSX/Info.plist.xml >$(APPNAME).app/Contents/Info.plist
codesign -s "Developer ID Application: Mounir IDRASSI" --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: Mounir IDRASSI" --timestamp "$(PWD)/Setup/MacOSX/VeraCrypt $(TC_VERSION).pkg" $(PWD)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg
rm -f $(APPNAME)_$(TC_VERSION).dmg
@@ -196,14 +222,15 @@ endif
ifeq "$(PLATFORM)" "Linux"
-ifeq "$(TC_BUILD_CONFIG)" "Release"
+prepare: $(APPNAME)
+ rm -fr $(PWD)/Setup/Linux/usr
mkdir -p $(PWD)/Setup/Linux/usr/bin
- mkdir -p $(PWD)/Setup/Linux/usr/share/$(APPNAME)/doc
+ 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)/Release/Setup Files/VeraCrypt User Guide.pdf" "$(PWD)/Setup/Linux/usr/share/$(APPNAME)/doc/VeraCrypt User Guide.pdf"
+ cp $(PWD)/../doc/html/* "$(PWD)/Setup/Linux/usr/share/$(APPNAME)/doc/HTML"
ifndef TC_NO_GUI
mkdir -p $(PWD)/Setup/Linux/usr/share/applications
@@ -213,6 +240,11 @@ ifndef TC_NO_GUI
endif
+install: prepare
+ cp -R $(CURDIR)/Setup/Linux/usr $(DESTDIR)/.
+
+ifeq "$(TC_BUILD_CONFIG)" "Release"
+package: prepare
tar cfz $(PWD)/Setup/Linux/$(PACKAGE_NAME) --directory $(PWD)/Setup/Linux usr
@rm -fr $(INTERNAL_INSTALLER_NAME)
@@ -236,6 +268,55 @@ endif
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"
+
+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
+endif
+ chown -R root:wheel $(PWD)/Setup/FreeBSD/usr
+ chmod -R go-w $(PWD)/Setup/FreeBSD/usr
+
+
+install: prepare
+ cp -R $(CURDIR)/Setup/FreeBSD/usr $(DESTDIR)/.
+
+ifeq "$(TC_BUILD_CONFIG)" "Release"
+package: prepare
+ tar cfz $(PWD)/Setup/FreeBSD/$(PACKAGE_NAME) --directory $(PWD)/Setup/FreeBSD usr
+
+ @rm -fr $(INTERNAL_INSTALLER_NAME)
+ @echo "#!/bin/sh" > $(INTERNAL_INSTALLER_NAME)
+ @echo "VERSION=$(TC_VERSION)" >> $(INTERNAL_INSTALLER_NAME)
+ @echo "PACKAGE_TYPE=tar" >> $(INTERNAL_INSTALLER_NAME)
+ @echo "PACKAGE_NAME=$(PACKAGE_NAME)" >> $(INTERNAL_INSTALLER_NAME)
+ @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)
+ 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)
+
+endif
+
+endif
+
$(OBJS): $(PCH)
Resources.o: $(RESOURCES)
diff --git a/src/Main/Resources.cpp b/src/Main/Resources.cpp
index fa8d151..52b3cd4 100644
--- a/src/Main/Resources.cpp
+++ b/src/Main/Resources.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Resources.h b/src/Main/Resources.h
index 45b5c32..734c2ed 100644
--- a/src/Main/Resources.h
+++ b/src/Main/Resources.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/StringFormatter.cpp b/src/Main/StringFormatter.cpp
index 39f7da5..4f8c2cc 100644
--- a/src/Main/StringFormatter.cpp
+++ b/src/Main/StringFormatter.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/StringFormatter.h b/src/Main/StringFormatter.h
index 0d5fdc5..33a47a3 100644
--- a/src/Main/StringFormatter.h
+++ b/src/Main/StringFormatter.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/System.cpp b/src/Main/System.cpp
index 4cfba36..3f2200d 100644
--- a/src/Main/System.cpp
+++ b/src/Main/System.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/System.h b/src/Main/System.h
index 5c62892..9d7ebc9 100644
--- a/src/Main/System.h
+++ b/src/Main/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/SystemPrecompiled.h b/src/Main/SystemPrecompiled.h
index 168642a..0702178 100644
--- a/src/Main/SystemPrecompiled.h
+++ b/src/Main/SystemPrecompiled.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/TextUserInterface.cpp b/src/Main/TextUserInterface.cpp
index 30a3df7..8cd010b 100644
--- a/src/Main/TextUserInterface.cpp
+++ b/src/Main/TextUserInterface.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/TextUserInterface.h b/src/Main/TextUserInterface.h
index 7e562b0..78874b8 100644
--- a/src/Main/TextUserInterface.h
+++ b/src/Main/TextUserInterface.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Unix/Main.cpp b/src/Main/Unix/Main.cpp
index 8b08a91..39a2eab 100644
--- a/src/Main/Unix/Main.cpp
+++ b/src/Main/Unix/Main.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/UserInterface.cpp b/src/Main/UserInterface.cpp
index 978a037..b9fc5f9 100644
--- a/src/Main/UserInterface.cpp
+++ b/src/Main/UserInterface.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -838,12 +838,12 @@ namespace VeraCrypt
#else
// MIME handler for directory seems to be unavailable through wxWidgets
wxString desktop = GetTraits()->GetDesktopEnvironment();
- bool xdgOpenPresent = wxFileName::IsFileExecutable (wxT("/usr/bin/xdg-open"));
- bool nautilusPresent = wxFileName::IsFileExecutable (wxT("/usr/bin/nautilus"));
+ bool xdgOpenPresent = wxFileName::IsFileExecutable (wxT("/usr/bin/xdg-open")) || wxFileName::IsFileExecutable (wxT("/usr/local/bin/xdg-open"));
+ bool nautilusPresent = wxFileName::IsFileExecutable (wxT("/usr/bin/nautilus")) || wxFileName::IsFileExecutable (wxT("/usr/local/bin/nautilus"));
if (desktop == L"GNOME" || (desktop.empty() && !xdgOpenPresent && nautilusPresent))
{
- args.push_back ("--no-default-window");
+ // args.push_back ("--no-default-window"); // This option causes nautilus not to launch under FreeBSD 11
args.push_back ("--no-desktop");
args.push_back (string (path));
try
@@ -1260,6 +1260,11 @@ namespace VeraCrypt
" Use text user interface. Graphical user interface is used by default if\n"
" available. This option must be specified as the first argument.\n"
"\n"
+ "-tc, --truecrypt\n"
+ " Enable TrueCrypt compatibility mode to enable mounting volumes created\n"
+ " by TrueCrypt 6.x or 7.x. This option must be specified as the first\n"
+ " argument, or immediately after --text.\n"
+ "\n"
"--token-lib=LIB_PATH\n"
" Use specified PKCS #11 security token library.\n"
"\n"
diff --git a/src/Main/UserInterface.h b/src/Main/UserInterface.h
index 4f2d769..8c8cca7 100644
--- a/src/Main/UserInterface.h
+++ b/src/Main/UserInterface.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/UserInterfaceException.h b/src/Main/UserInterfaceException.h
index 1ceacf7..8a8c7a6 100644
--- a/src/Main/UserInterfaceException.h
+++ b/src/Main/UserInterfaceException.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/UserInterfaceType.h b/src/Main/UserInterfaceType.h
index dd5ef7a..41208cc 100644
--- a/src/Main/UserInterfaceType.h
+++ b/src/Main/UserInterfaceType.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/UserPreferences.cpp b/src/Main/UserPreferences.cpp
index fafd082..e4cc494 100755
--- a/src/Main/UserPreferences.cpp
+++ b/src/Main/UserPreferences.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/UserPreferences.h b/src/Main/UserPreferences.h
index cff8fab..96faf8a 100644
--- a/src/Main/UserPreferences.h
+++ b/src/Main/UserPreferences.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/VolumeHistory.cpp b/src/Main/VolumeHistory.cpp
index 67824bc..ba33a04 100644
--- a/src/Main/VolumeHistory.cpp
+++ b/src/Main/VolumeHistory.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/VolumeHistory.h b/src/Main/VolumeHistory.h
index 7667a18..fdbb099 100644
--- a/src/Main/VolumeHistory.h
+++ b/src/Main/VolumeHistory.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Xml.cpp b/src/Main/Xml.cpp
index 7197588..6d0faa1 100644
--- a/src/Main/Xml.cpp
+++ b/src/Main/Xml.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Main/Xml.h b/src/Main/Xml.h
index bdfcce3..78c3027 100644
--- a/src/Main/Xml.h
+++ b/src/Main/Xml.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Makefile b/src/Makefile
index 7bfc5ad..fa4a4eb 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
@@ -38,13 +38,13 @@ export BUILD_INC := $(BASE_DIR)/Build/Include
export AR ?= ar
export CC ?= gcc
export CXX ?= g++
-export AS := nasm
+export AS := yasm
export RANLIB ?= ranlib
export CFLAGS := -Wall
export CXXFLAGS := -Wall -Wno-unused-parameter
C_CXX_FLAGS := -MMD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -I$(BASE_DIR) -I$(BASE_DIR)/Crypto
-export ASFLAGS := -Ox -D __GNUC__
+export ASFLAGS := -D __GNUC__ -D __YASM__
export LFLAGS :=
export PKG_CONFIG_PATH ?= /usr/local/lib/pkgconfig
@@ -131,17 +131,14 @@ export PLATFORM_UNSUPPORTED := 0
export CPU_ARCH ?= unknown
export SIMD_SUPPORTED := 0
-ARCH = $(shell uname -p)
-ifeq "$(ARCH)" "unknown"
- ARCH = $(shell uname -m)
-endif
+ARCH = $(shell uname -m)
ifneq (,$(filter i386 i486 i586 i686 x86,$(ARCH)))
CPU_ARCH = x86
- ASFLAGS += -f elf32
+ ASFLAGS += -f elf32 -D __BITS__=32
else ifneq (,$(filter x86_64 x86-64 amd64 x64,$(ARCH)))
CPU_ARCH = x64
- ASFLAGS += -f elf64
+ ASFLAGS += -f elf64 -D __BITS__=64
endif
ifeq "$(origin NOASM)" "command line"
@@ -191,15 +188,15 @@ ifeq "$(shell uname -s)" "Linux"
endif
ifeq "$(TC_BUILD_CONFIG)" "Release"
- C_CXX_FLAGS += -fdata-sections -ffunction-sections
- LFLAGS += -Wl,--gc-sections
+ C_CXX_FLAGS += -fdata-sections -ffunction-sections -fpie
+ LFLAGS += -Wl,--gc-sections -pie
ifneq "$(shell ld --help 2>&1 | grep sysv | wc -l)" "0"
LFLAGS += -Wl,--hash-style=sysv
endif
- WXCONFIG_CFLAGS += -fdata-sections -ffunction-sections
- WXCONFIG_CXXFLAGS += -fdata-sections -ffunction-sections
+ WXCONFIG_CFLAGS += -fdata-sections -ffunction-sections -fpie
+ WXCONFIG_CXXFLAGS += -fdata-sections -ffunction-sections -fpie
endif
ifneq "$(origin WXSTATIC)" "command line"
@@ -253,8 +250,9 @@ ifeq "$(shell uname -s)" "Darwin"
CXXFLAGS += -mssse3 -msse4.1
endif
- AS := $(BASE_DIR)/Build/Tools/MacOSX/nasm
- ASFLAGS += --prefix _
+ AS := $(BASE_DIR)/Build/Tools/MacOSX/yasm
+ export ASFLAGS32 := -D __GNUC__ -D __YASM__ -D __BITS__=32 --prefix=_ -f macho32
+ export ASFLAGS64 := -D __GNUC__ -D __YASM__ -D __BITS__=64 --prefix=_ -f macho64
ifeq "$(TC_BUILD_CONFIG)" "Release"
@@ -286,6 +284,36 @@ ifeq "$(shell uname -s)" "FreeBSD"
PLATFORM := FreeBSD
PLATFORM_UNSUPPORTED := 1
C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_FREEBSD
+
+ CC := cc
+ CXX := c++
+
+ ifeq "$(TC_BUILD_CONFIG)" "Release"
+ C_CXX_FLAGS += -fdata-sections -ffunction-sections -fpie
+ LFLAGS += -Wl,--gc-sections -pie
+
+ ifneq "$(shell ld --help 2>&1 | grep sysv | wc -l)" "0"
+ LFLAGS += -Wl,--hash-style=sysv
+ endif
+
+ WXCONFIG_CFLAGS += -fpie -fPIC
+ WXCONFIG_CXXFLAGS += -fpie -fPIC
+ endif
+
+ ifeq "$(SIMD_SUPPORTED)" "1"
+ CFLAGS += -msse2 -maes
+ CXXFLAGS += -msse2 -maes
+
+ ifeq "$(origin SSSE3)" "command line"
+ CFLAGS += -mssse3
+ CXXFLAGS += -mssse3
+ endif
+
+ ifeq "$(origin SSE41)" "command line"
+ CFLAGS += -mssse3 -msse4.1
+ CXXFLAGS += -mssse3 -msse4.1
+ endif
+ endif
endif
@@ -345,6 +373,11 @@ all clean:
export LIBS="$(BASE_DIR)/$$DIR/$$PROJ.a $$LIBS"; \
done
+install:
+ $(MAKE) -C Main -f Main.make NAME=Main install
+
+package:
+ $(MAKE) -C Main -f Main.make NAME=Main package
#------ wxWidgets build ------
diff --git a/src/Mount/Favorites.cpp b/src/Mount/Favorites.cpp
index c27fed5..dab58bc 100644
--- a/src/Mount/Favorites.cpp
+++ b/src/Mount/Favorites.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -21,6 +21,7 @@
#include "Resource.h"
#include "Xml.h"
#include "Favorites.h"
+#include "Pkcs5.h"
using namespace std;
@@ -98,6 +99,8 @@ namespace VeraCrypt
favorite.SystemEncryption = prop.partitionInInactiveSysEncScope ? true : false;
favorite.OpenExplorerWindow = (bExplore == TRUE);
favorite.Pim = prop.volumePim;
+ favorite.Pkcs5 = prop.pkcs5;
+ favorite.TrueCryptMode = (prop.pkcs5Iterations == get_pkcs5_iteration_count(prop.pkcs5, 0, TRUE, prop.partitionInInactiveSysEncScope))? 1 : 0;
memcpy (favorite.VolumeID, prop.volumeID, VOLUME_ID_SIZE);
if (favorite.VolumePathId.empty()
@@ -379,7 +382,7 @@ namespace VeraCrypt
return 1;
case IDC_FAVORITES_HELP_LINK:
- Applink (SystemFavoritesMode ? "sysfavorites" : "favorites", TRUE, "");
+ Applink (SystemFavoritesMode ? "sysfavorites" : "favorites");
return 1;
case IDC_SHOW_PIM:
HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PIM, IDC_PIM, 0);
@@ -388,7 +391,7 @@ namespace VeraCrypt
case IDC_PIM:
if (hw == EN_CHANGE)
{
- int pim = GetPim (hwndDlg, IDC_PIM);
+ int pim = GetPim (hwndDlg, IDC_PIM, -1);
if (pim > (SystemFavoritesMode? MAX_BOOT_PIM_VALUE: MAX_PIM_VALUE))
{
SetDlgItemText (hwndDlg, IDC_PIM, L"");
@@ -615,9 +618,14 @@ namespace VeraCrypt
/* support old attribute name before it was changed to PIM*/
XmlGetAttributeText (xml, "pin", label, sizeof (label));
}
- favorite.Pim = strtol (label, NULL, 10);
- if (favorite.Pim < 0 || favorite.Pim > (systemFavorites? MAX_BOOT_PIM_VALUE : MAX_PIM_VALUE))
- favorite.Pim = 0;
+ if (label[0])
+ {
+ favorite.Pim = strtol (label, NULL, 10);
+ if (favorite.Pim < 0 || favorite.Pim > (systemFavorites? MAX_BOOT_PIM_VALUE : MAX_PIM_VALUE))
+ favorite.Pim = -1;
+ }
+ else
+ favorite.Pim = -1;
char boolVal[2];
XmlGetAttributeText (xml, "readonly", boolVal, sizeof (boolVal));
@@ -669,6 +677,30 @@ namespace VeraCrypt
favorite.DisconnectedDevice = true;
}
+ XmlGetAttributeText (xml, "TrueCryptMode", boolVal, sizeof (boolVal));
+ if (boolVal[0])
+ favorite.TrueCryptMode = (boolVal[0] == '1')? 1 : 0;
+ else
+ favorite.TrueCryptMode = -1;
+
+ if (favorite.TrueCryptMode > 0)
+ favorite.Pim = 0;
+
+ XmlGetAttributeText (xml, "pkcs5", label, sizeof (label));
+ if (label[0])
+ favorite.Pkcs5 = strtol (label, NULL, 10);
+ else
+ favorite.Pkcs5 = -1;
+ if ( (favorite.Pkcs5 != -1)
+ && ( (favorite.Pkcs5 < FIRST_PRF_ID)
+ || (favorite.Pkcs5 > LAST_PRF_ID)
+ || (favorite.TrueCryptMode == 1 && (0 == get_pkcs5_iteration_count (favorite.Pkcs5, 0, TRUE, favorite.SystemEncryption? TRUE : FALSE)))
+ )
+ )
+ {
+ favorite.Pkcs5 = -1;
+ }
+
favorites.push_back (favorite);
xml++;
}
@@ -759,9 +791,17 @@ namespace VeraCrypt
if (!favorite.Label.empty())
s += L" label=\"" + favorite.Label + L"\"";
- if (favorite.Pim > 0)
+ if ((favorite.Pim >= 0) && (favorite.TrueCryptMode <= 0))
s += L" pim=\"" + IntToWideString(favorite.Pim) + L"\"";
+ if (favorite.Pkcs5 > 0)
+ s += L" pkcs5=\"" + IntToWideString(favorite.Pkcs5) + L"\"";
+
+ if (favorite.TrueCryptMode > 0)
+ s += L" TrueCryptMode=\"1\"";
+ else if (favorite.TrueCryptMode == 0)
+ s += L" TrueCryptMode=\"0\"";
+
if (favorite.ReadOnly)
s += L" readonly=\"1\"";
@@ -871,6 +911,29 @@ namespace VeraCrypt
SetCheckBox (hwndDlg, IDC_FAVORITE_MOUNT_READONLY, favorite.ReadOnly);
SetCheckBox (hwndDlg, IDC_FAVORITE_MOUNT_REMOVABLE, favorite.Removable);
SetCheckBox (hwndDlg, IDC_FAVORITE_USE_VOLUME_ID, favorite.UseVolumeID && bIsDevice);
+ SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, (favorite.TrueCryptMode > 0)? TRUE : FALSE);
+
+ /* Populate the PRF algorithms list */
+ int nIndex, i, nSelected = 0;
+ HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
+ SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
+
+ nIndex = (int) SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
+ SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
+
+ for (i = FIRST_PRF_ID; i <= LAST_PRF_ID; i++)
+ {
+ if (!favorite.SystemEncryption || (favorite.TrueCryptMode != 1) || (i == RIPEMD160))
+ {
+ nIndex = (int) SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
+ SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+ if (favorite.Pkcs5 == i)
+ nSelected = nIndex;
+ }
+ }
+
+ if (favorite.Pkcs5 >= 0)
+ SendMessage (hComboBox, CB_SETCURSEL, nSelected, 0);
if (IsRepeatedByteArray (0, favorite.VolumeID, sizeof (favorite.VolumeID)) || !bIsDevice)
{
@@ -898,6 +961,9 @@ namespace VeraCrypt
EnableWindow (GetDlgItem (hwndDlg, IDC_FAVORITE_MOVE_UP), enable);
EnableWindow (GetDlgItem (hwndDlg, IDC_FAVORITE_MOVE_DOWN), enable);
EnableWindow (GetDlgItem (hwndDlg, IDC_FAVORITE_REMOVE), enable);
+ EnableWindow (GetDlgItem (hwndDlg, IDT_PKCS5_PRF), enable && !favorite.SystemEncryption);
+ EnableWindow (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), enable && !favorite.SystemEncryption);
+ EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), enable && !favorite.SystemEncryption);
EnableWindow (GetDlgItem (hwndDlg, IDT_PIM), enable);
EnableWindow (GetDlgItem (hwndDlg, IDC_PIM), enable);
EnableWindow (GetDlgItem (hwndDlg, IDC_SHOW_PIM), enable);
@@ -968,9 +1034,32 @@ namespace VeraCrypt
else
favorite.Label.clear();
- favorite.Pim = GetPim (hwndDlg, IDC_PIM);
+ favorite.Pim = GetPim (hwndDlg, IDC_PIM, -1);
favorite.UseLabelInExplorer = (IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_USE_LABEL_IN_EXPLORER) != 0);
favorite.UseVolumeID = (IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_USE_VOLUME_ID) != 0);
+ int nSelected = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0);
+ if (nSelected != CB_ERR)
+ favorite.Pkcs5 = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, nSelected, 0);
+ else
+ favorite.Pkcs5 = -1;
+ BOOL selectedTrueCryptMode = (IsDlgButtonChecked (hwndDlg, IDC_TRUECRYPT_MODE) != 0)? 1 : 0;
+ if ((favorite.TrueCryptMode >= 0) || selectedTrueCryptMode)
+ favorite.TrueCryptMode = selectedTrueCryptMode;
+
+ if (favorite.TrueCryptMode == 1)
+ {
+ if ((favorite.Pkcs5 > 0) && !is_pkcs5_prf_supported (favorite.Pkcs5, TRUE, favorite.SystemEncryption? PRF_BOOT_MBR : PRF_BOOT_NO))
+ {
+ Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
+ favorite.Pkcs5 = 0;
+ }
+
+ if (favorite.Pim > 0)
+ {
+ Error ("PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
+ favorite.Pim = 0;
+ }
+ }
favorite.ReadOnly = (IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_MOUNT_READONLY) != 0);
favorite.Removable = (IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_MOUNT_REMOVABLE) != 0);
diff --git a/src/Mount/Favorites.h b/src/Mount/Favorites.h
index acb9c8d..2823057 100644
--- a/src/Mount/Favorites.h
+++ b/src/Mount/Favorites.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -22,6 +22,8 @@ namespace VeraCrypt
FavoriteVolume()
:
Pim (0),
+ Pkcs5 (-1),
+ TrueCryptMode (-1),
DisableHotkeyMount (false),
DisconnectedDevice (false),
MountOnLogOn (false),
@@ -41,6 +43,8 @@ namespace VeraCrypt
wstring VolumePathId;
wstring Label;
int Pim;
+ int Pkcs5;
+ int TrueCryptMode;
BYTE VolumeID[VOLUME_ID_SIZE];
bool DisableHotkeyMount;
diff --git a/src/Mount/Hotkeys.c b/src/Mount/Hotkeys.c
index 007b2fb..9af4c62 100644
--- a/src/Mount/Hotkeys.c
+++ b/src/Mount/Hotkeys.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Mount/Hotkeys.h b/src/Mount/Hotkeys.h
index db26af0..731f954 100644
--- a/src/Mount/Hotkeys.h
+++ b/src/Mount/Hotkeys.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Mount/MainCom.cpp b/src/Mount/MainCom.cpp
index 6056697..eb1f592 100644
--- a/src/Mount/MainCom.cpp
+++ b/src/Mount/MainCom.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -188,11 +188,6 @@ public:
return BaseCom::GetEfiBootDeviceNumber (pSdn);
}
- virtual DWORD STDMETHODCALLTYPE ReadEfiConfig (BSTR* pContent, DWORD *pcbRead)
- {
- return BaseCom::ReadEfiConfig (pContent, pcbRead);
- }
-
virtual DWORD STDMETHODCALLTYPE WriteEfiBootSectorUserConfig (DWORD userConfig, BSTR customUserMessage, int pim, int hashAlg)
{
return BaseCom::WriteEfiBootSectorUserConfig (userConfig, customUserMessage,pim, hashAlg);
diff --git a/src/Mount/MainCom.h b/src/Mount/MainCom.h
index 7195e8e..88cd022 100644
--- a/src/Mount/MainCom.h
+++ b/src/Mount/MainCom.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Mount/MainCom.idl b/src/Mount/MainCom.idl
index 9c3ef37..a1ab3cd 100644
--- a/src/Mount/MainCom.idl
+++ b/src/Mount/MainCom.idl
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -16,7 +16,7 @@ import "..\Common\Password.h";
[
uuid(9ACF6176-5FC4-4690-A025-B3306A50EB6A),
helpstring("VeraCrypt Main UAC Support Library"),
- version(2.8) // Update ComSetup.cpp when changing version number
+ version(2.9) // Update ComSetup.cpp when changing version number
]
library TrueCryptMainCom
{
@@ -50,7 +50,6 @@ library TrueCryptMainCom
DWORD BackupEfiSystemLoader ();
DWORD RestoreEfiSystemLoader ();
DWORD GetEfiBootDeviceNumber (BSTR* pSdn);
- DWORD ReadEfiConfig (BSTR* pContent, DWORD *pcbRead);
DWORD WriteEfiBootSectorUserConfig (DWORD userConfig, BSTR customUserMessage, int pim, int hashAlg);
};
diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c
index fe4d560..6a7e135 100644
--- a/src/Mount/Mount.c
+++ b/src/Mount/Mount.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -51,6 +51,8 @@
#include <Strsafe.h>
+#import <msxml6.dll>
+
#include <wtsapi32.h>
typedef BOOL (WINAPI *WTSREGISTERSESSIONNOTIFICATION)(HWND, DWORD);
@@ -61,7 +63,8 @@ using namespace VeraCrypt;
enum timer_ids
{
TIMER_ID_MAIN = 0xff,
- TIMER_ID_KEYB_LAYOUT_GUARD
+ TIMER_ID_KEYB_LAYOUT_GUARD,
+ TIMER_ID_UPDATE_DEVICE_LIST
};
enum hidden_os_read_only_notif_mode
@@ -73,6 +76,7 @@ enum hidden_os_read_only_notif_mode
#define TIMER_INTERVAL_MAIN 500
#define TIMER_INTERVAL_KEYB_LAYOUT_GUARD 10
+#define TIMER_INTERVAL_UPDATE_DEVICE_LIST 1000
BootEncryption *BootEncObj = NULL;
BootEncryptionStatus BootEncStatus;
@@ -155,7 +159,7 @@ BOOL bKeybLayoutAltKeyWarningShown = FALSE; /* TRUE if the user has been informe
static KeyFilesDlgParam hidVolProtKeyFilesParam;
-static MOUNT_LIST_STRUCT LastKnownMountList;
+static MOUNT_LIST_STRUCT LastKnownMountList = {0};
VOLUME_NOTIFICATIONS_LIST VolumeNotificationsList;
static DWORD LastKnownLogicalDrives;
@@ -213,6 +217,125 @@ static void UnregisterWtsNotification(HWND hWnd)
}
}
+static std::vector<MSXML2::IXMLDOMNodePtr> GetReadChildNodes (MSXML2::IXMLDOMNodeListPtr childs)
+{
+ std::vector<MSXML2::IXMLDOMNodePtr> list;
+ if (childs && childs->Getlength())
+ {
+ for (long i = 0; i < childs->Getlength(); i++)
+ {
+ MSXML2::IXMLDOMNodePtr node = childs->Getitem(i);
+ if (node)
+ {
+ //skip comments
+ if (node->GetnodeType() == NODE_COMMENT)
+ continue;
+ // skip root xml node
+ if (node->GetbaseName().GetBSTR() && (0 == strcmp ("xml", (const char*) node->GetbaseName())))
+ continue;
+
+ list.push_back (node);
+ }
+ }
+ }
+
+ return list;
+}
+
+static bool validateDcsPropXml(const char* xmlData)
+{
+ bool bValid = false;
+ HRESULT hr = CoInitialize(NULL);
+ if(FAILED(hr))
+ return false;
+ else
+ {
+ MSXML2::IXMLDOMDocumentPtr pXMLDom;
+ hr= pXMLDom.CreateInstance(__uuidof(MSXML2::DOMDocument60), NULL, CLSCTX_INPROC_SERVER);
+ if (SUCCEEDED(hr))
+ {
+ try
+ {
+ pXMLDom->async = VARIANT_FALSE;
+ pXMLDom->validateOnParse = VARIANT_FALSE;
+ pXMLDom->resolveExternals = VARIANT_FALSE;
+
+ if(pXMLDom->loadXML(xmlData) == VARIANT_TRUE && pXMLDom->hasChildNodes())
+ {
+ MSXML2::IXMLDOMNodePtr veracryptNode, configurationNode, configNode;
+ std::vector<MSXML2::IXMLDOMNodePtr> nodes = GetReadChildNodes (pXMLDom->GetchildNodes());
+ size_t nodesCount = nodes.size();
+ if (nodesCount == 1
+ && ((veracryptNode = nodes[0])->GetnodeType() == NODE_ELEMENT)
+ && veracryptNode->GetnodeName().GetBSTR()
+ && (0 == strcmp ((const char*) veracryptNode->GetnodeName(), "VeraCrypt"))
+ && veracryptNode->hasChildNodes()
+
+ )
+ {
+ nodes = GetReadChildNodes (veracryptNode->GetchildNodes());
+ nodesCount = nodes.size();
+ if ((nodesCount == 1)
+ && ((configurationNode = nodes[0])->GetnodeType() == NODE_ELEMENT)
+ && configurationNode->GetnodeName().GetBSTR()
+ && (0 == strcmp ((const char*) configurationNode->GetnodeName(), "configuration"))
+ && (configurationNode->hasChildNodes())
+ )
+ {
+ nodes = GetReadChildNodes (configurationNode->GetchildNodes());
+ nodesCount = nodes.size();
+
+ if (nodesCount > 1)
+ {
+ bValid = true;
+ for (size_t i = 0; bValid && (i < nodesCount); i++)
+ {
+ configNode = nodes[i];
+ if (configNode->GetnodeType() == NODE_COMMENT)
+ continue;
+ else if ( (configNode->GetnodeType() == NODE_ELEMENT)
+ && (configNode->GetnodeName().GetBSTR())
+ && (0 == strcmp ((const char*) configNode->GetnodeName(), "config"))
+ )
+ {
+ nodes = GetReadChildNodes (configNode->GetchildNodes());
+ nodesCount = nodes.size();
+ if ((nodesCount == 0 || (nodesCount == 1 && nodes[0]->GetnodeType() == NODE_TEXT))
+ && configNode->Getattributes()
+ && (configNode->Getattributes()->Getlength() == 1)
+ && (configNode->Getattributes()->Getitem(0))
+ )
+ {
+ std::string val;
+ bstr_t bstr = configNode->Getattributes()->Getitem(0)->GetnodeName ();
+ if (bstr.GetBSTR())
+ val = (const char*) bstr;
+ if (val != "key")
+ bValid = false;
+ }
+ else
+ bValid = false;
+ }
+ else
+ bValid = false;
+ }
+ }
+ }
+ }
+ }
+ }
+ catch(_com_error errorObject)
+ {
+ bValid = false;
+ }
+ }
+ }
+
+ CoUninitialize();
+ return bValid;
+}
+
+
static void localcleanup (void)
{
// Wipe command line
@@ -290,6 +413,7 @@ void EndMainDlg (HWND hwndDlg)
else
{
KillTimer (hwndDlg, TIMER_ID_MAIN);
+ KillTimer (hwndDlg, TIMER_ID_UPDATE_DEVICE_LIST);
TaskBarIconRemove (hwndDlg);
UnregisterWtsNotification(hwndDlg);
EndDialog (hwndDlg, 0);
@@ -370,6 +494,9 @@ static void InitMainDialog (HWND hwndDlg)
e.Show (NULL);
}
+ // initialize the list of devices available for mounting as early as possible
+ UpdateMountableHostDeviceList ();
+
// Resize the logo bitmap if the user has a non-default DPI
if (ScreenDPI != USER_DEFAULT_SCREEN_DPI
&& hbmLogoBitmapRescaled == NULL) // If not re-called (e.g. after language pack change)
@@ -721,6 +848,8 @@ void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL*
ConfigReadCompareInt ("HideWaitingDialog", FALSE, &bHideWaitingDialog, bOnlyCheckModified, pbSettingsModified);
+ ConfigReadCompareInt ("UseSecureDesktop", FALSE, &bUseSecureDesktop, bOnlyCheckModified, pbSettingsModified);
+
ConfigReadCompareInt ("MountVolumesRemovable", FALSE, &defaultMountOptions.Removable, bOnlyCheckModified, pbSettingsModified);
ConfigReadCompareInt ("MountVolumesReadOnly", FALSE, &defaultMountOptions.ReadOnly, bOnlyCheckModified, pbSettingsModified);
@@ -878,6 +1007,7 @@ void SaveSettings (HWND hwndDlg)
ConfigWriteInt ("PreserveTimestamps", defaultMountOptions.PreserveTimestamp);
ConfigWriteInt ("ShowDisconnectedNetworkDrives",bShowDisconnectedNetworkDrives);
ConfigWriteInt ("HideWaitingDialog", bHideWaitingDialog);
+ ConfigWriteInt ("UseSecureDesktop", bUseSecureDesktop);
ConfigWriteInt ("EnableBackgroundTask", bEnableBkgTask);
ConfigWriteInt ("CloseBackgroundTaskOnNoVolumes", bCloseBkgTaskWhenNoVolumes);
@@ -1476,9 +1606,10 @@ void LoadDriveLetters (HWND hwndDlg, HWND hTree, int drive)
NULL);
memcpy (&LastKnownMountList, &driver, sizeof (driver));
- if (bResult == FALSE)
+ if ((bResult == FALSE) || (driver.ulMountedDrives >= (1 << 26)))
{
KillTimer (MainDlg, TIMER_ID_MAIN);
+ KillTimer (hwndDlg, TIMER_ID_UPDATE_DEVICE_LIST);
handleWin32Error (hTree, SRC_POS);
AbortProcessSilent();
}
@@ -1612,7 +1743,7 @@ void LoadDriveLetters (HWND hwndDlg, HWND hTree, int drive)
curDrive = HIWORD(tmp.lParam);
}
- if (driver.ulMountedDrives & (1 << i)
+ if (((driver.ulMountedDrives & (1 << i)) && (IsNullTerminateString (driver.wszVolume[i], TC_MAX_PATH)))
|| bSysEncPartition)
{
wchar_t szTmp[1024];
@@ -2306,7 +2437,7 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
if (lw == IDC_PIM)
{
- if(GetPim (hwndDlg, IDC_OLD_PIM) != GetPim (hwndDlg, IDC_PIM))
+ if(GetPim (hwndDlg, IDC_OLD_PIM, 0) != GetPim (hwndDlg, IDC_PIM, 0))
{
PimValueChangedWarning = TRUE;
SetDlgItemTextW (hwndDlg, IDC_PIM_HELP, GetString (bSysEncPwdChangeDlgMode? "PIM_SYSENC_CHANGE_WARNING" : "PIM_CHANGE_WARNING"));
@@ -2503,10 +2634,10 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
BOOL truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
- int old_pim = GetPim (hwndDlg, IDC_OLD_PIM);
- int pim = GetPim (hwndDlg, IDC_PIM);
+ int old_pim = GetPim (hwndDlg, IDC_OLD_PIM, 0);
+ int pim = GetPim (hwndDlg, IDC_PIM, 0);
- if (truecryptMode && (old_pkcs5 == SHA256))
+ if (truecryptMode && !is_pkcs5_prf_supported (old_pkcs5, TRUE, PRF_BOOT_NO))
{
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
return 1;
@@ -2544,7 +2675,19 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
else if (!(newKeyFilesParam.EnableKeyFiles && newKeyFilesParam.FirstKeyFile != NULL)
&& pwdChangeDlgMode == PCDM_CHANGE_PASSWORD)
{
- if (!CheckPasswordLength (hwndDlg, GetWindowTextLength(GetDlgItem (hwndDlg, IDC_PASSWORD)), pim, bSysEncPwdChangeDlgMode, FALSE, FALSE))
+ int bootPRF = 0;
+ if (bSysEncPwdChangeDlgMode)
+ {
+ try
+ {
+ VOLUME_PROPERTIES_STRUCT properties;
+ BootEncObj->GetVolumeProperties(&properties);
+ bootPRF = properties.pkcs5;
+ }
+ catch(...)
+ {}
+ }
+ if (!CheckPasswordLength (hwndDlg, GetWindowTextLength(GetDlgItem (hwndDlg, IDC_PASSWORD)), pim, bSysEncPwdChangeDlgMode, bootPRF, FALSE, FALSE))
return 1;
}
@@ -2971,11 +3114,11 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
*pkcs5 = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
*truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
- *pim = GetPim (hwndDlg, IDC_PIM);
+ *pim = GetPim (hwndDlg, IDC_PIM, 0);
- /* SHA-256 is not supported by TrueCrypt */
+ /* check that PRF is supported in TrueCrypt Mode */
if ( (*truecryptMode)
- && ((*pkcs5 == SHA256) || (mountOptions.ProtectHiddenVolume && mountOptions.ProtectedHidVolPkcs5Prf == SHA256))
+ && ((!is_pkcs5_prf_supported (*pkcs5, TRUE, PRF_BOOT_NO)) || (mountOptions.ProtectHiddenVolume && !is_pkcs5_prf_supported (mountOptions.ProtectedHidVolPkcs5Prf, TRUE, PRF_BOOT_NO)))
)
{
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
@@ -3132,6 +3275,9 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
SendMessage (GetDlgItem (hwndDlg, IDC_HIDE_WAITING_DIALOG), BM_SETCHECK,
bHideWaitingDialog ? BST_CHECKED:BST_UNCHECKED, 0);
+ SendMessage (GetDlgItem (hwndDlg, IDC_SECURE_DESKTOP_PASSWORD_ENTRY), BM_SETCHECK,
+ bUseSecureDesktop ? BST_CHECKED:BST_UNCHECKED, 0);
+
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT), BM_SETCHECK,
bCacheDuringMultipleMount ? BST_CHECKED:BST_UNCHECKED, 0);
@@ -3247,6 +3393,7 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PRESERVE_TIMESTAMPS));
bShowDisconnectedNetworkDrives = IsButtonChecked (GetDlgItem (hwndDlg, IDC_SHOW_DISCONNECTED_NETWORK_DRIVES));
bHideWaitingDialog = IsButtonChecked (GetDlgItem (hwndDlg, IDC_HIDE_WAITING_DIALOG));
+ bUseSecureDesktop = IsButtonChecked (GetDlgItem (hwndDlg, IDC_SECURE_DESKTOP_PASSWORD_ENTRY));
bCacheDuringMultipleMount = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT));
bWipeCacheOnExit = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_EXIT));
bWipeCacheOnAutoDismount = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT));
@@ -3297,7 +3444,7 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
int menuItem = TrackPopupMenu (popup, TPM_RETURNCMD | TPM_LEFTBUTTON, rect.left + 2, rect.top + 2, 0, hwndDlg, NULL);
DestroyMenu (popup);
- SendMessage (MainDlg, WM_COMMAND, menuItem, NULL);
+ SendMessage (MainDlg, WM_COMMAND, menuItem, (LPARAM) hwndDlg);
return 1;
}
else
@@ -3480,7 +3627,7 @@ BOOL CALLBACK MountOptionsDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
if (lw == IDC_LINK_HIDVOL_PROTECTION_INFO)
{
- Applink ("hiddenvolprotection", TRUE, "");
+ Applink ("hiddenvolprotection");
}
if (lw == IDCANCEL)
@@ -3519,7 +3666,7 @@ BOOL CALLBACK MountOptionsDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
mountOptions->ProtectedHidVolPkcs5Prf = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA,
SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
- mountOptions->ProtectedHidVolPim = GetPim (hwndDlg, IDC_PIM);
+ mountOptions->ProtectedHidVolPim = GetPim (hwndDlg, IDC_PIM, 0);
}
// Cleanup
@@ -4348,8 +4495,14 @@ BOOL CALLBACK TravelerDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
if (strcmp (GetPreferredLangId (), "en") != 0)
{
// Language pack
- StringCbPrintfW (srcPath, sizeof(srcPath), L"%s\\Language.%hs.xml", appDir, GetPreferredLangId ());
- StringCbPrintfW (dstPath, sizeof(dstPath), L"%s\\VeraCrypt\\Language.%hs.xml", dstDir, GetPreferredLangId ());
+ StringCbPrintfW (dstPath, sizeof(dstPath), L"%s\\VeraCrypt\\Languages", dstDir);
+ if (!CreateDirectoryW (dstPath, NULL))
+ {
+ handleWin32Error (hwndDlg, SRC_POS);
+ goto stop;
+ }
+ StringCbPrintfW (srcPath, sizeof(srcPath), L"%s\\Languages\\Language.%hs.xml", appDir, GetPreferredLangId ());
+ StringCbPrintfW (dstPath, sizeof(dstPath), L"%s\\VeraCrypt\\Languages\\Language.%hs.xml", dstDir, GetPreferredLangId ());
TCCopyFile (srcPath, dstPath);
}
@@ -4537,7 +4690,7 @@ static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, int
dlgParam.pim = pim;
dlgParam.truecryptMode = truecryptMode;
- result = DialogBoxParamW (hInst,
+ result = SecureDesktopDialogBoxParam (hInst,
MAKEINTRESOURCEW (IDD_PASSWORD_DLG), hwndDlg,
(DLGPROC) PasswordDlgProc, (LPARAM) &dlgParam);
@@ -4556,25 +4709,44 @@ static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, int
// GUI actions
-static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim)
+static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim, int pkcs5, int trueCryptMode)
{
BOOL status = FALSE;
wchar_t fileName[MAX_PATH];
- int mounted = 0, EffectiveVolumePkcs5 = CmdVolumePkcs5;
- BOOL EffectiveVolumeTrueCryptMode = CmdVolumeTrueCryptMode;
+ int mounted = 0, EffectiveVolumePkcs5 = 0;
+ BOOL EffectiveVolumeTrueCryptMode = FALSE;
int EffectiveVolumePim = (pim < 0)? CmdVolumePim : pim;
BOOL bEffectiveCacheDuringMultipleMount = bCmdCacheDuringMultipleMount? TRUE: bCacheDuringMultipleMount;
BOOL bEffectiveTryEmptyPasswordWhenKeyfileUsed = bCmdTryEmptyPasswordWhenKeyfileUsedValid? bCmdTryEmptyPasswordWhenKeyfileUsed : bTryEmptyPasswordWhenKeyfileUsed;
BOOL bUseCmdVolumePassword = CmdVolumePasswordValid && ((CmdVolumePassword.Length > 0) || (KeyFilesEnable && FirstKeyFile));
- /* Priority is given to command line parameters
- * Default values used only when nothing specified in command line
+ /* Priority is given to arguments and command line parameters
+ * Default values used only when nothing specified
*/
- if (EffectiveVolumePkcs5 == 0)
+ if (pkcs5 > 0)
+ EffectiveVolumePkcs5 = pkcs5;
+ else if (CmdVolumePkcs5 > 0)
+ EffectiveVolumePkcs5 = CmdVolumePkcs5;
+ else
EffectiveVolumePkcs5 = DefaultVolumePkcs5;
- if (!EffectiveVolumeTrueCryptMode)
+
+ if (trueCryptMode >= 0)
+ EffectiveVolumeTrueCryptMode = (trueCryptMode == 0)? FALSE : TRUE;
+ else if (CmdVolumeTrueCryptMode)
+ EffectiveVolumeTrueCryptMode = TRUE;
+ else
EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
+ if (EffectiveVolumeTrueCryptMode)
+ {
+ /* No PIM Mode if TrueCrypt Mode specified */
+ EffectiveVolumePim = 0;
+
+ /* valdate the effective PRF is compatible with TrueCrypt Mode */
+ if (!is_pkcs5_prf_supported (EffectiveVolumePkcs5, TRUE, mountOptions.PartitionInInactiveSysEncScope? PRF_BOOT_MBR : PRF_BOOT_NO))
+ EffectiveVolumePkcs5 = 0;
+ }
+
bPrebootPasswordDlgMode = mountOptions.PartitionInInactiveSysEncScope;
if (nDosDriveNo == -1)
@@ -4632,11 +4804,10 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim)
if (!bUseCmdVolumePassword)
{
// First try cached passwords and if they fail ask user for a new one
- // try TrueCrypt mode first since it is quick, only if no custom pim specified
- if (EffectiveVolumePim <= 0)
- mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, 0, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
- if (!mounted)
- mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, 0, EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
+ if (EffectiveVolumeTrueCryptMode)
+ mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, EffectiveVolumePkcs5, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
+ else
+ mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, EffectiveVolumePkcs5, EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
// If keyfiles are enabled, test empty password first
if (!mounted && KeyFilesEnable && FirstKeyFile && bEffectiveTryEmptyPasswordWhenKeyfileUsed)
@@ -4644,11 +4815,11 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim)
Password emptyPassword = {0};
KeyFilesApply (hwndDlg, &emptyPassword, FirstKeyFile, szFileName);
- // try TrueCrypt mode first since it is quick, only if no custom pim specified
- if (EffectiveVolumePim <= 0)
- mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, 0, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
- if (!mounted)
- mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, 0, EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
+
+ if (EffectiveVolumeTrueCryptMode)
+ mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, EffectiveVolumePkcs5, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
+ else
+ mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, EffectiveVolumePkcs5, EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
burn (&emptyPassword, sizeof (emptyPassword));
}
@@ -4658,10 +4829,10 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim)
if (!mounted && bEffectiveCacheDuringMultipleMount && MultipleMountOperationInProgress && VolumePassword.Length != 0)
{
// try TrueCrypt mode first as it is quick, only if no custom pim specified
- if (EffectiveVolumePim <= 0)
- mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, 0, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
- if (!mounted)
- mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, 0, EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
+ if (EffectiveVolumeTrueCryptMode)
+ mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, EffectiveVolumePkcs5, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
+ else // if no PIM specified for favorite, we use also the PIM of the previous volume alongside its password.
+ mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, EffectiveVolumePkcs5, (EffectiveVolumePim < 0)? VolumePim : EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
}
NormalCursor ();
@@ -4811,7 +4982,7 @@ void __cdecl mountThreadFunction (void *hwndDlgArg)
EnableWindow(hwndDlg, FALSE);
finally_do_arg2 (HWND, hwndDlg, BOOL, bIsForeground, { EnableWindow(finally_arg, TRUE); if (finally_arg2) BringToForeground (finally_arg); bPrebootPasswordDlgMode = FALSE;});
- Mount (hwndDlg, -1, 0, -1);
+ Mount (hwndDlg, -1, 0, -1, -1, -1);
}
typedef struct
@@ -4903,12 +5074,12 @@ static BOOL DismountAll (HWND hwndDlg, BOOL forceUnmount, BOOL interact, int dis
retry:
WaitCursor();
- DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mountList, sizeof (mountList), &mountList, sizeof (mountList), &dwResult, NULL);
+ status = DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mountList, sizeof (mountList), &mountList, sizeof (mountList), &dwResult, NULL);
- if (mountList.ulMountedDrives == 0)
+ if (!status || (mountList.ulMountedDrives == 0) || (mountList.ulMountedDrives >= (1 << 26)))
{
NormalCursor();
- return TRUE;
+ return status && (mountList.ulMountedDrives == 0)? TRUE : FALSE;
}
BroadcastDeviceChange (DBT_DEVICEREMOVEPENDING, 0, mountList.ulMountedDrives);
@@ -4950,14 +5121,20 @@ retry:
return FALSE;
memset (&mountList, 0, sizeof (mountList));
- DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mountList, sizeof (mountList), &mountList, sizeof (mountList), &dwResult, NULL);
-
- // remove any custom label from registry
- for (i = 0; i < 26; i++)
+ if ( DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, &mountList, sizeof (mountList), &mountList, sizeof (mountList), &dwResult, NULL)
+ && (mountList.ulMountedDrives < (1 << 26))
+ )
{
- if ((prevMountList.ulMountedDrives & (1 << i)) && (!(mountList.ulMountedDrives & (1 << i))) && wcslen (prevMountList.wszLabel[i]))
+ // remove any custom label from registry
+ if (prevMountList.ulMountedDrives)
{
- UpdateDriveCustomLabel (i, prevMountList.wszLabel[i], FALSE);
+ for (i = 0; i < 26; i++)
+ {
+ if ((prevMountList.ulMountedDrives & (1 << i)) && (!(mountList.ulMountedDrives & (1 << i))) && IsNullTerminateString (prevMountList.wszLabel[i], 33) && wcslen (prevMountList.wszLabel[i]))
+ {
+ UpdateDriveCustomLabel (i, prevMountList.wszLabel[i], FALSE);
+ }
+ }
}
}
@@ -4986,14 +5163,18 @@ retry:
if (IsOSAtLeast (WIN_7))
{
// Undo SHCNE_DRIVEREMOVED
- DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, NULL, 0, &mountList, sizeof (mountList), &dwResult, NULL);
-
- for (i = 0; i < 26; i++)
+ if ( DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, NULL, 0, &mountList, sizeof (mountList), &dwResult, NULL)
+ && mountList.ulMountedDrives
+ && (mountList.ulMountedDrives < (1 << 26))
+ )
{
- if (mountList.ulMountedDrives & (1 << i))
+ for (i = 0; i < 26; i++)
{
- wchar_t root[] = { (wchar_t) i + L'A', L':', L'\\', 0 };
- SHChangeNotify (SHCNE_DRIVEADD, SHCNF_PATH, root, NULL);
+ if (mountList.ulMountedDrives & (1 << i))
+ {
+ wchar_t root[] = { (wchar_t) i + L'A', L':', L'\\', 0 };
+ SHChangeNotify (SHCNE_DRIVEADD, SHCNF_PATH, root, NULL);
+ }
}
}
}
@@ -6041,12 +6222,15 @@ static void Benchmark (HWND hwndDlg)
static BOOL CheckMountList (HWND hwndDlg, BOOL bForceTaskBarUpdate)
{
- MOUNT_LIST_STRUCT current;
+ MOUNT_LIST_STRUCT current = {0};
static BootEncryptionStatus newBootEncStatus;
static BOOL lastbUseDifferentTrayIconIfVolMounted = bUseDifferentTrayIconIfVolMounted;
static uint32 lastUlMountedDrives = 0;
- GetMountList (&current);
+ if (!GetMountList (&current))
+ {
+ return bForceTaskBarUpdate;
+ }
if ((bForceTaskBarUpdate || current.ulMountedDrives != lastUlMountedDrives || bUseDifferentTrayIconIfVolMounted != lastbUseDifferentTrayIconIfVolMounted)
&& TaskBarIconMutex != NULL)
@@ -6422,6 +6606,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = TRUE;
bShowDisconnectedNetworkDrives = FALSE;
bHideWaitingDialog = FALSE;
+ bUseSecureDesktop = FALSE;
ResetWrongPwdRetryCount ();
@@ -6694,7 +6879,9 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
DWORD bytesReturned;
if (DeviceIoControl (hDriver, TC_IOCTL_GET_MOUNTED_VOLUMES, NULL, 0, &mountList, sizeof (mountList), &bytesReturned, NULL)
+ && ((mountList.ulMountedDrives < (1 << 26))
&& (mountList.ulMountedDrives & (1 << cmdUnmountDrive)) == 0)
+ )
{
Error ("NO_VOLUME_MOUNTED_TO_DRIVE", hwndDlg);
exitCode = 1;
@@ -6773,6 +6960,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
GetMountList (&LastKnownMountList);
SetTimer (hwndDlg, TIMER_ID_MAIN, TIMER_INTERVAL_MAIN, NULL);
+ SetTimer (hwndDlg, TIMER_ID_UPDATE_DEVICE_LIST, TIMER_INTERVAL_UPDATE_DEVICE_LIST, NULL);
taskBarCreatedMsg = RegisterWindowMessage (L"TaskbarCreated");
@@ -6929,197 +7117,204 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
case WM_TIMER:
{
- // Check mount list and update GUI if needed
- CheckMountList (hwndDlg, FALSE);
-
- // Cache status
- if (IsPasswordCacheEmpty() == IsWindowEnabled (GetDlgItem (hwndDlg, IDC_WIPE_CACHE)))
- EnableWindow (GetDlgItem (hwndDlg, IDC_WIPE_CACHE), !IsPasswordCacheEmpty());
-
- // Check driver warning flags
- DWORD bytesOut;
- GetWarningFlagsRequest warnings;
- if (DeviceIoControl (hDriver, TC_IOCTL_GET_WARNING_FLAGS, NULL, 0, &warnings, sizeof (warnings), &bytesOut, NULL))
+ if (wParam == TIMER_ID_UPDATE_DEVICE_LIST)
{
- if (warnings.SystemFavoriteVolumeDirty)
- WarningTopMost ("SYS_FAVORITE_VOLUME_DIRTY", hwndDlg);
-
- if (warnings.PagingFileCreationPrevented)
- WarningTopMost ("PAGING_FILE_CREATION_PREVENTED", hwndDlg);
+ UpdateMountableHostDeviceList ();
}
-
- if (TaskBarIconMutex != NULL)
+ else
{
+ // Check mount list and update GUI if needed
+ CheckMountList (hwndDlg, FALSE);
- // Idle auto-dismount
- if (MaxVolumeIdleTime > 0)
- DismountIdleVolumes ();
+ // Cache status
+ if (IsPasswordCacheEmpty() == IsWindowEnabled (GetDlgItem (hwndDlg, IDC_WIPE_CACHE)))
+ EnableWindow (GetDlgItem (hwndDlg, IDC_WIPE_CACHE), !IsPasswordCacheEmpty());
- // Screen saver auto-dismount
- if (bDismountOnScreenSaver)
+ // Check driver warning flags
+ DWORD bytesOut;
+ GetWarningFlagsRequest warnings;
+ if (DeviceIoControl (hDriver, TC_IOCTL_GET_WARNING_FLAGS, NULL, 0, &warnings, sizeof (warnings), &bytesOut, NULL))
{
- static BOOL previousState = FALSE;
- BOOL running = FALSE;
- SystemParametersInfo (SPI_GETSCREENSAVERRUNNING, 0, &running, 0);
-
- if (running && !previousState)
- {
- DWORD dwResult;
- previousState = TRUE;
-
- if (bWipeCacheOnAutoDismount)
- {
- DeviceIoControl (hDriver, TC_IOCTL_WIPE_PASSWORD_CACHE, NULL, 0, NULL, 0, &dwResult, NULL);
- SecurityToken::CloseAllSessions();
- }
+ if (warnings.SystemFavoriteVolumeDirty)
+ WarningTopMost ("SYS_FAVORITE_VOLUME_DIRTY", hwndDlg);
- DismountAll (hwndDlg, bForceAutoDismount, FALSE, UNMOUNT_MAX_AUTO_RETRIES, UNMOUNT_AUTO_RETRY_DELAY);
- }
- else
- {
- previousState = running;
- }
+ if (warnings.PagingFileCreationPrevented)
+ WarningTopMost ("PAGING_FILE_CREATION_PREVENTED", hwndDlg);
}
- // Auto-mount favorite volumes on arrival
-#if TIMER_INTERVAL_MAIN != 500
-#error TIMER_INTERVAL_MAIN != 500
-#endif
- static int favoritesAutoMountTimerDivisor = 0;
- if ((++favoritesAutoMountTimerDivisor & 1) && !FavoritesOnArrivalMountRequired.empty())
+ if (TaskBarIconMutex != NULL)
{
- static bool reentry = false;
- if (reentry)
- break;
- reentry = true;
+ // Idle auto-dismount
+ if (MaxVolumeIdleTime > 0)
+ DismountIdleVolumes ();
- foreach (FavoriteVolume favorite, FavoritesOnArrivalMountRequired)
+ // Screen saver auto-dismount
+ if (bDismountOnScreenSaver)
{
- if (favorite.UseVolumeID)
+ static BOOL previousState = FALSE;
+ BOOL running = FALSE;
+ SystemParametersInfo (SPI_GETSCREENSAVERRUNNING, 0, &running, 0);
+
+ if (running && !previousState)
{
- if (IsMountedVolumeID (favorite.VolumeID))
- continue;
+ DWORD dwResult;
+ previousState = TRUE;
- std::wstring volDevPath = FindDeviceByVolumeID (favorite.VolumeID);
- if (volDevPath.length() > 0)
+ if (bWipeCacheOnAutoDismount)
{
- favorite.Path = volDevPath;
- favorite.DisconnectedDevice = false;
+ DeviceIoControl (hDriver, TC_IOCTL_WIPE_PASSWORD_CACHE, NULL, 0, NULL, 0, &dwResult, NULL);
+ SecurityToken::CloseAllSessions();
}
- else
- continue;
- }
- else if (!favorite.VolumePathId.empty())
- {
- if (IsMountedVolume (favorite.Path.c_str()))
- continue;
-
- wchar_t volDevPath[TC_MAX_PATH];
- if (QueryDosDevice (favorite.VolumePathId.substr (4, favorite.VolumePathId.size() - 5).c_str(), volDevPath, TC_MAX_PATH) == 0)
- continue;
- favorite.DisconnectedDevice = false;
+ DismountAll (hwndDlg, bForceAutoDismount, FALSE, UNMOUNT_MAX_AUTO_RETRIES, UNMOUNT_AUTO_RETRY_DELAY);
}
- else if (favorite.Path.find (L"\\\\?\\Volume{") == 0)
+ else
{
- wstring resolvedPath = VolumeGuidPathToDevicePath (favorite.Path);
- if (resolvedPath.empty())
- continue;
-
- favorite.DisconnectedDevice = false;
- favorite.VolumePathId = favorite.Path;
- favorite.Path = resolvedPath;
+ previousState = running;
}
+ }
- if (IsMountedVolume (favorite.Path.c_str()))
- continue;
+ // Auto-mount favorite volumes on arrival
+ #if TIMER_INTERVAL_MAIN != 500
+ #error TIMER_INTERVAL_MAIN != 500
+ #endif
+ static int favoritesAutoMountTimerDivisor = 0;
+ if ((++favoritesAutoMountTimerDivisor & 1) && !FavoritesOnArrivalMountRequired.empty())
+ {
+ static bool reentry = false;
+ if (reentry)
+ break;
- if (!IsVolumeDeviceHosted (favorite.Path.c_str()))
- {
- if (!FileExists (favorite.Path.c_str()))
- continue;
- }
- else if (favorite.VolumePathId.empty())
- continue;
+ reentry = true;
- bool mountedAndNotDisconnected = false;
- foreach (FavoriteVolume mountedFavorite, FavoritesMountedOnArrivalStillConnected)
+ foreach (FavoriteVolume favorite, FavoritesOnArrivalMountRequired)
{
- if (favorite.Path == mountedFavorite.Path)
+ if (favorite.UseVolumeID)
{
- mountedAndNotDisconnected = true;
- break;
+ if (IsMountedVolumeID (favorite.VolumeID))
+ continue;
+
+ std::wstring volDevPath = FindDeviceByVolumeID (favorite.VolumeID);
+ if (volDevPath.length() > 0)
+ {
+ favorite.Path = volDevPath;
+ favorite.DisconnectedDevice = false;
+ }
+ else
+ continue;
}
- }
+ else if (!favorite.VolumePathId.empty())
+ {
+ if (IsMountedVolume (favorite.Path.c_str()))
+ continue;
- if (!mountedAndNotDisconnected)
- {
- FavoriteMountOnArrivalInProgress = TRUE;
- MountFavoriteVolumes (hwndDlg, FALSE, FALSE, FALSE, favorite);
- FavoriteMountOnArrivalInProgress = FALSE;
+ wchar_t volDevPath[TC_MAX_PATH];
+ if (QueryDosDevice (favorite.VolumePathId.substr (4, favorite.VolumePathId.size() - 5).c_str(), volDevPath, TC_MAX_PATH) == 0)
+ continue;
- FavoritesMountedOnArrivalStillConnected.push_back (favorite);
- }
- }
+ favorite.DisconnectedDevice = false;
+ }
+ else if (favorite.Path.find (L"\\\\?\\Volume{") == 0)
+ {
+ wstring resolvedPath = VolumeGuidPathToDevicePath (favorite.Path);
+ if (resolvedPath.empty())
+ continue;
- bool deleted;
- for (list <FavoriteVolume>::iterator favorite = FavoritesMountedOnArrivalStillConnected.begin();
- favorite != FavoritesMountedOnArrivalStillConnected.end();
- deleted ? favorite : ++favorite)
- {
- deleted = false;
+ favorite.DisconnectedDevice = false;
+ favorite.VolumePathId = favorite.Path;
+ favorite.Path = resolvedPath;
+ }
- if (IsMountedVolume (favorite->Path.c_str()))
- continue;
+ if (IsMountedVolume (favorite.Path.c_str()))
+ continue;
- if (!IsVolumeDeviceHosted (favorite->Path.c_str()))
- {
- if (FileExists (favorite->Path.c_str()))
+ if (!IsVolumeDeviceHosted (favorite.Path.c_str()))
+ {
+ if (!FileExists (favorite.Path.c_str()))
+ continue;
+ }
+ else if (favorite.VolumePathId.empty())
continue;
- }
- wchar_t volDevPath[TC_MAX_PATH];
- if (favorite->VolumePathId.size() > 5
- && QueryDosDevice (favorite->VolumePathId.substr (4, favorite->VolumePathId.size() - 5).c_str(), volDevPath, TC_MAX_PATH) != 0)
- {
- continue;
+ bool mountedAndNotDisconnected = false;
+ foreach (FavoriteVolume mountedFavorite, FavoritesMountedOnArrivalStillConnected)
+ {
+ if (favorite.Path == mountedFavorite.Path)
+ {
+ mountedAndNotDisconnected = true;
+ break;
+ }
+ }
+
+ if (!mountedAndNotDisconnected)
+ {
+ FavoriteMountOnArrivalInProgress = TRUE;
+ MountFavoriteVolumes (hwndDlg, FALSE, FALSE, FALSE, favorite);
+ FavoriteMountOnArrivalInProgress = FALSE;
+
+ FavoritesMountedOnArrivalStillConnected.push_back (favorite);
+ }
}
- // set DisconnectedDevice field on FavoritesOnArrivalMountRequired element
- foreach (FavoriteVolume onArrivalFavorite, FavoritesOnArrivalMountRequired)
+ bool deleted;
+ for (list <FavoriteVolume>::iterator favorite = FavoritesMountedOnArrivalStillConnected.begin();
+ favorite != FavoritesMountedOnArrivalStillConnected.end();
+ deleted ? favorite : ++favorite)
{
- if (onArrivalFavorite.Path == favorite->Path)
+ deleted = false;
+
+ if (IsMountedVolume (favorite->Path.c_str()))
+ continue;
+
+ if (!IsVolumeDeviceHosted (favorite->Path.c_str()))
{
- onArrivalFavorite.DisconnectedDevice = true;
- break;
+ if (FileExists (favorite->Path.c_str()))
+ continue;
+ }
+
+ wchar_t volDevPath[TC_MAX_PATH];
+ if (favorite->VolumePathId.size() > 5
+ && QueryDosDevice (favorite->VolumePathId.substr (4, favorite->VolumePathId.size() - 5).c_str(), volDevPath, TC_MAX_PATH) != 0)
+ {
+ continue;
}
+
+ // set DisconnectedDevice field on FavoritesOnArrivalMountRequired element
+ foreach (FavoriteVolume onArrivalFavorite, FavoritesOnArrivalMountRequired)
+ {
+ if (onArrivalFavorite.Path == favorite->Path)
+ {
+ onArrivalFavorite.DisconnectedDevice = true;
+ break;
+ }
+ }
+
+ favorite = FavoritesMountedOnArrivalStillConnected.erase (favorite);
+ deleted = true;
}
- favorite = FavoritesMountedOnArrivalStillConnected.erase (favorite);
- deleted = true;
+ reentry = false;
}
-
- reentry = false;
}
- }
- // Exit background process in non-install mode or if no volume mounted
- // and no other instance active
- if (LastKnownMountList.ulMountedDrives == 0
- && MainWindowHidden
-#ifndef _DEBUG
- && (bCloseBkgTaskWhenNoVolumes || IsNonInstallMode ())
- && !SysEncDeviceActive (TRUE)
-#endif
- && GetDriverRefCount () < 2)
- {
- TaskBarIconRemove (hwndDlg);
- UnregisterWtsNotification(hwndDlg);
- EndMainDlg (hwndDlg);
+ // Exit background process in non-install mode or if no volume mounted
+ // and no other instance active
+ if (LastKnownMountList.ulMountedDrives == 0
+ && MainWindowHidden
+ #ifndef _DEBUG
+ && (bCloseBkgTaskWhenNoVolumes || IsNonInstallMode ())
+ && !SysEncDeviceActive (TRUE)
+ #endif
+ && GetDriverRefCount () < 2)
+ {
+ TaskBarIconRemove (hwndDlg);
+ UnregisterWtsNotification(hwndDlg);
+ EndMainDlg (hwndDlg);
+ }
}
- }
- return 1;
+ return 1;
+ }
case TC_APPMSG_TASKBAR_ICON:
{
@@ -7161,7 +7356,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
{
for (i = 0; i < 26; i++)
{
- if (LastKnownMountList.ulMountedDrives & (1 << i))
+ if ((LastKnownMountList.ulMountedDrives & (1 << i)) && IsNullTerminateString (LastKnownMountList.wszVolume[i], TC_MAX_PATH))
{
wchar_t s[1024];
wchar_t *vol = (wchar_t *) LastKnownMountList.wszVolume[i];
@@ -7170,7 +7365,9 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
// first check label used for mounting. If empty, look for it in favorites.
bool useInExplorer = false;
- wstring label = (wchar_t *) LastKnownMountList.wszLabel[i];
+ wstring label;
+ if (IsNullTerminateString (LastKnownMountList.wszLabel[i], 33))
+ label = (wchar_t *) LastKnownMountList.wszLabel[i];
if (label.empty())
label = GetFavoriteVolumeLabel (vol, useInExplorer);
@@ -7227,7 +7424,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
}
else if (sel == IDM_HOMEPAGE_SYSTRAY)
{
- Applink ("home", TRUE, "");
+ Applink ("home");
}
else if (sel == IDCANCEL)
{
@@ -7280,56 +7477,57 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
PDEV_BROADCAST_HDR hdr = (PDEV_BROADCAST_HDR) lParam;
int m;
- GetMountList (&LastKnownMountList);
-
- if (wParam == DBT_DEVICEREMOVECOMPLETE && hdr->dbch_devicetype == DBT_DEVTYP_VOLUME)
+ if (GetMountList (&LastKnownMountList))
{
- // File-hosted volumes
- PDEV_BROADCAST_VOLUME vol = (PDEV_BROADCAST_VOLUME) lParam;
- int i;
-
- for (i = 0; i < 26; i++)
+ if (wParam == DBT_DEVICEREMOVECOMPLETE && hdr->dbch_devicetype == DBT_DEVTYP_VOLUME)
{
- if ((vol->dbcv_unitmask & (1 << i)) && !(GetUsedLogicalDrives() & (1 << i)))
+ // File-hosted volumes
+ PDEV_BROADCAST_VOLUME vol = (PDEV_BROADCAST_VOLUME) lParam;
+ int i;
+
+ for (i = 0; i < 26; i++)
{
- for (m = 0; m < 26; m++)
+ if (LastKnownMountList.ulMountedDrives && (vol->dbcv_unitmask & (1 << i)) && !(GetUsedLogicalDrives() & (1 << i)))
{
- if (LastKnownMountList.ulMountedDrives & (1 << m))
+ for (m = 0; m < 26; m++)
{
- wchar_t *vol = (wchar_t *) LastKnownMountList.wszVolume[m];
+ if ((LastKnownMountList.ulMountedDrives & (1 << m)) && IsNullTerminateString (LastKnownMountList.wszVolume[m], TC_MAX_PATH))
+ {
+ wchar_t *vol = (wchar_t *) LastKnownMountList.wszVolume[m];
- if (wcsstr (vol, L"\\??\\") == vol)
- vol += 4;
+ if (wcsstr (vol, L"\\??\\") == vol)
+ vol += 4;
- if (vol[1] == L':' && i == (vol[0] - (vol[0] <= L'Z' ? L'A' : L'a')))
- {
- UnmountVolume (hwndDlg, m, TRUE);
- WarningBalloon ("HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE", "HOST_DEVICE_REMOVAL_DISMOUNT_WARN", hwndDlg);
+ if (vol[1] == L':' && i == (vol[0] - (vol[0] <= L'Z' ? L'A' : L'a')))
+ {
+ UnmountVolume (hwndDlg, m, TRUE);
+ WarningBalloon ("HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE", "HOST_DEVICE_REMOVAL_DISMOUNT_WARN", hwndDlg);
+ }
}
}
}
}
}
- }
- // Device-hosted volumes
- for (m = 0; m < 26; m++)
- {
- if (LastKnownMountList.ulMountedDrives & (1 << m))
+ // Device-hosted volumes
+ for (m = 0; m < 26; m++)
{
- wchar_t *vol = (wchar_t *) LastKnownMountList.wszVolume[m];
-
- if (wcsstr (vol, L"\\??\\") == vol)
- vol += 4;
-
- if (IsVolumeDeviceHosted (vol))
+ if ((LastKnownMountList.ulMountedDrives & (1 << m)) && IsNullTerminateString (LastKnownMountList.wszVolume[m], TC_MAX_PATH))
{
- OPEN_TEST_STRUCT ots = {0};
+ wchar_t *vol = (wchar_t *) LastKnownMountList.wszVolume[m];
- if (!OpenDevice (vol, &ots, FALSE, FALSE, NULL))
+ if (wcsstr (vol, L"\\??\\") == vol)
+ vol += 4;
+
+ if (IsVolumeDeviceHosted (vol))
{
- UnmountVolume (hwndDlg, m, TRUE);
- WarningBalloon ("HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE", "HOST_DEVICE_REMOVAL_DISMOUNT_WARN", hwndDlg);
+ OPEN_TEST_STRUCT ots = {0};
+
+ if (!OpenDevice (vol, &ots, FALSE, FALSE))
+ {
+ UnmountVolume (hwndDlg, m, TRUE);
+ WarningBalloon ("HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE", "HOST_DEVICE_REMOVAL_DISMOUNT_WARN", hwndDlg);
+ }
}
}
}
@@ -7854,7 +8052,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDM_DONATE)
{
- Applink ("donate", TRUE, "");
+ Applink ("donate");
return 1;
}
@@ -7866,17 +8064,17 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDM_WEBSITE)
{
- Applink ("website", TRUE, "");
+ Applink ("website");
return 1;
}
else if (lw == IDM_HOMEPAGE)
{
- Applink ("homepage", TRUE, "");
+ Applink ("homepage");
return 1;
}
else if (lw == IDM_ONLINE_TUTORIAL)
{
- Applink ("tutorial", TRUE, "");
+ Applink ("tutorial");
return 1;
}
else if (lw == IDM_ONLINE_HELP)
@@ -7886,27 +8084,27 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
}
else if (lw == IDM_FAQ)
{
- Applink ("faq", TRUE, "");
+ Applink ("faq");
return 1;
}
else if (lw == IDM_TC_DOWNLOADS)
{
- Applink ("downloads", TRUE, "");
+ Applink ("downloads");
return 1;
}
else if (lw == IDM_NEWS)
{
- Applink ("news", TRUE, "");
+ Applink ("news");
return 1;
}
else if (lw == IDM_VERSION_HISTORY)
{
- Applink ("history", TRUE, "");
+ Applink ("history");
return 1;
}
else if (lw == IDM_CONTACT)
{
- Applink ("contact", FALSE, "");
+ Applink ("contact");
return 1;
}
@@ -7934,27 +8132,31 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDM_HOTKEY_SETTINGS)
{
+ HWND hwndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
DialogBoxParamW (hInst,
- MAKEINTRESOURCEW (IDD_HOTKEYS_DLG), hwndDlg,
+ MAKEINTRESOURCEW (IDD_HOTKEYS_DLG), hwndParent,
(DLGPROC) HotkeysDlgProc, (LPARAM) 0);
return 1;
}
if (lw == IDM_PERFORMANCE_SETTINGS)
{
- DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_PERFORMANCE_SETTINGS), hwndDlg, (DLGPROC) PerformanceSettingsDlgProc, 0);
+ HWND hwndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
+ DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_PERFORMANCE_SETTINGS), hwndParent, (DLGPROC) PerformanceSettingsDlgProc, 0);
return 1;
}
if (lw == IDM_DEFAULT_KEYFILES)
{
- KeyfileDefaultsDlg (hwndDlg);
+ HWND hwndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
+ KeyfileDefaultsDlg (hwndParent);
return 1;
}
if (lw == IDM_DEFAULT_MOUNT_PARAMETERS)
{
- DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_DEFAULT_MOUNT_PARAMETERS), hwndDlg, (DLGPROC) DefaultMountParametersDlgProc, 0);
+ HWND hwndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
+ DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_DEFAULT_MOUNT_PARAMETERS), hwndParent, (DLGPROC) DefaultMountParametersDlgProc, 0);
return 1;
}
@@ -8070,19 +8272,22 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDM_TOKEN_PREFERENCES)
{
- SecurityTokenPreferencesDialog (hwndDlg);
+ HWND hwndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
+ SecurityTokenPreferencesDialog (hwndParent);
return 1;
}
if (lw == IDM_SYSENC_SETTINGS || lw == IDM_SYS_ENC_SETTINGS)
{
- DialogBoxParamW (hInst, MAKEINTRESOURCEW (bSystemIsGPT? IDD_EFI_SYSENC_SETTINGS : IDD_SYSENC_SETTINGS), hwndDlg, (DLGPROC) BootLoaderPreferencesDlgProc, 0);
+ HWND hwndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
+ DialogBoxParamW (hInst, MAKEINTRESOURCEW (bSystemIsGPT? IDD_EFI_SYSENC_SETTINGS : IDD_SYSENC_SETTINGS), hwndParent, (DLGPROC) BootLoaderPreferencesDlgProc, 0);
return 1;
}
if (lw == IDM_SYS_FAVORITES_SETTINGS)
{
- OrganizeFavoriteVolumes (hwndDlg, true);
+ HWND hwndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
+ OrganizeFavoriteVolumes (hwndParent, true);
return 1;
}
@@ -8158,7 +8363,8 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDM_LANGUAGE)
{
BOOL p;
- if (DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_LANGUAGE), hwndDlg,
+ HWND wndParent = (lParam != 0)? (HWND) lParam : hwndDlg;
+ if (DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_LANGUAGE), wndParent,
(DLGPROC) LanguageDlgProc, (LPARAM) 0) == IDOK)
{
LoadLanguageFile ();
@@ -8423,6 +8629,7 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
OptionPim,
OptionTryEmptyPassword,
OptionNoWaitDlg,
+ OptionSecureDesktop,
};
argument args[]=
@@ -8450,6 +8657,7 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
{ CommandWipeCache, L"/wipecache", L"/w", FALSE },
{ OptionTryEmptyPassword, L"/tryemptypass", NULL, FALSE },
{ OptionNoWaitDlg, L"/nowaitdlg", NULL, FALSE },
+ { OptionSecureDesktop, L"/secureDesktop", NULL, FALSE },
};
argumentspec as;
@@ -8521,6 +8729,25 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
}
break;
+ case OptionSecureDesktop:
+ {
+ wchar_t szTmp[16] = {0};
+ bCmdUseSecureDesktop = TRUE;
+ bCmdUseSecureDesktopValid = TRUE;
+
+ if (HAS_ARGUMENT == GetArgumentValue (lpszCommandLineArgs, &i, nNoCommandLineArgs,
+ szTmp, ARRAYSIZE (szTmp)))
+ {
+ if (!_wcsicmp(szTmp,L"n") || !_wcsicmp(szTmp,L"no"))
+ bCmdUseSecureDesktop = FALSE;
+ else if (!_wcsicmp(szTmp,L"y") || !_wcsicmp(szTmp,L"yes"))
+ bCmdUseSecureDesktop = TRUE;
+ else
+ AbortProcess ("COMMAND_LINE_ERROR");
+ }
+ }
+ break;
+
case OptionCache:
{
wchar_t szTmp[16] = {0};
@@ -8781,20 +9008,22 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
if (HAS_ARGUMENT == GetArgumentValue (lpszCommandLineArgs,
&i, nNoCommandLineArgs, szTmp, ARRAYSIZE (szTmp)))
{
- if (_wcsicmp(szTmp, L"sha512") == 0 || _wcsicmp(szTmp, L"sha-512") == 0)
+ /* match against special names first */
+ if (_wcsicmp(szTmp, L"sha512") == 0)
CmdVolumePkcs5 = SHA512;
- else if (_wcsicmp(szTmp, L"whirlpool") == 0)
- CmdVolumePkcs5 = WHIRLPOOL;
- else if (_wcsicmp(szTmp, L"sha256") == 0 || _wcsicmp(szTmp, L"sha-256") == 0)
+ else if (_wcsicmp(szTmp, L"sha256") == 0)
CmdVolumePkcs5 = SHA256;
- else if (_wcsicmp(szTmp, L"ripemd160") == 0 || _wcsicmp(szTmp, L"ripemd-160") == 0)
+ else if (_wcsicmp(szTmp, L"ripemd160") == 0)
CmdVolumePkcs5 = RIPEMD160;
else
{
- CmdVolumePkcs5 = 0;
- AbortProcess ("COMMAND_LINE_ERROR");
+ /* match using internal hash names */
+ CmdVolumePkcs5 = HashGetIdByName (szTmp);
+ if (0 == CmdVolumePkcs5)
+ {
+ AbortProcess ("COMMAND_LINE_ERROR");
+ }
}
-
}
else
AbortProcess ("COMMAND_LINE_ERROR");
@@ -8904,6 +9133,21 @@ static VOID WINAPI SystemFavoritesServiceCtrlHandler (DWORD control)
SystemFavoritesServiceSetStatus (SystemFavoritesServiceStatus.dwCurrentState);
}
+static LONG WINAPI SystemFavoritesServiceExceptionHandler (EXCEPTION_POINTERS *ep)
+{
+ SetUnhandledExceptionFilter (NULL);
+
+ if (!(ReadDriverConfigurationFlags() & TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD))
+ WipeCache (NULL, TRUE);
+
+ UnhandledExceptionFilter (ep);
+ return EXCEPTION_EXECUTE_HANDLER;
+}
+
+static void SystemFavoritesServiceInvalidParameterHandler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t reserved)
+{
+ TC_THROW_FATAL_EXCEPTION;
+}
static VOID WINAPI SystemFavoritesServiceMain (DWORD argc, LPTSTR *argv)
{
@@ -8915,8 +9159,17 @@ static VOID WINAPI SystemFavoritesServiceMain (DWORD argc, LPTSTR *argv)
if (!SystemFavoritesServiceStatusHandle)
return;
+ InitGlobalLocks ();
+
+ SetUnhandledExceptionFilter (SystemFavoritesServiceExceptionHandler);
+ _set_invalid_parameter_handler (SystemFavoritesServiceInvalidParameterHandler);
+
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"));
try
@@ -8934,6 +9187,8 @@ static VOID WINAPI SystemFavoritesServiceMain (DWORD argc, LPTSTR *argv)
SystemFavoritesServiceLogError (wstring (L"System Favorites mounting process failed."));
}
+ FinalizeGlobalLocks ();
+
SystemFavoritesServiceSetStatus (SERVICE_RUNNING);
SystemFavoritesServiceSetStatus (SERVICE_STOPPED);
}
@@ -8946,6 +9201,7 @@ static BOOL StartSystemFavoritesService ()
DeviceChangeBroadcastDisabled = TRUE;
bShowDisconnectedNetworkDrives = TRUE;
bHideWaitingDialog = TRUE;
+ bUseSecureDesktop = FALSE;
InitOSVersionInfo();
@@ -8984,7 +9240,7 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz
VirtualLock (&CmdVolumePassword, sizeof (CmdVolumePassword));
VirtualLock (&mountOptions, sizeof (mountOptions));
VirtualLock (&defaultMountOptions, sizeof (defaultMountOptions));
- VirtualLock (&szFileName, sizeof(szFileName));
+ VirtualLock (&szFileName, sizeof(szFileName));
DetectX86Features ();
@@ -9283,7 +9539,7 @@ static BOOL MountFavoriteVolumeBase (HWND hwnd, const FavoriteVolume &favorite,
if (ServiceMode)
SystemFavoritesServiceLogInfo (wstring (L"Mounting system favorite \"") + effectiveVolumePath + L"\"");
- status = Mount (hwnd, drive, (wchar_t *) effectiveVolumePath.c_str(), favorite.Pim);
+ status = Mount (hwnd, drive, (wchar_t *) effectiveVolumePath.c_str(), favorite.Pim, favorite.Pkcs5, favorite.TrueCryptMode);
if (ServiceMode)
{
@@ -9445,6 +9701,9 @@ 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
@@ -10185,16 +10444,15 @@ int RestoreVolumeHeader (HWND hwndDlg, const wchar_t *lpszVolume)
}
else
{
- DISK_GEOMETRY driveInfo;
+ DISK_GEOMETRY_EX driveInfo;
- bResult = DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0,
+ bResult = DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0,
&driveInfo, sizeof (driveInfo), &dwResult, NULL);
if (!bResult)
goto error;
- hostSize = driveInfo.Cylinders.QuadPart * driveInfo.BytesPerSector *
- driveInfo.SectorsPerTrack * driveInfo.TracksPerCylinder;
+ hostSize = driveInfo.DiskSize.QuadPart;
}
if (hostSize == 0)
@@ -10577,11 +10835,11 @@ static BOOL CALLBACK PerformanceSettingsDlgProc (HWND hwndDlg, UINT msg, WPARAM
return 1;
case IDC_MORE_INFO_ON_HW_ACCELERATION:
- Applink ("hwacceleration", TRUE, "");
+ Applink ("hwacceleration");
return 1;
case IDC_MORE_INFO_ON_THREAD_BASED_PARALLELIZATION:
- Applink ("parallelization", TRUE, "");
+ Applink ("parallelization");
return 1;
}
@@ -10785,9 +11043,9 @@ static BOOL CALLBACK DefaultMountParametersDlgProc (HWND hwndDlg, UINT msg, WPAR
{
int pkcs5 = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
BOOL truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
- /* SHA-256 is not supported by TrueCrypt */
+ /* check that PRF is supported in TrueCrypt Mode */
if ( (truecryptMode)
- && (pkcs5 == SHA256)
+ && (!is_pkcs5_prf_supported(pkcs5, TRUE, PRF_BOOT_NO))
)
{
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
@@ -10818,10 +11076,10 @@ void SecurityTokenPreferencesDialog (HWND hwndDlg)
DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_TOKEN_PREFERENCES), hwndDlg, (DLGPROC) SecurityTokenPreferencesDlgProc, 0);
}
-
static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
WORD lw = LOWORD (wParam);
+ static std::string platforminfo;
switch (msg)
{
@@ -10838,7 +11096,6 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
try
{
LocalizeDialog (hwndDlg, "IDD_SYSENC_SETTINGS");
-
uint32 driverConfig = ReadDriverConfigurationFlags();
byte userConfig;
string customUserMessage;
@@ -10859,6 +11116,18 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
if (bSystemIsGPT)
{
CheckDlgButton (hwndDlg, IDC_DISABLE_BOOT_LOADER_HASH_PROMPT, (userConfig & TC_BOOT_USER_CFG_FLAG_STORE_HASH) ? BST_CHECKED : BST_UNCHECKED);
+ // read PlatformInfo file if it exists
+ try
+ {
+ platforminfo = ReadESPFile (L"\\EFI\\VeraCrypt\\PlatformInfo", true);
+ }
+ catch (Exception &) {}
+
+ if (platforminfo.length() == 0)
+ {
+ // could not read PlatformInfo file. Disable corresponding button in UI
+ EnableWindow (GetDlgItem (hwndDlg, IDC_SHOW_PLATFORMINFO), FALSE);
+ }
}
else
{
@@ -10891,6 +11160,33 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
case IDCANCEL:
EndDialog (hwndDlg, lw);
return 1;
+ case IDC_SHOW_PLATFORMINFO:
+ TextEditDialogBox(TRUE, hwndDlg, GetString ("EFI_PLATFORM_INFORMATION"), platforminfo);
+ return 0;
+
+ case IDC_EDIT_DCSPROP:
+ if (AskWarnNoYes ("EDIT_DCSPROP_FOR_ADVANCED_ONLY", hwndDlg) == IDYES)
+ {
+ try
+ {
+ std::string dcsprop = ReadESPFile (L"\\EFI\\VeraCrypt\\DcsProp", true);
+
+ while (TextEditDialogBox(FALSE, hwndDlg, GetString ("BOOT_LOADER_CONFIGURATION_FILE"), dcsprop) == IDOK)
+ {
+ if (validateDcsPropXml (dcsprop.c_str()))
+ {
+ WriteESPFile (L"\\EFI\\VeraCrypt\\DcsProp", (LPBYTE) dcsprop.c_str(), (DWORD) dcsprop.size(), true);
+ break;
+ }
+ else
+ {
+ MessageBoxW (hwndDlg, GetString ("DCSPROP_XML_VALIDATION_FAILED"), lpszTitle, ICON_HAND);
+ }
+ }
+ }
+ catch (Exception &e) { e.Show(hwndDlg); }
+ }
+ return 0;
case IDOK:
{
diff --git a/src/Mount/Mount.h b/src/Mount/Mount.h
index 4a50ef3..bbe05c3 100644
--- a/src/Mount/Mount.h
+++ b/src/Mount/Mount.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Mount/Mount.rc b/src/Mount/Mount.rc
index 6c50094..dfac0b9 100644
--- a/src/Mount/Mount.rc
+++ b/src/Mount/Mount.rc
@@ -1,739 +1,747 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-#include "..\\common\\resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// HEADER
-//
-
-IDR_MOUNT_RSRC_HEADER HEADER "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// TYPELIB
-//
-
-IDR_MOUNT_TLB TYPELIB "Mount.tlb"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_PREFERENCES_DLG DIALOGEX 0, 0, 336, 333
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Preferences"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "Mount volumes as read-only",IDC_PREF_MOUNT_READONLY,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,11,150,16
- CONTROL "Mount volumes as removable media",IDC_PREF_MOUNT_REMOVABLE,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,162,11,165,16
- CONTROL "Enabled",IDC_PREF_BKG_TASK_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,44,111,10
- CONTROL "Exit when there are no mounted volumes",IDC_CLOSE_BKG_TASK_WHEN_NOVOL,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,44,188,10
- CONTROL "Start VeraCrypt Background Task",IDC_PREF_LOGON_START,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,75,126,10
- CONTROL "Mount all device-hosted VeraCrypt volumes",IDC_PREF_LOGON_MOUNT_DEVICES,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,75,188,10
- CONTROL "User logs off",IDC_PREF_DISMOUNT_LOGOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,104,114,11
- CONTROL "User session locked",IDC_PREF_DISMOUNT_SESSION_LOCKED,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,105,130,11
- CONTROL "Screen saver is launched",IDC_PREF_DISMOUNT_SCREENSAVER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,116,114,10
- CONTROL "Entering power saving mode",IDC_PREF_DISMOUNT_POWERSAVING,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,115,130,11
- CONTROL "Auto-dismount volume after no data has been read/written to it for",IDC_PREF_DISMOUNT_INACTIVE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,128,246,11
- EDITTEXT IDC_PREF_DISMOUNT_INACTIVE_TIME,258,127,27,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
- CONTROL "Force auto-dismount even if volume contains open files or directories",IDC_PREF_FORCE_AUTO_DISMOUNT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,141,294,10
- CONTROL "Open Explorer window for successfully mounted volume",IDC_PREF_OPEN_EXPLORER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,171,316,11
- CONTROL "Use a different taskbar icon when there are mounted volumes",IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,184,314,10
- CONTROL "Preserve modification timestamp of file containers",IDC_PRESERVE_TIMESTAMPS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,196,316,10
- CONTROL "Make disconnected network drives available for mounting",IDC_SHOW_DISCONNECTED_NETWORK_DRIVES,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,208,316,10
- CONTROL "Cache passwords in driver memory",IDC_PREF_CACHE_PASSWORDS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,254,146,11
- CONTROL "Wipe cached passwords on exit",IDC_PREF_WIPE_CACHE_ON_EXIT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,254,165,11
- CONTROL "Temporary Cache password during ""Mount Favorite Volumes"" operations",IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,268,294,11
- CONTROL "Wipe cached passwords on auto-dismount",IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,282,296,11
- CONTROL "Include PIM when caching a password",IDC_PREF_CACHE_PIM,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,296,296,10
- PUSHBUTTON "More Settings...",IDC_MORE_SETTINGS,5,317,85,14
- DEFPUSHBUTTON "OK",IDOK,225,317,50,14
- PUSHBUTTON "Cancel",IDCANCEL,281,317,50,14
- GROUPBOX "Windows",IDT_WINDOWS_RELATED_SETTING,4,160,328,76
- GROUPBOX "Default Mount Options",IDT_DEFAULT_MOUNT_OPTIONS,4,3,328,26
- GROUPBOX "VeraCrypt Background Task",IDT_TASKBAR_ICON,4,33,328,26
- GROUPBOX "Auto-Dismount",IDT_AUTO_DISMOUNT,4,94,328,62
- LTEXT "minutes",IDT_MINUTES,289,129,39,10
- LTEXT "Dismount all when:",IDT_AUTO_DISMOUNT_ON,9,104,71,20
- GROUPBOX "Password Cache",IDT_PW_CACHE_OPTIONS,4,243,328,68
- GROUPBOX "Actions to perform upon logon to Windows",IDT_LOGON,4,63,328,28
- CONTROL "Don't show wait message dialog when performing operations",IDC_HIDE_WAITING_DIALOG,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,220,316,10
-END
-
-IDD_VOLUME_PROPERTIES DIALOGEX 60, 30, 284, 224
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt Volume Properties"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,114,203,55,14
- CONTROL "",IDC_VOLUME_PROPERTIES_LIST,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,6,269,192
-END
-
-IDD_PASSWORDCHANGE_DLG DIALOGEX 0, 0, 346, 245
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Change Password or Keyfiles"
-CLASS "VeraCryptCustomDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- EDITTEXT IDC_OLD_PASSWORD,89,14,181,13,ES_PASSWORD | ES_AUTOHSCROLL
- COMBOBOX IDC_PKCS5_OLD_PRF_ID,89,33,97,90,CBS_DROPDOWNLIST | WS_TABSTOP
- CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,35,83,10
- EDITTEXT IDC_OLD_PIM,89,51,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,89,59,115,10
- CONTROL "Use keyfiles",IDC_ENABLE_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,72,109,10
- PUSHBUTTON "Keyfiles...",IDC_KEYFILES,203,70,67,14
- CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_ORI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,85,138,10,WS_EX_TRANSPARENT
- EDITTEXT IDC_PASSWORD,89,121,181,13,ES_PASSWORD | ES_AUTOHSCROLL
- EDITTEXT IDC_VERIFY,89,137,181,13,ES_PASSWORD | ES_AUTOHSCROLL
- EDITTEXT IDC_PIM,89,154,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
- CONTROL "Use PIM",IDC_NEW_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,161,97,10
- CONTROL "Use keyfiles",IDC_ENABLE_NEW_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,172,110,11
- PUSHBUTTON "Keyfiles...",IDC_NEW_KEYFILES,202,170,68,14
- CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_NEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,184,180,11,WS_EX_TRANSPARENT
- COMBOBOX IDC_PKCS5_PRF_ID,89,199,181,90,CBS_DROPDOWNLIST | WS_TABSTOP
- COMBOBOX IDC_WIPE_MODE,89,218,181,90,CBS_DROPDOWNLIST | WS_TABSTOP
- DEFPUSHBUTTON "OK",IDOK,280,7,59,14
- PUSHBUTTON "Cancel",IDCANCEL,280,24,59,14
- RTEXT "Password:",IDT_PASSWORD,12,16,72,8
- RTEXT "Password:",IDT_NEW_PASSWORD,8,124,76,8
- RTEXT "Confirm Password:",IDT_CONFIRM_PASSWORD,9,140,75,16
- RTEXT "PKCS-5 PRF:",IDT_NEW_PKCS5_PRF,9,200,74,10,SS_CENTERIMAGE
- GROUPBOX "Current",IDT_CURRENT,6,3,270,97
- GROUPBOX "New",IDT_NEW,6,108,270,130
- RTEXT "Wipe mode:",IDT_WIPE_MODE,9,220,74,8,0,WS_EX_RIGHT
- RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,12,34,74,10,SS_CENTERIMAGE
- RTEXT "Volume PIM:",IDT_OLD_PIM,12,54,74,10,NOT WS_VISIBLE
- LTEXT "(Empty or 0 for default iterations)",IDC_OLD_PIM_HELP,135,54,196,8,NOT WS_VISIBLE
- RTEXT "Volume PIM:",IDT_PIM,9,157,75,16,NOT WS_VISIBLE
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,135,157,197,8,NOT WS_VISIBLE
-END
-
-IDD_MOUNT_DLG DIALOGEX 0, 0, 375, 271
-STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt"
-MENU IDR_MENU
-CLASS "VeraCryptCustomDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- CONTROL "",IDC_DRIVELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,8,5,360,135
- PUSHBUTTON "&Create Volume",IDC_CREATE_VOLUME,16,159,84,14
- PUSHBUTTON "&Volume Properties...",IDC_VOLUME_PROPERTIES,146,159,84,14
- PUSHBUTTON "&Wipe Cache",IDC_WIPE_CACHE,276,159,84,14
- COMBOBOX IDC_VOLUME,56,192,212,74,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- CONTROL "&Never save history",IDC_NO_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,56,213,122,10
- PUSHBUTTON "Volume &Tools...",IDC_VOLUME_TOOLS,184,211,84,14
- PUSHBUTTON "Select &File...",IDC_SELECT_FILE,276,192,84,14
- PUSHBUTTON "Select D&evice...",IDC_SELECT_DEVICE,276,211,84,14
- DEFPUSHBUTTON "OK",IDOK,8,243,84,18,WS_GROUP
- PUSHBUTTON "&Auto-Mount Devices",IDC_MOUNTALL,100,243,84,18
- PUSHBUTTON "Di&smount All",IDC_UNMOUNTALL,192,243,84,18,WS_GROUP
- PUSHBUTTON "E&xit",IDC_EXIT,284,243,84,18,WS_GROUP
- CONTROL 112,IDC_LOGO,"Static",SS_BITMAP | SS_NOTIFY | WS_BORDER,13,190,33,31
- GROUPBOX "Volume",IDT_VOLUME,8,179,360,53
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,2,0,372,147
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,282,242,88,20
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,190,242,88,20
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,6,242,88,20
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,98,242,88,20
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,2,151,372,119
-END
-
-IDD_PASSWORD_DLG DIALOGEX 0, 0, 330, 103
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
-CAPTION "Enter VeraCrypt Volume Password"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- EDITTEXT IDC_PASSWORD,69,8,179,14,ES_PASSWORD | ES_AUTOHSCROLL
- COMBOBOX IDC_PKCS5_PRF_ID,69,26,96,90,CBS_DROPDOWNLIST | WS_TABSTOP
- CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,170,28,76,10
- EDITTEXT IDC_PIM,69,43,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,70,48,97,10
- CONTROL "Cache passwords and keyfil&es in memory",IDC_CACHE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,61,153,10
- CONTROL "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,74,83,10
- CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,87,99,11
- PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,173,84,75,14
- PUSHBUTTON "Mount Opti&ons...",IDC_MOUNT_OPTIONS,252,84,69,14
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,115,46,199,8,NOT WS_VISIBLE
- DEFPUSHBUTTON "OK",IDOK,252,8,69,14
- PUSHBUTTON "Cancel",IDCANCEL,252,25,69,14
- RTEXT "Password:",IDT_PASSWORD,0,10,65,13
- RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,0,27,65,11
- RTEXT "Volume PIM:",IDT_PIM,0,46,65,8,NOT WS_VISIBLE
-END
-
-IDD_TRAVELER_DLG DIALOGEX 0, 0, 300, 299
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt Traveler Disk Setup"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- EDITTEXT IDC_DIRECTORY,17,29,205,13,ES_AUTOHSCROLL | ES_READONLY
- PUSHBUTTON "Browse...",IDC_BROWSE_DIRS,228,28,57,14
- CONTROL "Include VeraCrypt Volume Creation Wizard",IDC_COPY_WIZARD,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,48,258,10
- CONTROL "Do nothing",IDC_AUTORUN_DISABLE,"Button",BS_AUTORADIOBUTTON,15,115,262,10
- CONTROL "&Start VeraCrypt",IDC_AUTORUN_START,"Button",BS_AUTORADIOBUTTON,15,126,262,11
- CONTROL "&Auto-mount VeraCrypt volume (specified below)",IDC_AUTORUN_MOUNT,
- "Button",BS_AUTORADIOBUTTON,15,138,262,11
- EDITTEXT IDC_VOLUME_NAME,21,175,194,13,ES_AUTOHSCROLL | WS_DISABLED
- PUSHBUTTON "Browse...",IDC_BROWSE_FILES,221,174,57,14,WS_DISABLED
- COMBOBOX IDC_DRIVELIST,120,193,96,69,CBS_DROPDOWNLIST | WS_DISABLED | WS_VSCROLL | WS_TABSTOP
- CONTROL "Open &Explorer window for mounted volume",IDC_TRAVEL_OPEN_EXPLORER,
- "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,211,256,10
- CONTROL "Mount volume as read-&only",IDC_MOUNT_READONLY,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,224,256,10
- CONTROL "&Cache password in driver memory",IDC_TRAV_CACHE_PASSWORDS,
- "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,237,256,10
- DEFPUSHBUTTON "Create",IDC_CREATE,173,278,57,14
- PUSHBUTTON "Close",IDCLOSE,236,278,57,14
- GROUPBOX "File Settings",IDT_FILE_SETTINGS,6,7,287,71
- GROUPBOX "AutoRun Configuration (autorun.inf)",IDT_AUTORUN,5,88,288,185
- LTEXT "VeraCrypt volume to mount (relative to traveler disk root):",IDT_TRAVELER_MOUNT,21,165,248,8,WS_DISABLED
- RTEXT "Mount volume as drive letter:",IDT_MOUNT_LETTER,18,195,99,8,WS_DISABLED
- LTEXT "Create traveler disk files at (traveler disk root directory):",IDT_TRAVEL_ROOT,18,19,259,8
- GROUPBOX "Mount Settings",IDT_MOUNT_SETTINGS,13,152,272,114,WS_DISABLED
- LTEXT "Upon insertion of traveler disk: ",IDT_TRAVEL_INSERTION,13,102,263,8
- CONTROL "Include VeraCrypt Volume Expander",IDC_COPY_EXPANDER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,62,258,10
- CONTROL "Include PIM when caching a password",IDC_PREF_CACHE_PIM,
- "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,250,256,10
-END
-
-IDD_HOTKEYS_DLG DIALOGEX 0, 0, 389, 257
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - System-Wide Hot Keys"
-CLASS "VeraCryptCustomDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- CONTROL "",IDC_HOTKEY_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,375,115
- EDITTEXT IDC_HOTKEY_KEY,108,140,190,13,ES_AUTOHSCROLL
- PUSHBUTTON "Assign",IDC_HOTKEY_ASSIGN,304,140,59,14
- CONTROL "Ctrl",IDC_HK_MOD_CTRL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,158,46,10,WS_EX_TRANSPARENT
- CONTROL "Shift",IDC_HK_MOD_SHIFT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,158,49,10,WS_EX_TRANSPARENT
- CONTROL "Alt",IDC_HK_MOD_ALT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,216,158,43,10,WS_EX_TRANSPARENT
- CONTROL "Win",IDC_HK_MOD_WIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,266,158,34,10,WS_EX_TRANSPARENT
- PUSHBUTTON "Remove",IDC_HOTKEY_REMOVE,304,158,59,14
- CONTROL "Play system notification sound after successful hot-key dismount",IDC_HK_DISMOUNT_PLAY_SOUND,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,201,348,10
- CONTROL "Display balloon tooltip after successful hot-key dismount",IDC_HK_DISMOUNT_BALLOON_TOOLTIP,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,213,351,10,WS_EX_TRANSPARENT
- DEFPUSHBUTTON "OK",IDOK,260,236,59,14
- PUSHBUTTON "Cancel",IDCANCEL,323,236,59,14
- PUSHBUTTON "Reset",IDC_RESET_HOTKEYS,7,236,59,14
- RTEXT "Key to assign:",IDT_HOTKEY_KEY,15,142,86,8
- GROUPBOX "Hot Key Options",IDT_DISMOUNT_ACTION,7,188,375,42
- GROUPBOX "Shortcut",IDT_ASSIGN_HOTKEY,7,127,375,53
-END
-
-IDD_TOKEN_PREFERENCES DIALOGEX 0, 0, 316, 199
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Security Token Preferences"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- EDITTEXT IDC_PKCS11_MODULE,16,23,204,13,ES_AUTOHSCROLL
- PUSHBUTTON "Select &Library...",IDC_SELECT_PKCS11_MODULE,226,22,75,14
- PUSHBUTTON "Auto-&Detect Library",IDC_AUTO_DETECT_PKCS11_MODULE,16,41,112,14
- CONTROL "&Close token session (log out) after a volume is successfully mounted",IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT,
- "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,16,154,284,9
- DEFPUSHBUTTON "OK",IDOK,205,178,50,14
- PUSHBUTTON "Cancel",IDCANCEL,259,178,50,14
- GROUPBOX "PKCS #11 Library Path",IDT_PKCS11_LIB_PATH,7,7,302,129
- GROUPBOX "Security Options",IDT_SECURITY_OPTIONS,7,140,302,30
- LTEXT "",IDT_PKCS11_LIB_HELP,16,63,286,65
-END
-
-IDD_EFI_SYSENC_SETTINGS DIALOGEX 0, 0, 370, 139
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - System Encryption Settings"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "&Cache pre-boot authentication password in driver memory (for mounting of non-system volumes)",IDC_BOOT_LOADER_CACHE_PASSWORD,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,79,339,10
- DEFPUSHBUTTON "OK",IDOK,257,115,50,14
- PUSHBUTTON "Cancel",IDCANCEL,313,115,50,14
- GROUPBOX "Boot Loader Screen Options",IDT_BOOT_LOADER_SCREEN_OPTIONS,8,7,355,53
- GROUPBOX "Security Options",IDT_SECURITY_OPTIONS,8,64,355,44
- CONTROL "Include PIM when caching pre-boot authentication password",IDC_BOOT_LOADER_CACHE_PIM,
- "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,18,94,340,10
- CONTROL "Do not request PIM in the pre-boot authentication screen (PIM value is stored unencrypted on disk)",IDC_DISABLE_BOOT_LOADER_PIM_PROMPT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,20,339,9
- CONTROL "Do not request Hash algorithm in the pre-boot authentication screen",IDC_DISABLE_BOOT_LOADER_HASH_PROMPT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,35,339,9
-END
-
-IDD_PERFORMANCE_SETTINGS DIALOGEX 0, 0, 370, 248
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Performance Options"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "",IDC_HW_AES_SUPPORTED_BY_CPU,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,294,21,57,12,WS_EX_CLIENTEDGE
- CONTROL "Accelerate AES encryption/decryption by using the AES instructions of the processor (if available)",IDC_ENABLE_HARDWARE_ENCRYPTION,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,18,41,340,17
- LTEXT "More information",IDC_MORE_INFO_ON_HW_ACCELERATION,18,61,165,10,SS_NOTIFY
- CONTROL "Do not use the following number of processors for encryption/decryption:",IDC_LIMIT_ENC_THREAD_POOL,
- "Button",BS_AUTOCHECKBOX | BS_TOP | WS_TABSTOP,18,103,283,11
- COMBOBOX IDC_ENCRYPTION_FREE_CPU_COUNT,304,101,48,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "More information",IDC_MORE_INFO_ON_THREAD_BASED_PARALLELIZATION,18,159,165,10,SS_NOTIFY
- PUSHBUTTON "&Benchmark",IDC_BENCHMARK,7,227,59,14
- DEFPUSHBUTTON "OK",IDOK,257,227,50,14
- PUSHBUTTON "Cancel",IDCANCEL,313,227,50,14
- LTEXT "Processor (CPU) in this computer supports hardware acceleration for AES:",IDT_HW_AES_SUPPORTED_BY_CPU,18,23,273,9
- GROUPBOX "Hardware Acceleration",IDT_ACCELERATION_OPTIONS,7,6,355,74
- GROUPBOX "Thread-Based Parallelization",IDT_PARALLELIZATION_OPTIONS,7,84,355,93
- LTEXT "",IDT_LIMIT_ENC_THREAD_POOL_NOTE,18,126,334,33
- GROUPBOX "Driver Configuration",IDT_DRIVER_OPTIONS,7,183,356,36
- CONTROL "Enable extended disk control codes support",IDC_ENABLE_EXTENDED_IOCTL_SUPPORT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,198,337,10
-END
-
-IDD_FAVORITE_VOLUMES DIALOGEX 0, 0, 380, 368
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Favorite Volumes"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "",IDC_FAVORITE_VOLUMES_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,366,92
- PUSHBUTTON "Move &Up",IDC_FAVORITE_MOVE_UP,7,104,63,14
- PUSHBUTTON "Move &Down",IDC_FAVORITE_MOVE_DOWN,74,104,63,14
- PUSHBUTTON "&Remove",IDC_FAVORITE_REMOVE,310,104,63,14
- EDITTEXT IDC_FAVORITE_LABEL,18,225,344,13,ES_AUTOHSCROLL
- CONTROL "Mount selected volume as read-o&nly",IDC_FAVORITE_MOUNT_READONLY,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,255,349,10
- CONTROL "Mount selected volume as remo&vable medium",IDC_FAVORITE_MOUNT_REMOVABLE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,269,349,10
- CONTROL "Mount selected volume upon log&on",IDC_FAVORITE_MOUNT_ON_LOGON,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,283,349,10
- CONTROL "Mount selected volume when its host device gets &connected",IDC_FAVORITE_MOUNT_ON_ARRIVAL,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,297,349,10
- CONTROL "Open &Explorer window for selected volume when successfully mounted",IDC_FAVORITE_OPEN_EXPLORER_WIN_ON_MOUNT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,311,349,11
- CONTROL "Do not mount selected volume when 'Mount Favorite Volumes' &hot key is pressed",IDC_FAVORITE_DISABLE_HOTKEY,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,326,349,11
- LTEXT "Help on favorite volumes",IDC_FAVORITES_HELP_LINK,17,351,237,10,SS_NOTIFY
- DEFPUSHBUTTON "OK",IDOK,269,347,50,14
- PUSHBUTTON "Cancel",IDCANCEL,323,347,50,14
- GROUPBOX "",IDC_FAV_VOL_OPTIONS_GROUP_BOX,7,123,366,219
- LTEXT "Label of selected favorite volume:",IDT_FAVORITE_LABEL,18,215,202,8
- GROUPBOX "Global Settings",IDC_FAV_VOL_OPTIONS_GLOBAL_SETTINGS_BOX,7,300,366,42
- EDITTEXT IDC_PIM,18,183,42,13,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,64,185,189,8
- LTEXT "Volume PIM:",IDT_PIM,18,173,65,8
- CONTROL "Display PIM",IDC_SHOW_PIM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,199,150,10
- CONTROL "Use favorite label as Explorer drive label",IDC_FAVORITE_USE_LABEL_IN_EXPLORER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,242,349,10
- LTEXT "Volume ID:",IDT_VOLUME_ID,18,131,57,8
- EDITTEXT IDC_FAVORITE_VOLUME_ID,18,141,344,14,ES_AUTOHSCROLL | ES_READONLY
- CONTROL "Use Volume ID to mount favorite",IDC_FAVORITE_USE_VOLUME_ID,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,159,337,10
-END
-
-IDD_DEFAULT_MOUNT_PARAMETERS DIALOGEX 0, 0, 167, 65
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - Mount Parameters"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,57,44,50,14
- PUSHBUTTON "Cancel",IDCANCEL,111,44,50,14
- COMBOBOX IDC_PKCS5_PRF_ID,57,24,103,90,CBS_DROPDOWNLIST | WS_TABSTOP
- LTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,8,26,44,11
- CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,76,10
-END
-
-IDD_SYSENC_SETTINGS DIALOGEX 0, 0, 370, 286
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt - System Encryption Settings"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "Do not &show any texts in the pre-boot authentication screen (except the below custom message)",IDC_DISABLE_BOOT_LOADER_OUTPUT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,20,339,9
- EDITTEXT IDC_CUSTOM_BOOT_LOADER_MESSAGE,18,50,216,14,ES_AUTOHSCROLL
- CONTROL "&Cache pre-boot authentication password in driver memory (for mounting of non-system volumes)",IDC_BOOT_LOADER_CACHE_PASSWORD,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,192,339,10
- CONTROL "Allow pre-boot &authentication to be bypassed by pressing the Esc key (enables boot manager)",IDC_ALLOW_ESC_PBA_BYPASS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,222,340,10
- DEFPUSHBUTTON "OK",IDOK,257,262,50,14
- PUSHBUTTON "Cancel",IDCANCEL,313,262,50,14
- LTEXT "Display this custom message in the pre-boot authentication screen (24 characters maximum):",IDT_CUSTOM_BOOT_LOADER_MESSAGE,18,39,337,8
- GROUPBOX "Boot Loader Screen Options",IDT_BOOT_LOADER_SCREEN_OPTIONS,8,7,355,165
- GROUPBOX "Security Options",IDT_SECURITY_OPTIONS,8,177,355,75
- LTEXT "",IDC_CUSTOM_BOOT_LOADER_MESSAGE_HELP,18,72,337,73
- CONTROL "Disable ""Evil Maid"" attack detection",IDC_DISABLE_EVIL_MAID_ATTACK_DETECTION,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,237,340,10
- CONTROL "Include PIM when caching pre-boot authentication password",IDC_BOOT_LOADER_CACHE_PIM,
- "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,18,207,340,10
- CONTROL "Do not request PIM in the pre-boot authentication screen (PIM value is stored unencrypted on disk)",IDC_DISABLE_BOOT_LOADER_PIM_PROMPT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,157,339,9
-END
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_PREFERENCES_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 329
- TOPMARGIN, 7
- BOTTOMMARGIN, 331
- END
-
- IDD_VOLUME_PROPERTIES, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 277
- TOPMARGIN, 7
- BOTTOMMARGIN, 217
- END
-
- IDD_PASSWORDCHANGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 339
- TOPMARGIN, 7
- BOTTOMMARGIN, 238
- END
-
- IDD_MOUNT_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 369
- BOTTOMMARGIN, 269
- END
-
- IDD_PASSWORD_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 321
- BOTTOMMARGIN, 98
- END
-
- IDD_TRAVELER_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 293
- TOPMARGIN, 7
- BOTTOMMARGIN, 292
- END
-
- IDD_HOTKEYS_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 382
- TOPMARGIN, 7
- BOTTOMMARGIN, 250
- END
-
- IDD_TOKEN_PREFERENCES, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 309
- TOPMARGIN, 7
- BOTTOMMARGIN, 192
- END
-
- IDD_EFI_SYSENC_SETTINGS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 363
- TOPMARGIN, 7
- BOTTOMMARGIN, 129
- END
-
- IDD_PERFORMANCE_SETTINGS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 363
- TOPMARGIN, 7
- BOTTOMMARGIN, 241
- END
-
- IDD_FAVORITE_VOLUMES, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 373
- TOPMARGIN, 7
- BOTTOMMARGIN, 361
- END
-
- IDD_DEFAULT_MOUNT_PARAMETERS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 160
- TOPMARGIN, 7
- BOTTOMMARGIN, 58
- END
-
- IDD_SYSENC_SETTINGS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 363
- TOPMARGIN, 7
- BOTTOMMARGIN, 276
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,19,4,0
- PRODUCTVERSION 1,19,4,0
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", "IDRIX"
- VALUE "FileDescription", "VeraCrypt"
- VALUE "FileVersion", "1.19"
- VALUE "LegalTrademarks", "VeraCrypt"
- VALUE "OriginalFilename", "VeraCrypt.exe"
- VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.19"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "#include ""..\\\\common\\\\resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#include ""..\\\\common\\\\common.rc""\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_DRIVEICON BITMAP "Drive_icon_96dpi.bmp"
-IDB_DRIVEICON_MASK BITMAP "Drive_icon_mask_96dpi.bmp"
-IDB_LOGO_96DPI BITMAP "Logo_96dpi.bmp"
-IDB_LOGO_288DPI BITMAP "Logo_288dpi.bmp"
-IDB_SYS_DRIVEICON BITMAP "System_drive_icon_96dpi.bmp"
-IDB_SYS_DRIVEICON_MASK BITMAP "System_drive_icon_mask_96dpi.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_MENU MENU
-BEGIN
- POPUP "&Volumes"
- BEGIN
- MENUITEM "Select File...", IDM_SELECT_FILE
- MENUITEM "Select Device...", IDM_SELECT_DEVICE
- MENUITEM SEPARATOR
- MENUITEM "Create New Volume...", IDM_CREATE_VOLUME
- MENUITEM "Permanently Decrypt...", IDM_DECRYPT_NONSYS_VOL
- MENUITEM "Resume Interrupted Process", IDM_RESUME_INTERRUPTED_PROC
- MENUITEM SEPARATOR
- MENUITEM "Mount Volume", IDM_MOUNT_VOLUME
- MENUITEM "Mount Volume with Options", IDM_MOUNT_VOLUME_OPTIONS
- MENUITEM "Auto-Mount All Device-Hosted Volumes", IDM_MOUNTALL
- MENUITEM SEPARATOR
- MENUITEM "Dismount Volume", IDM_UNMOUNT_VOLUME
- MENUITEM "Dismount All Mounted Volumes", IDM_UNMOUNTALL
- MENUITEM SEPARATOR
- MENUITEM "Change Volume Password...", IDM_CHANGE_PASSWORD
- MENUITEM "Add/Remove Keyfiles to/from Volume...", IDM_ADD_REMOVE_VOL_KEYFILES
- MENUITEM "Remove All Keyfiles from Volume...", IDM_REMOVE_ALL_KEYFILES_FROM_VOL
- MENUITEM "Set Header Key Derivation Algorithm...", IDM_CHANGE_HEADER_KEY_DERIV_ALGO
- MENUITEM SEPARATOR
- MENUITEM "Volume Properties", IDM_VOLUME_PROPERTIES
- END
- POPUP "S&ystem"
- BEGIN
- MENUITEM "Encrypt System Partition/Drive...", IDM_ENCRYPT_SYSTEM_DEVICE
- MENUITEM "Permanently Decrypt System Partition/Drive", IDM_PERMANENTLY_DECRYPT_SYS
- MENUITEM "Resume Interrupted Process", IDM_SYSENC_RESUME
- MENUITEM SEPARATOR
- MENUITEM "Create Hidden Operating System...", IDM_CREATE_HIDDEN_OS
- MENUITEM SEPARATOR
- MENUITEM "Create Rescue Disk...", IDM_CREATE_RESCUE_DISK
- MENUITEM "Verify Rescue Disk", IDM_VERIFY_RESCUE_DISK
- MENUITEM "Verify Rescue Disk Image", IDM_VERIFY_RESCUE_DISK_ISO
- MENUITEM SEPARATOR
- MENUITEM "Mount Without Pre-Boot &Authentication...", IDM_MOUNT_SYSENC_PART_WITHOUT_PBA
- MENUITEM SEPARATOR
- MENUITEM "Change Password...", IDM_CHANGE_SYS_PASSWORD
- MENUITEM "Set Header Key Derivation Algorithm...", IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO
- MENUITEM SEPARATOR
- MENUITEM "Properties...", IDM_SYSTEM_ENCRYPTION_STATUS
- MENUITEM SEPARATOR
- MENUITEM "Settings...", IDM_SYS_ENC_SETTINGS
- END
- POPUP "Favor&ites"
- BEGIN
- MENUITEM "Add Mounted Volume to Favorites...", IDM_ADD_VOLUME_TO_FAVORITES
- MENUITEM "Add Mounted Volume to System Favorites...", IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES
- MENUITEM SEPARATOR
- MENUITEM "Organize Favorite Volumes...", IDM_ORGANIZE_FAVORITES
- MENUITEM "Organize System Favorite Volumes...", IDM_ORGANIZE_SYSTEM_FAVORITES
- MENUITEM SEPARATOR
- MENUITEM "Mount Favorite Volumes", IDM_MOUNT_FAVORITE_VOLUMES
- END
- POPUP "T&ools"
- BEGIN
- MENUITEM "Benchmark...", IDM_BENCHMARK
- MENUITEM "Test Vectors...", IDM_TEST_VECTORS
- MENUITEM SEPARATOR
- MENUITEM "Traveler Disk Setup...", IDM_TRAVELER
- MENUITEM "Volume Expander", IDM_VOLUME_EXPANDER
- MENUITEM "Volume Creation Wizard", IDM_VOLUME_WIZARD
- MENUITEM SEPARATOR
- MENUITEM "Keyfile Generator", IDM_KEYFILE_GENERATOR
- MENUITEM "Manage Security Token Keyfiles...", IDM_MANAGE_TOKEN_KEYFILES
- MENUITEM "Close All Security Token Sessions", IDM_CLOSE_ALL_TOKEN_SESSIONS
- MENUITEM SEPARATOR
- MENUITEM "Backup Volume Header...", IDM_BACKUP_VOL_HEADER
- MENUITEM "Restore Volume Header...", IDM_RESTORE_VOL_HEADER
- MENUITEM SEPARATOR
- MENUITEM "Refresh Drive Letters", IDM_REFRESH_DRIVE_LETTERS
- MENUITEM SEPARATOR
- MENUITEM "Clear Volume History", IDM_CLEAR_HISTORY
- MENUITEM "Wipe Cached Passwords", IDM_WIPE_CACHE
- END
- POPUP "Settin&gs"
- BEGIN
- MENUITEM "Language...", IDM_LANGUAGE
- MENUITEM "Hot Keys...", IDM_HOTKEY_SETTINGS
- MENUITEM SEPARATOR
- MENUITEM "System Encryption...", IDM_SYSENC_SETTINGS
- MENUITEM "System Favorite Volumes...", IDM_SYS_FAVORITES_SETTINGS
- MENUITEM SEPARATOR
- MENUITEM "Performance/Driver Configuration", IDM_PERFORMANCE_SETTINGS
- MENUITEM SEPARATOR
- MENUITEM "Default Keyfiles...", IDM_DEFAULT_KEYFILES
- MENUITEM "Default Mount Parameters...", IDM_DEFAULT_MOUNT_PARAMETERS
- MENUITEM "Security Tokens...", IDM_TOKEN_PREFERENCES
- MENUITEM SEPARATOR
- MENUITEM "Preferences...", IDM_PREFERENCES
- END
- POPUP "Hel&p"
- BEGIN
- MENUITEM "User's Guide", IDM_HELP
- MENUITEM "Online Help", IDM_ONLINE_HELP
- MENUITEM "Beginner's Tutorial", IDM_ONLINE_TUTORIAL
- MENUITEM "Frequently Asked Questions", IDM_FAQ
- MENUITEM SEPARATOR
- MENUITEM "VeraCrypt Website", IDM_WEBSITE
- MENUITEM "Downloads", IDM_TC_DOWNLOADS
- MENUITEM "News", IDM_NEWS
- MENUITEM "Version History", IDM_VERSION_HISTORY
- MENUITEM SEPARATOR
- MENUITEM "Donate now...", IDM_DONATE
- MENUITEM "Contact", IDM_CONTACT
- MENUITEM "Legal Notices", IDM_LICENSE
- MENUITEM "About", IDM_ABOUT
- END
- MENUITEM "&Homepage ", IDM_HOMEPAGE
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_UACSTRING "VeraCrypt"
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#include "..\\common\\common.rc"
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+#include "..\\common\\resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// HEADER
+//
+
+IDR_MOUNT_RSRC_HEADER HEADER "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// TYPELIB
+//
+
+IDR_MOUNT_TLB TYPELIB "Mount.tlb"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_PREFERENCES_DLG DIALOGEX 0, 0, 336, 340
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Preferences"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "Mount volumes as read-only",IDC_PREF_MOUNT_READONLY,
+ "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,11,150,16
+ CONTROL "Mount volumes as removable media",IDC_PREF_MOUNT_REMOVABLE,
+ "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,162,11,165,16
+ CONTROL "Enabled",IDC_PREF_BKG_TASK_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,44,111,10
+ CONTROL "Exit when there are no mounted volumes",IDC_CLOSE_BKG_TASK_WHEN_NOVOL,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,44,188,10
+ CONTROL "Start VeraCrypt Background Task",IDC_PREF_LOGON_START,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,75,126,10
+ CONTROL "Mount all device-hosted VeraCrypt volumes",IDC_PREF_LOGON_MOUNT_DEVICES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,75,188,10
+ CONTROL "User logs off",IDC_PREF_DISMOUNT_LOGOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,104,114,11
+ CONTROL "User session locked",IDC_PREF_DISMOUNT_SESSION_LOCKED,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,105,130,11
+ CONTROL "Screen saver is launched",IDC_PREF_DISMOUNT_SCREENSAVER,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,116,114,10
+ CONTROL "Entering power saving mode",IDC_PREF_DISMOUNT_POWERSAVING,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,115,130,11
+ CONTROL "Auto-dismount volume after no data has been read/written to it for",IDC_PREF_DISMOUNT_INACTIVE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,128,246,11
+ EDITTEXT IDC_PREF_DISMOUNT_INACTIVE_TIME,258,127,27,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
+ CONTROL "Force auto-dismount even if volume contains open files or directories",IDC_PREF_FORCE_AUTO_DISMOUNT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,141,294,10
+ CONTROL "Open Explorer window for successfully mounted volume",IDC_PREF_OPEN_EXPLORER,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,171,316,11
+ CONTROL "Use a different taskbar icon when there are mounted volumes",IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,184,314,10
+ CONTROL "Preserve modification timestamp of file containers",IDC_PRESERVE_TIMESTAMPS,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,196,316,10
+ CONTROL "Make disconnected network drives available for mounting",IDC_SHOW_DISCONNECTED_NETWORK_DRIVES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,208,316,10
+ CONTROL "Cache passwords in driver memory",IDC_PREF_CACHE_PASSWORDS,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,263,146,11
+ CONTROL "Wipe cached passwords on exit",IDC_PREF_WIPE_CACHE_ON_EXIT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,263,165,11
+ CONTROL "Temporarily cache password during ""Mount Favorite Volumes"" operations",IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,277,294,11
+ CONTROL "Wipe cached passwords on auto-dismount",IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,291,296,11
+ CONTROL "Include PIM when caching a password",IDC_PREF_CACHE_PIM,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,305,296,10
+ PUSHBUTTON "More Settings...",IDC_MORE_SETTINGS,5,324,85,14
+ DEFPUSHBUTTON "OK",IDOK,225,324,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,281,324,50,14
+ GROUPBOX "Windows",IDT_WINDOWS_RELATED_SETTING,4,160,328,87
+ GROUPBOX "Default Mount Options",IDT_DEFAULT_MOUNT_OPTIONS,4,3,328,26
+ GROUPBOX "VeraCrypt Background Task",IDT_TASKBAR_ICON,4,33,328,26
+ GROUPBOX "Auto-Dismount",IDT_AUTO_DISMOUNT,4,94,328,62
+ LTEXT "minutes",IDT_MINUTES,289,129,39,10
+ LTEXT "Dismount all when:",IDT_AUTO_DISMOUNT_ON,9,104,71,20
+ GROUPBOX "Password Cache",IDT_PW_CACHE_OPTIONS,4,252,328,68
+ GROUPBOX "Actions to perform upon logon to Windows",IDT_LOGON,4,63,328,28
+ CONTROL "Don't show wait message dialog when performing operations",IDC_HIDE_WAITING_DIALOG,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,220,316,10
+ CONTROL "Use Secure Desktop for password entry",IDC_SECURE_DESKTOP_PASSWORD_ENTRY,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,232,316,10
+END
+
+IDD_VOLUME_PROPERTIES DIALOGEX 60, 30, 284, 224
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Volume Properties"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,114,203,55,14
+ CONTROL "",IDC_VOLUME_PROPERTIES_LIST,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,6,269,192
+END
+
+IDD_PASSWORDCHANGE_DLG DIALOGEX 0, 0, 346, 245
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Change Password or Keyfiles"
+CLASS "VeraCryptCustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ EDITTEXT IDC_OLD_PASSWORD,89,14,181,13,ES_PASSWORD | ES_AUTOHSCROLL
+ COMBOBOX IDC_PKCS5_OLD_PRF_ID,89,33,97,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,35,83,10
+ EDITTEXT IDC_OLD_PIM,89,51,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,89,59,115,10
+ CONTROL "Use keyfiles",IDC_ENABLE_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,72,109,10
+ PUSHBUTTON "Keyfiles...",IDC_KEYFILES,203,70,67,14
+ CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_ORI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,85,138,10,WS_EX_TRANSPARENT
+ EDITTEXT IDC_PASSWORD,89,121,181,13,ES_PASSWORD | ES_AUTOHSCROLL
+ EDITTEXT IDC_VERIFY,89,137,181,13,ES_PASSWORD | ES_AUTOHSCROLL
+ EDITTEXT IDC_PIM,89,154,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
+ CONTROL "Use PIM",IDC_NEW_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,161,97,10
+ CONTROL "Use keyfiles",IDC_ENABLE_NEW_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,172,110,11
+ PUSHBUTTON "Keyfiles...",IDC_NEW_KEYFILES,202,170,68,14
+ CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_NEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,184,180,11,WS_EX_TRANSPARENT
+ COMBOBOX IDC_PKCS5_PRF_ID,89,199,181,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ COMBOBOX IDC_WIPE_MODE,89,218,181,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,280,7,59,14
+ PUSHBUTTON "Cancel",IDCANCEL,280,24,59,14
+ RTEXT "Password:",IDT_PASSWORD,12,16,72,8
+ RTEXT "Password:",IDT_NEW_PASSWORD,8,124,76,8
+ RTEXT "Confirm Password:",IDT_CONFIRM_PASSWORD,9,140,75,16
+ RTEXT "PKCS-5 PRF:",IDT_NEW_PKCS5_PRF,9,200,74,10,SS_CENTERIMAGE
+ GROUPBOX "Current",IDT_CURRENT,6,3,270,97
+ GROUPBOX "New",IDT_NEW,6,108,270,130
+ RTEXT "Wipe mode:",IDT_WIPE_MODE,9,220,74,8,0,WS_EX_RIGHT
+ RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,12,34,74,10,SS_CENTERIMAGE
+ RTEXT "Volume PIM:",IDT_OLD_PIM,12,54,74,10,NOT WS_VISIBLE
+ LTEXT "(Empty or 0 for default iterations)",IDC_OLD_PIM_HELP,135,54,196,8,NOT WS_VISIBLE
+ RTEXT "Volume PIM:",IDT_PIM,9,157,75,16,NOT WS_VISIBLE
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,135,157,197,8,NOT WS_VISIBLE
+END
+
+IDD_MOUNT_DLG DIALOGEX 0, 0, 375, 271
+STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt"
+MENU IDR_MENU
+CLASS "VeraCryptCustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ CONTROL "",IDC_DRIVELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,8,5,360,135
+ PUSHBUTTON "&Create Volume",IDC_CREATE_VOLUME,16,159,84,14
+ PUSHBUTTON "&Volume Properties...",IDC_VOLUME_PROPERTIES,146,159,84,14
+ PUSHBUTTON "&Wipe Cache",IDC_WIPE_CACHE,276,159,84,14
+ COMBOBOX IDC_VOLUME,56,192,212,74,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ CONTROL "&Never save history",IDC_NO_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,56,213,122,10
+ PUSHBUTTON "Volume &Tools...",IDC_VOLUME_TOOLS,184,211,84,14
+ PUSHBUTTON "Select &File...",IDC_SELECT_FILE,276,192,84,14
+ PUSHBUTTON "Select D&evice...",IDC_SELECT_DEVICE,276,211,84,14
+ DEFPUSHBUTTON "OK",IDOK,8,243,84,18,WS_GROUP
+ PUSHBUTTON "&Auto-Mount Devices",IDC_MOUNTALL,100,243,84,18
+ PUSHBUTTON "Di&smount All",IDC_UNMOUNTALL,192,243,84,18,WS_GROUP
+ PUSHBUTTON "E&xit",IDC_EXIT,284,243,84,18,WS_GROUP
+ CONTROL 112,IDC_LOGO,"Static",SS_BITMAP | SS_NOTIFY | WS_BORDER,13,190,33,31
+ GROUPBOX "Volume",IDT_VOLUME,8,179,360,53
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,2,0,372,147
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,282,242,88,20
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,190,242,88,20
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,6,242,88,20
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,98,242,88,20
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,2,151,372,119
+END
+
+IDD_PASSWORD_DLG DIALOGEX 0, 0, 330, 103
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
+CAPTION "Enter VeraCrypt Volume Password"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ EDITTEXT IDC_PASSWORD,69,8,179,14,ES_PASSWORD | ES_AUTOHSCROLL
+ COMBOBOX IDC_PKCS5_PRF_ID,69,26,96,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,170,28,76,10
+ EDITTEXT IDC_PIM,69,43,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,70,48,97,10
+ CONTROL "Cache passwords and keyfil&es in memory",IDC_CACHE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,61,153,10
+ CONTROL "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,74,83,10
+ CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,87,99,11
+ PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,173,84,75,14
+ PUSHBUTTON "Mount Opti&ons...",IDC_MOUNT_OPTIONS,252,84,69,14
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,115,46,199,8,NOT WS_VISIBLE
+ DEFPUSHBUTTON "OK",IDOK,252,8,69,14
+ PUSHBUTTON "Cancel",IDCANCEL,252,25,69,14
+ RTEXT "Password:",IDT_PASSWORD,0,10,65,13
+ RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,0,27,65,11
+ RTEXT "Volume PIM:",IDT_PIM,0,46,65,8,NOT WS_VISIBLE
+END
+
+IDD_TRAVELER_DLG DIALOGEX 0, 0, 300, 299
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Traveler Disk Setup"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ EDITTEXT IDC_DIRECTORY,17,29,205,13,ES_AUTOHSCROLL | ES_READONLY
+ PUSHBUTTON "Browse...",IDC_BROWSE_DIRS,228,28,57,14
+ CONTROL "Include VeraCrypt Volume Creation Wizard",IDC_COPY_WIZARD,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,48,258,10
+ CONTROL "Do nothing",IDC_AUTORUN_DISABLE,"Button",BS_AUTORADIOBUTTON,15,115,262,10
+ CONTROL "&Start VeraCrypt",IDC_AUTORUN_START,"Button",BS_AUTORADIOBUTTON,15,126,262,11
+ CONTROL "&Auto-mount VeraCrypt volume (specified below)",IDC_AUTORUN_MOUNT,
+ "Button",BS_AUTORADIOBUTTON,15,138,262,11
+ EDITTEXT IDC_VOLUME_NAME,21,175,194,13,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Browse...",IDC_BROWSE_FILES,221,174,57,14,WS_DISABLED
+ COMBOBOX IDC_DRIVELIST,120,193,96,69,CBS_DROPDOWNLIST | WS_DISABLED | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Open &Explorer window for mounted volume",IDC_TRAVEL_OPEN_EXPLORER,
+ "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,211,256,10
+ CONTROL "Mount volume as read-&only",IDC_MOUNT_READONLY,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,224,256,10
+ CONTROL "&Cache password in driver memory",IDC_TRAV_CACHE_PASSWORDS,
+ "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,237,256,10
+ DEFPUSHBUTTON "Create",IDC_CREATE,173,278,57,14
+ PUSHBUTTON "Close",IDCLOSE,236,278,57,14
+ GROUPBOX "File Settings",IDT_FILE_SETTINGS,6,7,287,71
+ GROUPBOX "AutoRun Configuration (autorun.inf)",IDT_AUTORUN,5,88,288,185
+ LTEXT "VeraCrypt volume to mount (relative to traveler disk root):",IDT_TRAVELER_MOUNT,21,165,248,8,WS_DISABLED
+ RTEXT "Mount volume as drive letter:",IDT_MOUNT_LETTER,18,195,99,8,WS_DISABLED
+ LTEXT "Create traveler disk files at (traveler disk root directory):",IDT_TRAVEL_ROOT,18,19,259,8
+ GROUPBOX "Mount Settings",IDT_MOUNT_SETTINGS,13,152,272,114,WS_DISABLED
+ LTEXT "Upon insertion of traveler disk: ",IDT_TRAVEL_INSERTION,13,102,263,8
+ CONTROL "Include VeraCrypt Volume Expander",IDC_COPY_EXPANDER,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,62,258,10
+ CONTROL "Include PIM when caching a password",IDC_PREF_CACHE_PIM,
+ "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,22,250,256,10
+END
+
+IDD_HOTKEYS_DLG DIALOGEX 0, 0, 389, 257
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - System-Wide Hot Keys"
+CLASS "VeraCryptCustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ CONTROL "",IDC_HOTKEY_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,375,115
+ EDITTEXT IDC_HOTKEY_KEY,108,140,190,13,ES_AUTOHSCROLL
+ PUSHBUTTON "Assign",IDC_HOTKEY_ASSIGN,304,140,59,14
+ CONTROL "Ctrl",IDC_HK_MOD_CTRL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,158,46,10,WS_EX_TRANSPARENT
+ CONTROL "Shift",IDC_HK_MOD_SHIFT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,158,49,10,WS_EX_TRANSPARENT
+ CONTROL "Alt",IDC_HK_MOD_ALT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,216,158,43,10,WS_EX_TRANSPARENT
+ CONTROL "Win",IDC_HK_MOD_WIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,266,158,34,10,WS_EX_TRANSPARENT
+ PUSHBUTTON "Remove",IDC_HOTKEY_REMOVE,304,158,59,14
+ CONTROL "Play system notification sound after successful hot-key dismount",IDC_HK_DISMOUNT_PLAY_SOUND,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,201,348,10
+ CONTROL "Display balloon tooltip after successful hot-key dismount",IDC_HK_DISMOUNT_BALLOON_TOOLTIP,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,213,351,10,WS_EX_TRANSPARENT
+ DEFPUSHBUTTON "OK",IDOK,260,236,59,14
+ PUSHBUTTON "Cancel",IDCANCEL,323,236,59,14
+ PUSHBUTTON "Reset",IDC_RESET_HOTKEYS,7,236,59,14
+ RTEXT "Key to assign:",IDT_HOTKEY_KEY,15,142,86,8
+ GROUPBOX "Hot Key Options",IDT_DISMOUNT_ACTION,7,188,375,42
+ GROUPBOX "Shortcut",IDT_ASSIGN_HOTKEY,7,127,375,53
+END
+
+IDD_TOKEN_PREFERENCES DIALOGEX 0, 0, 316, 199
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Security Token Preferences"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ EDITTEXT IDC_PKCS11_MODULE,16,23,204,13,ES_AUTOHSCROLL
+ PUSHBUTTON "Select &Library...",IDC_SELECT_PKCS11_MODULE,226,22,75,14
+ PUSHBUTTON "Auto-&Detect Library",IDC_AUTO_DETECT_PKCS11_MODULE,16,41,112,14
+ CONTROL "&Close token session (log out) after a volume is successfully mounted",IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT,
+ "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,16,154,284,9
+ DEFPUSHBUTTON "OK",IDOK,205,178,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,259,178,50,14
+ GROUPBOX "PKCS #11 Library Path",IDT_PKCS11_LIB_PATH,7,7,302,129
+ GROUPBOX "Security Options",IDT_SECURITY_OPTIONS,7,140,302,30
+ LTEXT "",IDT_PKCS11_LIB_HELP,16,63,286,65
+END
+
+IDD_EFI_SYSENC_SETTINGS DIALOGEX 0, 0, 374, 165
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - System Encryption Settings"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "&Cache pre-boot authentication password in driver memory (for mounting of non-system volumes)",IDC_BOOT_LOADER_CACHE_PASSWORD,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,68,339,10
+ DEFPUSHBUTTON "OK",IDOK,255,141,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,313,141,50,14
+ GROUPBOX "Boot Loader Screen Options",IDT_BOOT_LOADER_SCREEN_OPTIONS,8,7,355,45
+ GROUPBOX "Security Options",IDT_SECURITY_OPTIONS,7,53,355,44
+ CONTROL "Include PIM when caching pre-boot authentication password",IDC_BOOT_LOADER_CACHE_PIM,
+ "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,16,83,340,10
+ CONTROL "Do not request PIM in the pre-boot authentication screen (PIM value is stored unencrypted on disk)",IDC_DISABLE_BOOT_LOADER_PIM_PROMPT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,20,339,9
+ CONTROL "Do not request Hash algorithm in the pre-boot authentication screen",IDC_DISABLE_BOOT_LOADER_HASH_PROMPT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,35,339,9
+ PUSHBUTTON "Display EFI Platform Information",IDC_SHOW_PLATFORMINFO,187,112,173,14
+ PUSHBUTTON "Edit Boot Loader Configuration",IDC_EDIT_DCSPROP,10,112,173,14
+ GROUPBOX "Advanced Options",IDT_ADVANCED_OPTIONS,7,99,355,36
+END
+
+IDD_PERFORMANCE_SETTINGS DIALOGEX 0, 0, 370, 248
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Performance Options"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_HW_AES_SUPPORTED_BY_CPU,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,294,21,57,12,WS_EX_CLIENTEDGE
+ CONTROL "Accelerate AES encryption/decryption by using the AES instructions of the processor (if available)",IDC_ENABLE_HARDWARE_ENCRYPTION,
+ "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,18,41,340,17
+ LTEXT "More information",IDC_MORE_INFO_ON_HW_ACCELERATION,18,61,165,10,SS_NOTIFY
+ CONTROL "Do not use the following number of processors for encryption/decryption:",IDC_LIMIT_ENC_THREAD_POOL,
+ "Button",BS_AUTOCHECKBOX | BS_TOP | WS_TABSTOP,18,103,283,11
+ COMBOBOX IDC_ENCRYPTION_FREE_CPU_COUNT,304,101,48,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "More information",IDC_MORE_INFO_ON_THREAD_BASED_PARALLELIZATION,18,159,165,10,SS_NOTIFY
+ PUSHBUTTON "&Benchmark",IDC_BENCHMARK,7,227,59,14
+ DEFPUSHBUTTON "OK",IDOK,257,227,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,313,227,50,14
+ LTEXT "Processor (CPU) in this computer supports hardware acceleration for AES:",IDT_HW_AES_SUPPORTED_BY_CPU,18,23,273,9
+ GROUPBOX "Hardware Acceleration",IDT_ACCELERATION_OPTIONS,7,6,355,74
+ GROUPBOX "Thread-Based Parallelization",IDT_PARALLELIZATION_OPTIONS,7,84,355,93
+ LTEXT "",IDT_LIMIT_ENC_THREAD_POOL_NOTE,18,126,334,33
+ GROUPBOX "Driver Configuration",IDT_DRIVER_OPTIONS,7,183,356,36
+ CONTROL "Enable extended disk control codes support",IDC_ENABLE_EXTENDED_IOCTL_SUPPORT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,198,337,10
+END
+
+IDD_FAVORITE_VOLUMES DIALOGEX 0, 0, 380, 368
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Favorite Volumes"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_FAVORITE_VOLUMES_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,366,92
+ PUSHBUTTON "Move &Up",IDC_FAVORITE_MOVE_UP,7,104,63,14
+ PUSHBUTTON "Move &Down",IDC_FAVORITE_MOVE_DOWN,74,104,63,14
+ PUSHBUTTON "&Remove",IDC_FAVORITE_REMOVE,310,104,63,14
+ EDITTEXT IDC_FAVORITE_LABEL,18,225,344,13,ES_AUTOHSCROLL
+ CONTROL "Mount selected volume as read-o&nly",IDC_FAVORITE_MOUNT_READONLY,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,255,349,10
+ CONTROL "Mount selected volume as remo&vable medium",IDC_FAVORITE_MOUNT_REMOVABLE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,269,349,10
+ CONTROL "Mount selected volume upon log&on",IDC_FAVORITE_MOUNT_ON_LOGON,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,283,349,10
+ CONTROL "Mount selected volume when its host device gets &connected",IDC_FAVORITE_MOUNT_ON_ARRIVAL,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,297,349,10
+ CONTROL "Open &Explorer window for selected volume when successfully mounted",IDC_FAVORITE_OPEN_EXPLORER_WIN_ON_MOUNT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,311,349,11
+ CONTROL "Do not mount selected volume when 'Mount Favorite Volumes' &hot key is pressed",IDC_FAVORITE_DISABLE_HOTKEY,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,326,349,11
+ LTEXT "Help on favorite volumes",IDC_FAVORITES_HELP_LINK,17,351,237,10,SS_NOTIFY
+ DEFPUSHBUTTON "OK",IDOK,269,347,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,323,347,50,14
+ GROUPBOX "",IDC_FAV_VOL_OPTIONS_GROUP_BOX,7,123,366,219
+ LTEXT "Label of selected favorite volume:",IDT_FAVORITE_LABEL,18,215,202,8
+ GROUPBOX "Global Settings",IDC_FAV_VOL_OPTIONS_GLOBAL_SETTINGS_BOX,7,300,366,42
+ EDITTEXT IDC_PIM,87,183,42,13,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,135,186,189,8
+ LTEXT "Volume PIM:",IDT_PIM,18,185,65,8
+ CONTROL "Display PIM",IDC_SHOW_PIM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,200,150,10
+ CONTROL "Use favorite label as Explorer drive label",IDC_FAVORITE_USE_LABEL_IN_EXPLORER,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,242,349,10
+ LTEXT "Volume ID:",IDT_VOLUME_ID,18,132,62,8
+ EDITTEXT IDC_FAVORITE_VOLUME_ID,87,130,275,14,ES_AUTOHSCROLL | ES_READONLY
+ CONTROL "Use Volume ID to mount favorite",IDC_FAVORITE_USE_VOLUME_ID,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,148,337,10
+ COMBOBOX IDC_PKCS5_PRF_ID,87,166,96,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,189,168,76,10
+ LTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,19,168,63,10
+END
+
+IDD_DEFAULT_MOUNT_PARAMETERS DIALOGEX 0, 0, 167, 65
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Mount Parameters"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,57,44,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,111,44,50,14
+ COMBOBOX IDC_PKCS5_PRF_ID,57,24,103,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ LTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,8,26,44,11
+ CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,76,10
+END
+
+IDD_SYSENC_SETTINGS DIALOGEX 0, 0, 370, 286
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - System Encryption Settings"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "Do not &show any texts in the pre-boot authentication screen (except the below custom message)",IDC_DISABLE_BOOT_LOADER_OUTPUT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,20,339,9
+ EDITTEXT IDC_CUSTOM_BOOT_LOADER_MESSAGE,18,50,216,14,ES_AUTOHSCROLL
+ CONTROL "&Cache pre-boot authentication password in driver memory (for mounting of non-system volumes)",IDC_BOOT_LOADER_CACHE_PASSWORD,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,192,339,10
+ CONTROL "Allow pre-boot &authentication to be bypassed by pressing the Esc key (enables boot manager)",IDC_ALLOW_ESC_PBA_BYPASS,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,222,340,10
+ DEFPUSHBUTTON "OK",IDOK,257,262,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,313,262,50,14
+ LTEXT "Display this custom message in the pre-boot authentication screen (24 characters maximum):",IDT_CUSTOM_BOOT_LOADER_MESSAGE,18,39,337,8
+ GROUPBOX "Boot Loader Screen Options",IDT_BOOT_LOADER_SCREEN_OPTIONS,8,7,355,165
+ GROUPBOX "Security Options",IDT_SECURITY_OPTIONS,8,177,355,75
+ LTEXT "",IDC_CUSTOM_BOOT_LOADER_MESSAGE_HELP,18,72,337,73
+ CONTROL "Disable ""Evil Maid"" attack detection",IDC_DISABLE_EVIL_MAID_ATTACK_DETECTION,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,237,340,10
+ CONTROL "Include PIM when caching pre-boot authentication password",IDC_BOOT_LOADER_CACHE_PIM,
+ "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,18,207,340,10
+ CONTROL "Do not request PIM in the pre-boot authentication screen (PIM value is stored unencrypted on disk)",IDC_DISABLE_BOOT_LOADER_PIM_PROMPT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,157,339,9
+END
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_PREFERENCES_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 329
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 338
+ END
+
+ IDD_VOLUME_PROPERTIES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 277
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 217
+ END
+
+ IDD_PASSWORDCHANGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 339
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 238
+ END
+
+ IDD_MOUNT_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 369
+ BOTTOMMARGIN, 269
+ END
+
+ IDD_PASSWORD_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 321
+ BOTTOMMARGIN, 98
+ END
+
+ IDD_TRAVELER_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 293
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 292
+ END
+
+ IDD_HOTKEYS_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 382
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 250
+ END
+
+ IDD_TOKEN_PREFERENCES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 309
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 192
+ END
+
+ IDD_EFI_SYSENC_SETTINGS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 367
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 155
+ END
+
+ IDD_PERFORMANCE_SETTINGS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 363
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 241
+ END
+
+ IDD_FAVORITE_VOLUMES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 373
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 361
+ END
+
+ IDD_DEFAULT_MOUNT_PARAMETERS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 160
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 58
+ END
+
+ IDD_SYSENC_SETTINGS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 363
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 276
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,21,5,0
+ PRODUCTVERSION 1,21,5,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "IDRIX"
+ VALUE "FileDescription", "VeraCrypt"
+ VALUE "FileVersion", "1.21"
+ VALUE "LegalTrademarks", "VeraCrypt"
+ VALUE "OriginalFilename", "VeraCrypt.exe"
+ VALUE "ProductName", "VeraCrypt"
+ VALUE "ProductVersion", "1.21"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "#include ""..\\\\common\\\\resource.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "#include ""..\\\\common\\\\common.rc""\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_DRIVEICON BITMAP "Drive_icon_96dpi.bmp"
+IDB_DRIVEICON_MASK BITMAP "Drive_icon_mask_96dpi.bmp"
+IDB_LOGO_96DPI BITMAP "Logo_96dpi.bmp"
+IDB_LOGO_288DPI BITMAP "Logo_288dpi.bmp"
+IDB_SYS_DRIVEICON BITMAP "System_drive_icon_96dpi.bmp"
+IDB_SYS_DRIVEICON_MASK BITMAP "System_drive_icon_mask_96dpi.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MENU MENU
+BEGIN
+ POPUP "&Volumes"
+ BEGIN
+ MENUITEM "Select File...", IDM_SELECT_FILE
+ MENUITEM "Select Device...", IDM_SELECT_DEVICE
+ MENUITEM SEPARATOR
+ MENUITEM "Create New Volume...", IDM_CREATE_VOLUME
+ MENUITEM "Permanently Decrypt...", IDM_DECRYPT_NONSYS_VOL
+ MENUITEM "Resume Interrupted Process", IDM_RESUME_INTERRUPTED_PROC
+ MENUITEM SEPARATOR
+ MENUITEM "Mount Volume", IDM_MOUNT_VOLUME
+ MENUITEM "Mount Volume with Options", IDM_MOUNT_VOLUME_OPTIONS
+ MENUITEM "Auto-Mount All Device-Hosted Volumes", IDM_MOUNTALL
+ MENUITEM SEPARATOR
+ MENUITEM "Dismount Volume", IDM_UNMOUNT_VOLUME
+ MENUITEM "Dismount All Mounted Volumes", IDM_UNMOUNTALL
+ MENUITEM SEPARATOR
+ MENUITEM "Change Volume Password...", IDM_CHANGE_PASSWORD
+ MENUITEM "Add/Remove Keyfiles to/from Volume...", IDM_ADD_REMOVE_VOL_KEYFILES
+ MENUITEM "Remove All Keyfiles from Volume...", IDM_REMOVE_ALL_KEYFILES_FROM_VOL
+ MENUITEM "Set Header Key Derivation Algorithm...", IDM_CHANGE_HEADER_KEY_DERIV_ALGO
+ MENUITEM SEPARATOR
+ MENUITEM "Volume Properties", IDM_VOLUME_PROPERTIES
+ END
+ POPUP "S&ystem"
+ BEGIN
+ MENUITEM "Encrypt System Partition/Drive...", IDM_ENCRYPT_SYSTEM_DEVICE
+ MENUITEM "Permanently Decrypt System Partition/Drive", IDM_PERMANENTLY_DECRYPT_SYS
+ MENUITEM "Resume Interrupted Process", IDM_SYSENC_RESUME
+ MENUITEM SEPARATOR
+ MENUITEM "Create Hidden Operating System...", IDM_CREATE_HIDDEN_OS
+ MENUITEM SEPARATOR
+ MENUITEM "Create Rescue Disk...", IDM_CREATE_RESCUE_DISK
+ MENUITEM "Verify Rescue Disk", IDM_VERIFY_RESCUE_DISK
+ MENUITEM "Verify Rescue Disk Image", IDM_VERIFY_RESCUE_DISK_ISO
+ MENUITEM SEPARATOR
+ MENUITEM "Mount Without Pre-Boot &Authentication...", IDM_MOUNT_SYSENC_PART_WITHOUT_PBA
+ MENUITEM SEPARATOR
+ MENUITEM "Change Password...", IDM_CHANGE_SYS_PASSWORD
+ MENUITEM "Set Header Key Derivation Algorithm...", IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO
+ MENUITEM SEPARATOR
+ MENUITEM "Properties...", IDM_SYSTEM_ENCRYPTION_STATUS
+ MENUITEM SEPARATOR
+ MENUITEM "Settings...", IDM_SYS_ENC_SETTINGS
+ END
+ POPUP "Favor&ites"
+ BEGIN
+ MENUITEM "Add Mounted Volume to Favorites...", IDM_ADD_VOLUME_TO_FAVORITES
+ MENUITEM "Add Mounted Volume to System Favorites...", IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES
+ MENUITEM SEPARATOR
+ MENUITEM "Organize Favorite Volumes...", IDM_ORGANIZE_FAVORITES
+ MENUITEM "Organize System Favorite Volumes...", IDM_ORGANIZE_SYSTEM_FAVORITES
+ MENUITEM SEPARATOR
+ MENUITEM "Mount Favorite Volumes", IDM_MOUNT_FAVORITE_VOLUMES
+ END
+ POPUP "T&ools"
+ BEGIN
+ MENUITEM "Benchmark...", IDM_BENCHMARK
+ MENUITEM "Test Vectors...", IDM_TEST_VECTORS
+ MENUITEM SEPARATOR
+ MENUITEM "Traveler Disk Setup...", IDM_TRAVELER
+ MENUITEM "Volume Expander", IDM_VOLUME_EXPANDER
+ MENUITEM "Volume Creation Wizard", IDM_VOLUME_WIZARD
+ MENUITEM SEPARATOR
+ MENUITEM "Keyfile Generator", IDM_KEYFILE_GENERATOR
+ MENUITEM "Manage Security Token Keyfiles...", IDM_MANAGE_TOKEN_KEYFILES
+ MENUITEM "Close All Security Token Sessions", IDM_CLOSE_ALL_TOKEN_SESSIONS
+ MENUITEM SEPARATOR
+ MENUITEM "Backup Volume Header...", IDM_BACKUP_VOL_HEADER
+ MENUITEM "Restore Volume Header...", IDM_RESTORE_VOL_HEADER
+ MENUITEM SEPARATOR
+ MENUITEM "Refresh Drive Letters", IDM_REFRESH_DRIVE_LETTERS
+ MENUITEM SEPARATOR
+ MENUITEM "Clear Volume History", IDM_CLEAR_HISTORY
+ MENUITEM "Wipe Cached Passwords", IDM_WIPE_CACHE
+ END
+ POPUP "Settin&gs"
+ BEGIN
+ MENUITEM "Language...", IDM_LANGUAGE
+ MENUITEM "Hot Keys...", IDM_HOTKEY_SETTINGS
+ MENUITEM SEPARATOR
+ MENUITEM "System Encryption...", IDM_SYSENC_SETTINGS
+ MENUITEM "System Favorite Volumes...", IDM_SYS_FAVORITES_SETTINGS
+ MENUITEM SEPARATOR
+ MENUITEM "Performance/Driver Configuration", IDM_PERFORMANCE_SETTINGS
+ MENUITEM SEPARATOR
+ MENUITEM "Default Keyfiles...", IDM_DEFAULT_KEYFILES
+ MENUITEM "Default Mount Parameters...", IDM_DEFAULT_MOUNT_PARAMETERS
+ MENUITEM "Security Tokens...", IDM_TOKEN_PREFERENCES
+ MENUITEM SEPARATOR
+ MENUITEM "Preferences...", IDM_PREFERENCES
+ END
+ POPUP "Hel&p"
+ BEGIN
+ MENUITEM "User's Guide", IDM_HELP
+ MENUITEM "Online Help", IDM_ONLINE_HELP
+ MENUITEM "Beginner's Tutorial", IDM_ONLINE_TUTORIAL
+ MENUITEM "Frequently Asked Questions", IDM_FAQ
+ MENUITEM SEPARATOR
+ MENUITEM "VeraCrypt Website", IDM_WEBSITE
+ MENUITEM "Downloads", IDM_TC_DOWNLOADS
+ MENUITEM "News", IDM_NEWS
+ MENUITEM "Version History", IDM_VERSION_HISTORY
+ MENUITEM SEPARATOR
+ MENUITEM "Donate now...", IDM_DONATE
+ MENUITEM "Contact", IDM_CONTACT
+ MENUITEM "Legal Notices", IDM_LICENSE
+ MENUITEM "About", IDM_ABOUT
+ END
+ MENUITEM "&Homepage ", IDM_HOMEPAGE
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE
+BEGIN
+ IDS_UACSTRING "VeraCrypt"
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "..\\common\\common.rc"
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/Mount/Mount.vcproj b/src/Mount/Mount.vcproj
index 64163c7..c9a6ebc 100644
--- a/src/Mount/Mount.vcproj
+++ b/src/Mount/Mount.vcproj
@@ -1,1027 +1,1027 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="Mount"
- ProjectGUID="{E4C40F94-E7F9-4981-86E4-186B46F993F3}"
- RootNamespace="Mount"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- ExceptionHandling="1"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="true"
- EnableFunctionLevelLinking="false"
- UsePrecompiledHeader="0"
- BrowseInformation="0"
- BrowseInformationFile=""
- WarningLevel="4"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCrypt.exe"
- LinkIncremental="2"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/Mount.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Mount.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCrypt.exe &quot;..\Debug\Setup Files&quot; &gt;NUL:&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TargetEnvironment="3"
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- MinimalRebuild="true"
- ExceptionHandling="1"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="true"
- EnableFunctionLevelLinking="false"
- UsePrecompiledHeader="0"
- BrowseInformation="0"
- BrowseInformationFile=""
- WarningLevel="4"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCrypt.exe"
- LinkIncremental="2"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/Mount.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Mount.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy $(TargetPath) &quot;..\Debug\Setup Files\VeraCrypt-x64.exe&quot; &gt;NUL:&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/w34189"
- Optimization="2"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="4"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCrypt.exe"
- LinkIncremental="1"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="false"
- GenerateMapFile="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Mount.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy Release\VeraCrypt.exe &quot;..\Release\Setup Files&quot;"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- AdditionalIncludeDirectories=""
- TargetEnvironment="3"
- TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
- OutputDirectory=""
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/w34189"
- Optimization="2"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="4"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCrypt.exe"
- LinkIncremental="1"
- GenerateManifest="false"
- IgnoreAllDefaultLibraries="false"
- DelayLoadDLLs="mpr.dll"
- GenerateDebugInformation="false"
- GenerateMapFile="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Mount.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy $(TargetPath) &quot;..\Release\Setup Files\VeraCrypt-x64.exe&quot;"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\Favorites.cpp"
- >
- </File>
- <File
- RelativePath=".\Hotkeys.c"
- >
- </File>
- <File
- RelativePath=".\MainCom.cpp"
- >
- </File>
- <File
- RelativePath=".\MainCom.idl"
- >
- </File>
- <File
- RelativePath=".\Mount.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\BaseCom.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\BootEncryption.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\Cmdline.c"
- >
- </File>
- <File
- RelativePath="..\Common\Combo.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.c"
- >
- </File>
- <File
- RelativePath="..\Common\Crypto.c"
- >
- </File>
- <File
- RelativePath="..\Common\Dictionary.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Dlgcode.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.c"
- >
- </File>
- <File
- RelativePath="..\Common\Endian.c"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.c"
- >
- </File>
- <File
- RelativePath="..\Common\Keyfiles.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Language.c"
- >
- </File>
- <File
- RelativePath="..\Common\Password.c"
- >
- </File>
- <File
- RelativePath="..\Common\Pkcs5.c"
- >
- </File>
- <File
- RelativePath="..\Common\Random.c"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.c"
- >
- </File>
- <File
- RelativePath="..\Common\SecurityToken.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\Tests.c"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.c"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.c"
- >
- </File>
- <File
- RelativePath="..\Common\Wipe.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xml.c"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.c"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\Common\Apidrvr.h"
- >
- </File>
- <File
- RelativePath="..\Common\BaseCom.h"
- >
- </File>
- <File
- RelativePath="..\Common\BootEncryption.h"
- >
- </File>
- <File
- RelativePath="..\Common\Cmdline.h"
- >
- </File>
- <File
- RelativePath="..\Common\Combo.h"
- >
- </File>
- <File
- RelativePath="..\Common\Common.h"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.h"
- >
- </File>
- <File
- RelativePath="..\Common\Crypto.h"
- >
- </File>
- <File
- RelativePath="..\Common\Dictionary.h"
- >
- </File>
- <File
- RelativePath="..\Common\Dlgcode.h"
- >
- </File>
- <File
- RelativePath="..\Common\EncryptionThreadPool.h"
- >
- </File>
- <File
- RelativePath="..\Common\Exception.h"
- >
- </File>
- <File
- RelativePath=".\Favorites.h"
- >
- </File>
- <File
- RelativePath="..\Common\GfMul.h"
- >
- </File>
- <File
- RelativePath=".\Hotkeys.h"
- >
- </File>
- <File
- RelativePath="..\Common\Keyfiles.h"
- >
- </File>
- <File
- RelativePath="..\Common\Language.h"
- >
- </File>
- <File
- RelativePath=".\MainCom.h"
- >
- </File>
- <File
- RelativePath=".\Mount.h"
- >
- </File>
- <File
- RelativePath="..\Common\Password.h"
- >
- </File>
- <File
- RelativePath="..\Common\Pkcs5.h"
- >
- </File>
- <File
- RelativePath="..\Common\Random.h"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.h"
- >
- </File>
- <File
- RelativePath="..\Common\Resource.h"
- >
- </File>
- <File
- RelativePath=".\resource.h"
- >
- </File>
- <File
- RelativePath="..\Common\SecurityToken.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tcdefs.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tests.h"
- >
- </File>
- <File
- RelativePath="..\Common\Volumes.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xml.h"
- >
- </File>
- <File
- RelativePath="..\Common\Xts.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_AES_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootSector.bin"
- >
- </File>
- <File
- RelativePath=".\Drive_icon_96dpi.bmp"
- >
- </File>
- <File
- RelativePath=".\Drive_icon_mask_96dpi.bmp"
- >
- </File>
- <File
- RelativePath=".\Logo_288dpi.bmp"
- >
- </File>
- <File
- RelativePath=".\Logo_96dpi.bmp"
- >
- </File>
- <File
- RelativePath=".\Mount.manifest"
- >
- </File>
- <File
- RelativePath=".\Mount.rc"
- >
- </File>
- <File
- RelativePath=".\Mount.tlb"
- >
- </File>
- <File
- RelativePath=".\System_drive_icon_96dpi.bmp"
- >
- </File>
- <File
- RelativePath=".\System_drive_icon_mask_96dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt_mounted.ico"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt_volume.ico"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Serpent\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_AES\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Serpent\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_AES\BootSector.bin"
- >
- </File>
- <File
- RelativePath="..\Common\Common.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Boot\Windows\Release\Decompressor.com"
- >
- </File>
- <File
- RelativePath="..\Common\Language.xml"
- >
- </File>
- <File
- RelativePath="..\Resources\Texts\License.rtf"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_288dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_96dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_background.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt.ico"
- >
- </File>
- </Filter>
- </Filter>
- <File
- RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_AES_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootLoader.com.gz"
- >
- </File>
- <File
- RelativePath="..\Boot\Windows\Rescue_SHA2\BootLoader.com.gz"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="Mount"
+ ProjectGUID="{E4C40F94-E7F9-4981-86E4-186B46F993F3}"
+ RootNamespace="Mount"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ ExceptionHandling="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="false"
+ UsePrecompiledHeader="0"
+ BrowseInformation="0"
+ BrowseInformationFile=""
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCrypt.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/Mount.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Mount.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCrypt.exe &quot;..\Debug\Setup Files&quot; &gt;NUL:&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TargetEnvironment="3"
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ MinimalRebuild="true"
+ ExceptionHandling="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="false"
+ UsePrecompiledHeader="0"
+ BrowseInformation="0"
+ BrowseInformationFile=""
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCrypt.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/Mount.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Mount.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy $(TargetPath) &quot;..\Debug\Setup Files\VeraCrypt-x64.exe&quot; &gt;NUL:&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/w34189"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="4"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCrypt.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="false"
+ GenerateMapFile="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Mount.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Release\VeraCrypt.exe &quot;..\Release\Setup Files&quot;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""
+ TargetEnvironment="3"
+ TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+ OutputDirectory=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/w34189"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="4"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4057;4100;4127;4201;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCrypt.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
+ GenerateDebugInformation="false"
+ GenerateMapFile="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Mount.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy $(TargetPath) &quot;..\Release\Setup Files\VeraCrypt-x64.exe&quot;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\Favorites.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Hotkeys.c"
+ >
+ </File>
+ <File
+ RelativePath=".\MainCom.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\MainCom.idl"
+ >
+ </File>
+ <File
+ RelativePath=".\Mount.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\BaseCom.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\BootEncryption.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Cmdline.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Combo.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crypto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dictionary.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Endian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Keyfiles.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Language.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Password.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Pkcs5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Random.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\SecurityToken.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tests.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Wipe.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xml.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.c"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\Common\Apidrvr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\BaseCom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\BootEncryption.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Cmdline.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Combo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Common.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crypto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dictionary.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\EncryptionThreadPool.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Exception.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Favorites.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\GfMul.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Hotkeys.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Keyfiles.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Language.h"
+ >
+ </File>
+ <File
+ RelativePath=".\MainCom.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Mount.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Password.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Pkcs5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Resource.h"
+ >
+ </File>
+ <File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\SecurityToken.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tcdefs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tests.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Volumes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xml.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Xts.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_AES_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath=".\Drive_icon_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\Drive_icon_mask_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\Logo_288dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\Logo_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\Mount.manifest"
+ >
+ </File>
+ <File
+ RelativePath=".\Mount.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\Mount.tlb"
+ >
+ </File>
+ <File
+ RelativePath=".\System_drive_icon_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\System_drive_icon_mask_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt_mounted.ico"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt_volume.ico"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_AES\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_AES\BootSector.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Common.rc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release\Decompressor.com"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Language.xml"
+ >
+ </File>
+ <File
+ RelativePath="..\Resources\Texts\License.rtf"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_288dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_background.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt.ico"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_AES_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Serpent_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_Twofish_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_AES_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Serpent_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Release_Twofish_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ <File
+ RelativePath="..\Boot\Windows\Rescue_SHA2\BootLoader.com.gz"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/Mount/Mount.vcxproj b/src/Mount/Mount.vcxproj
index 16edb51..c5df7a0 100644
--- a/src/Mount/Mount.vcxproj
+++ b/src/Mount/Mount.vcxproj
@@ -115,7 +115,7 @@
<DisableSpecificWarnings>4057;4100;4127;4201;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\Debug\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\Debug\crypto.lib;..\Common\Debug\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCrypt.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -164,7 +164,7 @@ copy Debug\VeraCrypt.exe "..\Debug\Setup Files" &gt;NUL:
<DisableSpecificWarnings>4057;4100;4127;4201;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\x64\Debug\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\x64\Debug\crypto.lib;..\Common\x64\Debug\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCrypt.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -183,6 +183,9 @@ copy Debug\VeraCrypt.exe "..\Debug\Setup Files" &gt;NUL:
copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" &gt;NUL:
</Command>
</PostBuildEvent>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
@@ -203,21 +206,20 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" &gt;NUL:
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4057;4100;4127;4201;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\Release\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\Release\crypto.lib;..\Common\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCrypt.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
- <GenerateDebugInformation>false</GenerateDebugInformation>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
@@ -248,21 +250,20 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" &gt;NUL:
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4057;4100;4127;4201;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;..\Common\x64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCrypt.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<DelayLoadDLLs>mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
- <GenerateDebugInformation>false</GenerateDebugInformation>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
@@ -272,150 +273,11 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" &gt;NUL:
<PostBuildEvent>
<Command>copy $(TargetPath) "..\Release\Setup Files\VeraCrypt-x64.exe"</Command>
</PostBuildEvent>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c" />
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_close.c" />
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c" />
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c" />
- <ClCompile Include="..\Common\libzip\zip_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_error.c" />
- <ClCompile Include="..\Common\libzip\zip_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c" />
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c" />
- <ClCompile Include="..\Common\libzip\zip_err_str.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c" />
- <ClCompile Include="..\Common\libzip\zip_fclose.c" />
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_file_add.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c" />
- <ClCompile Include="..\Common\libzip\zip_file_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_file_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c" />
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fread.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_name.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c" />
- <ClCompile Include="..\Common\libzip\zip_hash.c" />
- <ClCompile Include="..\Common\libzip\zip_io_util.c" />
- <ClCompile Include="..\Common\libzip\zip_memdup.c" />
- <ClCompile Include="..\Common\libzip\zip_name_locate.c" />
- <ClCompile Include="..\Common\libzip\zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_open.c" />
- <ClCompile Include="..\Common\libzip\zip_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c" />
- <ClCompile Include="..\Common\libzip\zip_set_name.c" />
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_source_call.c" />
- <ClCompile Include="..\Common\libzip\zip_source_close.c" />
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c" />
- <ClCompile Include="..\Common\libzip\zip_source_error.c" />
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c" />
- <ClCompile Include="..\Common\libzip\zip_source_function.c" />
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c" />
- <ClCompile Include="..\Common\libzip\zip_source_layered.c" />
- <ClCompile Include="..\Common\libzip\zip_source_open.c" />
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c" />
- <ClCompile Include="..\Common\libzip\zip_source_read.c" />
- <ClCompile Include="..\Common\libzip\zip_source_remove.c" />
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_source_supports.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c" />
- <ClCompile Include="..\Common\libzip\zip_source_window.c" />
- <ClCompile Include="..\Common\libzip\zip_source_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_index.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_init.c" />
- <ClCompile Include="..\Common\libzip\zip_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_string.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c" />
- <ClCompile Include="..\Common\libzip\zip_utf-8.c" />
- <ClCompile Include="..\Common\zlib\adler32.c" />
- <ClCompile Include="..\Common\zlib\crc32.c" />
- <ClCompile Include="..\Common\zlib\deflate.c" />
- <ClCompile Include="..\Common\zlib\inffast.c" />
- <ClCompile Include="..\Common\zlib\inflate.c" />
- <ClCompile Include="..\Common\zlib\inftrees.c" />
- <ClCompile Include="..\Common\zlib\trees.c" />
- <ClCompile Include="..\Common\zlib\zutil.c" />
<ClCompile Include="Favorites.cpp" />
<ClCompile Include="Hotkeys.c" />
<ClCompile Include="MainCom.cpp" />
@@ -468,13 +330,6 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" &gt;NUL:
<Midl Include="MainCom.idl" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="..\Common\libzip\compat.h" />
- <ClInclude Include="..\Common\libzip\config.h" />
- <ClInclude Include="..\Common\libzip\zconf.h" />
- <ClInclude Include="..\Common\libzip\zip.h" />
- <ClInclude Include="..\Common\libzip\zipconf.h" />
- <ClInclude Include="..\Common\libzip\zipint.h" />
- <ClInclude Include="..\Common\libzip\zipwin32.h" />
<ClInclude Include="..\Common\Wipe.h" />
<ClInclude Include="..\Common\Apidrvr.h" />
<ClInclude Include="..\Common\BaseCom.h" />
@@ -488,18 +343,6 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" &gt;NUL:
<ClInclude Include="..\Common\Dlgcode.h" />
<ClInclude Include="..\Common\EncryptionThreadPool.h" />
<ClInclude Include="..\Common\Exception.h" />
- <ClInclude Include="..\Common\XUnzip.h" />
- <ClInclude Include="..\Common\XZip.h" />
- <ClInclude Include="..\Common\zlib\crc32.h" />
- <ClInclude Include="..\Common\zlib\deflate.h" />
- <ClInclude Include="..\Common\zlib\inffast.h" />
- <ClInclude Include="..\Common\zlib\inffixed.h" />
- <ClInclude Include="..\Common\zlib\inflate.h" />
- <ClInclude Include="..\Common\zlib\inftrees.h" />
- <ClInclude Include="..\Common\zlib\trees.h" />
- <ClInclude Include="..\Common\zlib\zconf.h" />
- <ClInclude Include="..\Common\zlib\zlib.h" />
- <ClInclude Include="..\Common\zlib\zutil.h" />
<ClInclude Include="Favorites.h" />
<ClInclude Include="..\Common\GfMul.h" />
<ClInclude Include="Hotkeys.h" />
diff --git a/src/Mount/Mount.vcxproj.filters b/src/Mount/Mount.vcxproj.filters
index 811b386..b29330c 100644
--- a/src/Mount/Mount.vcxproj.filters
+++ b/src/Mount/Mount.vcxproj.filters
@@ -19,12 +19,6 @@
<Filter Include="Resource Files\Common">
<UniqueIdentifier>{f805ede6-c210-4210-95ce-e33edb12bc27}</UniqueIdentifier>
</Filter>
- <Filter Include="Source Files\Common\libzip">
- <UniqueIdentifier>{318128e2-1443-4dce-83e6-f3e1c92d6787}</UniqueIdentifier>
- </Filter>
- <Filter Include="Source Files\Common\zlib">
- <UniqueIdentifier>{21a4f879-0684-4016-ad89-f27c8ab96cf8}</UniqueIdentifier>
- </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Favorites.cpp">
@@ -108,342 +102,6 @@
<ClCompile Include="..\Common\Xts.c">
<Filter>Source Files\Common</Filter>
</ClCompile>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fclose.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fread.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_io_util.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_name_locate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_function.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_layered.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_read.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_remove.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_supports.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_window.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_init.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_string.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_utf-8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\adler32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\crc32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\deflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\trees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\zutil.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inftrees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inffast.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_err_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_hash.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_memdup.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_call.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="MainCom.idl">
@@ -547,63 +205,6 @@
<ClInclude Include="..\Common\Xts.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\Common\XZip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\XUnzip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\compat.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\config.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zconf.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zip.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipint.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipwin32.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\crc32.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\deflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffast.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffixed.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inftrees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\trees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zconf.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zlib.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zutil.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipconf.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\Boot\Windows\Rescue_Serpent_SHA2\BootSector.bin">
diff --git a/src/Mount/Resource.h b/src/Mount/Resource.h
index 1286091..907e5ad 100644
--- a/src/Mount/Resource.h
+++ b/src/Mount/Resource.h
@@ -183,6 +183,10 @@
#define IDC_DISABLE_BOOT_LOADER_PIM_PROMPT 1160
#define IDC_HIDE_WAITING_DIALOG 1161
#define IDC_DISABLE_BOOT_LOADER_HASH_PROMPT 1162
+#define IDC_SECURE_DESKTOP_PASSWORD_ENTRY 1163
+#define IDC_SHOW_PLATFORMINFO 1164
+#define IDC_EDIT_DCSPROP 1165
+#define IDT_ADVANCED_OPTIONS 1166
#define IDM_HELP 40001
#define IDM_ABOUT 40002
#define IDM_UNMOUNT_VOLUME 40003
@@ -259,7 +263,7 @@
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 120
#define _APS_NEXT_COMMAND_VALUE 40069
-#define _APS_NEXT_CONTROL_VALUE 1163
+#define _APS_NEXT_CONTROL_VALUE 1167
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/src/Release/Setup Files/NOTICE b/src/NOTICE
index 7ded056..7ded056 100644
--- a/src/Release/Setup Files/NOTICE
+++ b/src/NOTICE
diff --git a/src/Platform/Buffer.cpp b/src/Platform/Buffer.cpp
index a53fd3d..7c61dc4 100644
--- a/src/Platform/Buffer.cpp
+++ b/src/Platform/Buffer.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Buffer.h b/src/Platform/Buffer.h
index 797cd7f..1150fcf 100644
--- a/src/Platform/Buffer.h
+++ b/src/Platform/Buffer.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Directory.h b/src/Platform/Directory.h
index 89b91ad..b960db0 100644
--- a/src/Platform/Directory.h
+++ b/src/Platform/Directory.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Event.cpp b/src/Platform/Event.cpp
index bfa0da7..86dcdde 100644
--- a/src/Platform/Event.cpp
+++ b/src/Platform/Event.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Event.h b/src/Platform/Event.h
index 5aef362..7d1cc2e 100644
--- a/src/Platform/Event.h
+++ b/src/Platform/Event.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Exception.cpp b/src/Platform/Exception.cpp
index 40739ed..7bce461 100644
--- a/src/Platform/Exception.cpp
+++ b/src/Platform/Exception.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Exception.h b/src/Platform/Exception.h
index 0b3aab4..71cfa1c 100644
--- a/src/Platform/Exception.h
+++ b/src/Platform/Exception.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/File.h b/src/Platform/File.h
index 5bb25a0..09924b2 100644
--- a/src/Platform/File.h
+++ b/src/Platform/File.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/FileCommon.cpp b/src/Platform/FileCommon.cpp
index a533126..11d23dd 100644
--- a/src/Platform/FileCommon.cpp
+++ b/src/Platform/FileCommon.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/FileStream.h b/src/Platform/FileStream.h
index e64160e..0ef4086 100644
--- a/src/Platform/FileStream.h
+++ b/src/Platform/FileStream.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/FilesystemPath.h b/src/Platform/FilesystemPath.h
index 145be3f..c92f684 100644
--- a/src/Platform/FilesystemPath.h
+++ b/src/Platform/FilesystemPath.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Finally.h b/src/Platform/Finally.h
index 7afd9ae..63f0710 100644
--- a/src/Platform/Finally.h
+++ b/src/Platform/Finally.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/ForEach.h b/src/Platform/ForEach.h
index b16da0c..a6131eb 100644
--- a/src/Platform/ForEach.h
+++ b/src/Platform/ForEach.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Functor.h b/src/Platform/Functor.h
index f17801d..e23e12d 100644
--- a/src/Platform/Functor.h
+++ b/src/Platform/Functor.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Memory.cpp b/src/Platform/Memory.cpp
index 1184d46..785f758 100644
--- a/src/Platform/Memory.cpp
+++ b/src/Platform/Memory.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Memory.h b/src/Platform/Memory.h
index d303c23..2b022df 100644
--- a/src/Platform/Memory.h
+++ b/src/Platform/Memory.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/MemoryStream.cpp b/src/Platform/MemoryStream.cpp
index ed888f4..8bf229f 100644
--- a/src/Platform/MemoryStream.cpp
+++ b/src/Platform/MemoryStream.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/MemoryStream.h b/src/Platform/MemoryStream.h
index 0c38f4d..3df0bd1 100644
--- a/src/Platform/MemoryStream.h
+++ b/src/Platform/MemoryStream.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Mutex.h b/src/Platform/Mutex.h
index 7289c5c..8308282 100644
--- a/src/Platform/Mutex.h
+++ b/src/Platform/Mutex.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Platform.h b/src/Platform/Platform.h
index c1c0834..6f7f791 100644
--- a/src/Platform/Platform.h
+++ b/src/Platform/Platform.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Platform.make b/src/Platform/Platform.make
index 3c04bd1..0a3c143 100644
--- a/src/Platform/Platform.make
+++ b/src/Platform/Platform.make
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
diff --git a/src/Platform/PlatformBase.h b/src/Platform/PlatformBase.h
index bbe116f..22022dc 100644
--- a/src/Platform/PlatformBase.h
+++ b/src/Platform/PlatformBase.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/PlatformTest.cpp b/src/Platform/PlatformTest.cpp
index f5f5b1c..7362d6b 100644
--- a/src/Platform/PlatformTest.cpp
+++ b/src/Platform/PlatformTest.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/PlatformTest.h b/src/Platform/PlatformTest.h
index 4b37f3a..64810f8 100644
--- a/src/Platform/PlatformTest.h
+++ b/src/Platform/PlatformTest.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Serializable.cpp b/src/Platform/Serializable.cpp
index a9151c0..4a307e9 100644
--- a/src/Platform/Serializable.cpp
+++ b/src/Platform/Serializable.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Serializable.h b/src/Platform/Serializable.h
index ef1fbdb..c92bc17 100644
--- a/src/Platform/Serializable.h
+++ b/src/Platform/Serializable.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Serializer.cpp b/src/Platform/Serializer.cpp
index 0016694..b69fe89 100644
--- a/src/Platform/Serializer.cpp
+++ b/src/Platform/Serializer.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Serializer.h b/src/Platform/Serializer.h
index 97d3f12..c2dac32 100644
--- a/src/Platform/Serializer.h
+++ b/src/Platform/Serializer.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SerializerFactory.cpp b/src/Platform/SerializerFactory.cpp
index 03bf948..4c7f4f7 100644
--- a/src/Platform/SerializerFactory.cpp
+++ b/src/Platform/SerializerFactory.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SerializerFactory.h b/src/Platform/SerializerFactory.h
index 29a1f65..9c53d30 100644
--- a/src/Platform/SerializerFactory.h
+++ b/src/Platform/SerializerFactory.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SharedPtr.h b/src/Platform/SharedPtr.h
index 5e86547..7675c2a 100644
--- a/src/Platform/SharedPtr.h
+++ b/src/Platform/SharedPtr.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SharedVal.h b/src/Platform/SharedVal.h
index b66deae..fc64f3f 100644
--- a/src/Platform/SharedVal.h
+++ b/src/Platform/SharedVal.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Stream.h b/src/Platform/Stream.h
index ac3d52d..b9862a5 100644
--- a/src/Platform/Stream.h
+++ b/src/Platform/Stream.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/StringConverter.cpp b/src/Platform/StringConverter.cpp
index c6934ae..6975bb3 100644
--- a/src/Platform/StringConverter.cpp
+++ b/src/Platform/StringConverter.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/StringConverter.h b/src/Platform/StringConverter.h
index ad391fc..8756d5b 100644
--- a/src/Platform/StringConverter.h
+++ b/src/Platform/StringConverter.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SyncEvent.h b/src/Platform/SyncEvent.h
index aa87cc1..fde6380 100644
--- a/src/Platform/SyncEvent.h
+++ b/src/Platform/SyncEvent.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/System.h b/src/Platform/System.h
index 918f264..5024568 100644
--- a/src/Platform/System.h
+++ b/src/Platform/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SystemException.h b/src/Platform/SystemException.h
index 7ba48e1..ede3c5c 100644
--- a/src/Platform/SystemException.h
+++ b/src/Platform/SystemException.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SystemInfo.h b/src/Platform/SystemInfo.h
index 89d3f44..5e1f63c 100644
--- a/src/Platform/SystemInfo.h
+++ b/src/Platform/SystemInfo.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/SystemLog.h b/src/Platform/SystemLog.h
index 72bd920..cff3f21 100644
--- a/src/Platform/SystemLog.h
+++ b/src/Platform/SystemLog.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/TextReader.cpp b/src/Platform/TextReader.cpp
index 1f4003e..7d6a0c6 100644
--- a/src/Platform/TextReader.cpp
+++ b/src/Platform/TextReader.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/TextReader.h b/src/Platform/TextReader.h
index 4acc6a3..bfeaa52 100644
--- a/src/Platform/TextReader.h
+++ b/src/Platform/TextReader.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Thread.h b/src/Platform/Thread.h
index 6e8c394..2f16d2a 100644
--- a/src/Platform/Thread.h
+++ b/src/Platform/Thread.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Time.h b/src/Platform/Time.h
index ff60687..c85b363 100644
--- a/src/Platform/Time.h
+++ b/src/Platform/Time.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Directory.cpp b/src/Platform/Unix/Directory.cpp
index 9c0590c..50de000 100644
--- a/src/Platform/Unix/Directory.cpp
+++ b/src/Platform/Unix/Directory.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/File.cpp b/src/Platform/Unix/File.cpp
index 5c45dcf..cfb17e1 100644
--- a/src/Platform/Unix/File.cpp
+++ b/src/Platform/Unix/File.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/FilesystemPath.cpp b/src/Platform/Unix/FilesystemPath.cpp
index f5d59f9..c7bfece 100644
--- a/src/Platform/Unix/FilesystemPath.cpp
+++ b/src/Platform/Unix/FilesystemPath.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Mutex.cpp b/src/Platform/Unix/Mutex.cpp
index a6b61de..b69a5c6 100644
--- a/src/Platform/Unix/Mutex.cpp
+++ b/src/Platform/Unix/Mutex.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Pipe.cpp b/src/Platform/Unix/Pipe.cpp
index f427ae6..b05acd7 100644
--- a/src/Platform/Unix/Pipe.cpp
+++ b/src/Platform/Unix/Pipe.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Pipe.h b/src/Platform/Unix/Pipe.h
index 72af91b..eb79d9d 100644
--- a/src/Platform/Unix/Pipe.h
+++ b/src/Platform/Unix/Pipe.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Poller.cpp b/src/Platform/Unix/Poller.cpp
index 6b84563..25d2ba7 100644
--- a/src/Platform/Unix/Poller.cpp
+++ b/src/Platform/Unix/Poller.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Poller.h b/src/Platform/Unix/Poller.h
index 054fe75..a46c035 100644
--- a/src/Platform/Unix/Poller.h
+++ b/src/Platform/Unix/Poller.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Process.cpp b/src/Platform/Unix/Process.cpp
index 92a8f47..4a7f9a1 100644
--- a/src/Platform/Unix/Process.cpp
+++ b/src/Platform/Unix/Process.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Process.h b/src/Platform/Unix/Process.h
index d19d573..bb8482f 100644
--- a/src/Platform/Unix/Process.h
+++ b/src/Platform/Unix/Process.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/SyncEvent.cpp b/src/Platform/Unix/SyncEvent.cpp
index 10bbc0c..0336164 100644
--- a/src/Platform/Unix/SyncEvent.cpp
+++ b/src/Platform/Unix/SyncEvent.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/System.h b/src/Platform/Unix/System.h
index 3038490..7225dae 100644
--- a/src/Platform/Unix/System.h
+++ b/src/Platform/Unix/System.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/SystemException.cpp b/src/Platform/Unix/SystemException.cpp
index be051cc..428edfe 100644
--- a/src/Platform/Unix/SystemException.cpp
+++ b/src/Platform/Unix/SystemException.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/SystemInfo.cpp b/src/Platform/Unix/SystemInfo.cpp
index c3e3ab3..d4f648b 100644
--- a/src/Platform/Unix/SystemInfo.cpp
+++ b/src/Platform/Unix/SystemInfo.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/SystemLog.cpp b/src/Platform/Unix/SystemLog.cpp
index 88027e4..7222137 100644
--- a/src/Platform/Unix/SystemLog.cpp
+++ b/src/Platform/Unix/SystemLog.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Thread.cpp b/src/Platform/Unix/Thread.cpp
index 2d9fae0..099c465 100644
--- a/src/Platform/Unix/Thread.cpp
+++ b/src/Platform/Unix/Thread.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/Unix/Time.cpp b/src/Platform/Unix/Time.cpp
index e98cea6..356dde7 100644
--- a/src/Platform/Unix/Time.cpp
+++ b/src/Platform/Unix/Time.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Platform/User.h b/src/Platform/User.h
index ae7c179..d5b51aa 100644
--- a/src/Platform/User.h
+++ b/src/Platform/User.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Readme.txt b/src/Readme.txt
index 5280ac3..65f5d1e 100644
--- a/src/Readme.txt
+++ b/src/Readme.txt
@@ -18,16 +18,16 @@ Contents
========
I. Windows
- Requirements for Building VeraCrypt for Windows
- Instructions for Building VeraCrypt for Windows
- Instructions for Signing and Packaging VeraCrypt for Windows
+ Requirements for Building VeraCrypt for Windows.
+ Instructions for Building VeraCrypt for Windows.
+ Instructions for Signing and Packaging VeraCrypt for Windows.
II. Linux and Mac OS X
- Requirements for Building VeraCrypt for Linux and Mac OS X
- Instructions for Building VeraCrypt for Linux and Mac OS X
+ Requirements for Building VeraCrypt for Linux and Mac OS X.
+ Instructions for Building VeraCrypt for Linux and Mac OS X.
Mac OS X specifics
-III. FreeBSD and OpenSolaris
+III. FreeBSD
IV. Third-Party Developers (Contributors)
@@ -49,8 +49,9 @@ Requirements for Building VeraCrypt for Windows:
- Microsoft Windows SDK for Windows 8.1 (needed for SHA-256 code signing)
- Microsoft Windows Driver Kit 7.1.0 (build 7600.16385.1)
- NASM assembler 2.08 or compatible
+- YASM 1.3.0 or newer.
- gzip compressor
-- upx packer (available at http://upx.sourceforge.net/)
+- upx packer (available at https://upx.github.io/)
IMPORTANT:
@@ -128,11 +129,10 @@ Requirements for Building VeraCrypt for Linux and Mac OS X:
- GNU Make
- GNU C++ Compiler 4.0 or compatible
- Apple Xcode (Mac OS X only)
-- NASM assembler 2.08 or compatible (x86/x64 architecture only)
+- YASM 1.3.0 or newer (Linux only, x86/x64 architecture only)
- pkg-config
-- makeself (Linux only)
- wxWidgets 3.0 shared library and header files installed or
- wxWidgets 3.0 library source code (available at http://www.wxwidgets.org)
+ wxWidgets 3.0 library source code (available at https://www.wxwidgets.org)
- FUSE library and header files (available at https://github.com/libfuse/libfuse
and https://osxfuse.github.io/)
@@ -183,7 +183,7 @@ of the SDK (i.e. 10.6), you can export the environment variable VC_OSX_TARGET:
Before building under MacOSX, pkg-config must be installed if not yet available.
-Get it from http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz and
+Get it from https://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz and
compile using the following commands :
$ ./configure --with-internal-glib
@@ -195,24 +195,27 @@ https://osxfuse.github.io/ (MacFUSE compatibility layer must selected)
The script build_veracrypt_macosx.sh available under "src/Build" performs the
full build of VeraCrypt including the creation of the installer pkg. It expects
-to find the wxWidgets 3.0.2 sources at the same level as where you put
+to find the wxWidgets 3.0.3 sources at the same level as where you put
VeraCrypt sources (i.e. if "src" path is "/Users/joe/Projects/VeraCrypt/src"
-then wxWidgets should be at "/Users/joe/Projects/wxWidgets-3.0.2")
+then wxWidgets should be at "/Users/joe/Projects/wxWidgets-3.0.3")
The build process uses Code Signing certificates whose ID is specified in
-src/Main/Main.make (lines 167 & 169). You'll have to modify these lines to put
-the ID of your Code Signing certificates or comment them if you don't have one.
+src/Main/Main.make (look for lines containing "Developer ID Application" and
+"Developer ID Installer"). You'll have to modify these lines to put the ID of
+your Code Signing certificates or comment them if you don't have one.
Because of incompatibility issues with OSXFUSE, the SDK 10.9 generates a
VeraCrypt binary that has issues communicating with the OSXFUSE kernel extension.
-Thus, we recommend to use the SDK 10.8 or earlier for building VeraCrypt.
+Thus, we recommend using a different OSX SDK version for building VeraCrypt.
-III. FreeBSD and OpenSolaris
+III. FreeBSD
============================
-FreeBSD and OpenSolaris are not yet supported.
+FreeBSD is supported starting from version 11.
+The build requirements and instructions are the same as Linux except that gmake
+should be used instead of make.
@@ -227,7 +230,7 @@ If you intend to implement a feature, please contact us first to make sure:
3) Whether we need help of third-party developers with implementing the feature.
Information on how to contact us can be found at:
-https://veracrypt.codeplex.com/
+https://www.veracrypt.fr/
@@ -238,14 +241,14 @@ Copyright Information
---------------------
This software as a whole:
-Copyright (c) 2013-2016 IDRIX. All rights reserved.
+Copyright (c) 2013-2017 IDRIX. All rights reserved.
Portions of this software:
-Copyright (c) 2013-2016 IDRIX. All rights reserved.
+Copyright (c) 2013-2017 IDRIX. All rights reserved.
Copyright (c) 2003-2012 TrueCrypt Developers Association. All rights reserved.
Copyright (c) 1998-2000 Paul Le Roux. All rights reserved.
Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved.
-Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler.
+Copyright (c) 1995-2017 Jean-loup Gailly and Mark Adler.
Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
Copyright (c) Dieter Baron and Thomas Klausner.
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
@@ -265,4 +268,4 @@ documentation, are the sole property of their respective owners.
VI. Further Information
=======================
-http://www.veracrypt.fr
+https://www.veracrypt.fr
diff --git a/src/Release/Setup Files/VeraCrypt User Guide.pdf b/src/Release/Setup Files/VeraCrypt User Guide.pdf
deleted file mode 100644
index bfb9335..0000000
--- a/src/Release/Setup Files/VeraCrypt User Guide.pdf
+++ /dev/null
Binary files differ
diff --git a/src/Release/Setup Files/veracrypt-x64.sys b/src/Release/Setup Files/veracrypt-x64.sys
index 611f410..be571d8 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.sys b/src/Release/Setup Files/veracrypt.sys
index 5def81a..5c1689b 100644
--- a/src/Release/Setup Files/veracrypt.sys
+++ b/src/Release/Setup Files/veracrypt.sys
Binary files differ
diff --git a/src/Resources/Icons/VeraCrypt_Volume.icns b/src/Resources/Icons/VeraCrypt_Volume.icns
new file mode 100644
index 0000000..808243f
--- /dev/null
+++ b/src/Resources/Icons/VeraCrypt_Volume.icns
Binary files differ
diff --git a/src/Setup/ComSetup.cpp b/src/Setup/ComSetup.cpp
index 7fe3ef4..8d59a3f 100644
--- a/src/Setup/ComSetup.cpp
+++ b/src/Setup/ComSetup.cpp
@@ -4,17 +4,17 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
*/
#define TC_MAIN_COM_VERSION_MAJOR 2
-#define TC_MAIN_COM_VERSION_MINOR 8
+#define TC_MAIN_COM_VERSION_MINOR 9
#define TC_FORMAT_COM_VERSION_MAJOR 2
-#define TC_FORMAT_COM_VERSION_MINOR 6
+#define TC_FORMAT_COM_VERSION_MINOR 7
#include <atlbase.h>
#include <comdef.h>
@@ -39,12 +39,10 @@ extern "C" BOOL RegisterComServers (wchar_t *modulePath)
UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR, 0, SYS_WIN32);
UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR, 0, SYS_WIN32);
// unregister older versions that may still exist
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-4, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-3, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-2, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-1, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR-2, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR-1, 0, SYS_WIN32);
+ for (WORD i = 5; i >= 1; i--)
+ UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-i, 0, SYS_WIN32);
+ for (WORD i = 3; i >= 1; i--)
+ UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR-i, 0, SYS_WIN32);
wchar_t setupModule[MAX_PATH];
GetModuleFileNameW (NULL, setupModule, sizeof (setupModule) / sizeof (setupModule[0]));
@@ -80,13 +78,10 @@ extern "C" BOOL UnregisterComServers (wchar_t *modulePath)
return FALSE;
// unregister older versions that may still exist
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-4, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-3, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-3, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-2, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-1, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR-2, 0, SYS_WIN32);
- UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR-1, 0, SYS_WIN32);
+ for (WORD i = 5; i >= 1; i--)
+ UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-i, 0, SYS_WIN32);
+ for (WORD i = 3; i >= 1; i--)
+ UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR-i, 0, SYS_WIN32);
wchar_t module[1024];
CRegObject ro;
diff --git a/src/Setup/ComSetup.h b/src/Setup/ComSetup.h
index 6001fde..85d0f24 100644
--- a/src/Setup/ComSetup.h
+++ b/src/Setup/ComSetup.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Setup/Dir.c b/src/Setup/Dir.c
index 3619f2d..2d4feec 100644
--- a/src/Setup/Dir.c
+++ b/src/Setup/Dir.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Setup/Dir.h b/src/Setup/Dir.h
index 5db9fa5..fb9dfc6 100644
--- a/src/Setup/Dir.h
+++ b/src/Setup/Dir.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Setup/FreeBSD/veracrypt-uninstall.sh b/src/Setup/FreeBSD/veracrypt-uninstall.sh
new file mode 100644
index 0000000..f8f111e
--- /dev/null
+++ b/src/Setup/FreeBSD/veracrypt-uninstall.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+V="$(mount | grep veracrypt_aux_mnt)"
+[ "$V" ] && echo Error: All volumes must be dismounted first. && exit 1
+
+rm -f /usr/bin/veracrypt
+rm -f /usr/share/applications/veracrypt.desktop
+rm -f /usr/share/pixmaps/veracrypt.xpm
+rm -fr /usr/share/veracrypt
+
+echo VeraCrypt uninstalled.
+rm -f /usr/bin/veracrypt-uninstall.sh
diff --git a/src/Setup/FreeBSD/veracrypt.desktop b/src/Setup/FreeBSD/veracrypt.desktop
new file mode 100644
index 0000000..01dfaf6
--- /dev/null
+++ b/src/Setup/FreeBSD/veracrypt.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=VeraCrypt
+GenericName=VeraCrypt
+Comment=VeraCrypt
+Exec=/usr/bin/veracrypt
+Icon=veracrypt
+Terminal=false
+Type=Application
+Categories=Encryption;Encryption Tools;Utility;
diff --git a/src/Release/Setup Files/License.txt b/src/Setup/FreeBSD/veracrypt_install_template.sh
index 5a638ac..c34f585 100644
--- a/src/Release/Setup Files/License.txt
+++ b/src/Setup/FreeBSD/veracrypt_install_template.sh
@@ -1,3 +1,126 @@
+#
+# Derived from source code of TrueCrypt 7.1a, which is
+# Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed
+# by the TrueCrypt License 3.0.
+#
+# Modifications and additions to the original source code (contained in this file)
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
+# and are 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.
+#
+
+PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/X11
+
+PACKAGE_DIR=$(dirname $(mktemp))
+PACKAGE=$PACKAGE_DIR/$PACKAGE_NAME
+umask 022
+
+
+# Terminal setup
+
+TTY=0
+tty >/dev/null 2>/dev/null && TTY=1
+
+GUI=0
+XMESSAGE=0
+XTERM=0
+GTERM=0
+KTERM=0
+
+
+case $PACKAGE_TYPE in
+ tar)
+ PACKAGE_INSTALLER=tar
+ PACKAGE_INSTALLER_OPTS='-C / -xpzvf'
+ ;;
+esac
+
+
+if [ -n "$DISPLAY" -a "$INSTALLER_TYPE" != "console" ]
+then
+ GUI=1
+ which xmessage >/dev/null 2>/dev/null && XMESSAGE=1
+ which xterm >/dev/null 2>/dev/null && XTERM=1
+ which gnome-terminal >/dev/null 2>/dev/null && GTERM=1
+ which konsole >/dev/null 2>/dev/null && KTERM=1
+fi
+
+if [ $TTY -eq 0 ]
+then
+ [ $GUI -eq 0 ] && echo 'Error: Terminal required' >&2 && exit 1
+
+ if [ $XMESSAGE -eq 0 ] || ([ $XTERM -eq 0 ] && [ $GTERM -eq 0 ] && [ $KTERM -eq 0 ])
+ then
+ which gnome-terminal && exec gnome-terminal -e "$0"
+ which konsole && exec konsole -e "$0"
+ which xterm && exec xterm -e "$0"
+
+ [ $XMESSAGE -eq 1 ] && show_exit_message 'Error: Terminal required'
+ exit 1
+ fi
+fi
+
+if [ $XMESSAGE -eq 0 ] || ([ $XTERM -eq 0 ] && [ $GTERM -eq 0 ] && [ $KTERM -eq 0 ])
+then
+ GUI=0
+ XMESSAGE=0
+ XTERM=0
+ GTERM=0
+ KTERM=0
+fi
+
+
+show_message()
+{
+ if [ $GUI -eq 1 ]
+ then
+ if [ $XMESSAGE -eq 1 ]
+ then
+ xmessage -center -buttons OK -default OK "$*"
+ else
+ if [ $TTY -eq 1 ]
+ then
+ echo "$*"
+ else
+ if [ $XTERM -eq 1 ]
+ then
+ xterm -T 'VeraCrypt Setup' -e sh -c "echo $*; read A"
+ else
+ if [ $GTERM -eq 1 ]
+ then
+ gnome-terminal --title='VeraCrypt Setup' -e "sh -c \"echo $*; read A\""
+ else
+ if [ $KTERM -eq 1 ]
+ then
+ konsole --title 'VeraCrypt Setup' --caption 'VeraCrypt Setup' -e sh -c "echo $*; read A"
+ fi
+ fi
+ fi
+ fi
+ fi
+ else
+ echo "$*"
+ fi
+}
+
+show_exit_message()
+{
+ show_message "$*"
+
+ if [ $XMESSAGE -eq 0 ]
+ then
+ printf 'Press Enter to exit... '
+ read A
+ fi
+}
+
+# License extraction
+
+trap 'rm -f $LICENSE $PACKAGE; exit 1' HUP INT QUIT TERM
+LICENSE=$(mktemp)
+
+cat >$LICENSE <<_LICENSE_END
VeraCrypt License
Software distributed under this license is distributed on an "AS
IS" BASIS WITHOUT WARRANTIES OF ANY KIND. THE AUTHORS AND
@@ -21,180 +144,190 @@ other names confusingly similar to the name VeraCrypt (e.g.,
Vera-Crypt, Vera Crypt, VerKrypt, etc.)
____________________________________________________________
- Apache License
- Version 2.0, January 2004
- https://www.apache.org/licenses/
+Apache License
+Version 2.0, January 2004
+https://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
+"License" shall mean the terms and conditions for use,
+reproduction, and distribution as defined by Sections 1 through
+9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized
+by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all
+other entities that control, are controlled by, or are under
+common control with that entity. For the purposes of this
+definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity, whether by
+contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership
+of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making
+modifications, including but not limited to software source
+code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or
+Object form, made available under the License, as indicated by
+a copyright notice that is included in or attached to the work
+(an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or
+Object form, that is based on (or derived from) the Work and
+for which the editorial revisions, annotations, elaborations, or
+other modifications represent, as a whole, an original work of
+authorship. For the purposes of this License, Derivative Works
+shall not include works that remain separable from, or merely
+link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including
+the original version of the Work and any modifications or
+additions to that Work or Derivative Works thereof, that is
+intentionally submitted to Licensor for inclusion in the Work by
+the copyright owner or by an individual or Legal Entity
+authorized to submit on behalf of the copyright owner. For the
+purposes of this definition, "submitted" means any form
+of electronic, verbal, or written communication sent to the
+Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control
+systems, and issue tracking systems that are managed by, or on
+behalf of, the Licensor for the purpose of discussing and
+improving the Work, but excluding communication that is
+conspicuously marked or otherwise designated in writing by the
+copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal
+Entity on behalf of whom a Contribution has been received by
+Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and
+conditions of this License, each Contributor hereby grants to
+You a perpetual, worldwide, non-exclusive, no-charge,
+royalty-free, irrevocable copyright license to reproduce,
+prepare Derivative Works of, publicly display, publicly perform,
+sublicense, and distribute the Work and such Derivative Works
+in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions
+of this License, each Contributor hereby grants to You a
+perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable(except as stated in this section) patent license
+to make, have made, use, offer to sell, sell, import, and
+otherwise transfer the Work, where such license applies only
+to those patent claims licensable by such Contributor that are
+necessarily infringed by their Contribution(s) alone or by
+combination of their Contribution(s) with the Work to which such
+Contribution(s) was submitted. If You institute patent
+litigation against any entity (including a cross-claim or
+counterclaim in a lawsuit) alleging that the Work or a
+Contribution incorporated within the Work constitutes direct or
+contributory patent infringement, then any patent licenses
+granted to You under this License for that Work shall terminate
+as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of
+the Work or Derivative Works thereof in any medium, with or
+without modifications, and in Source or Object form, provided
+that You meet the following conditions:
+
+(a) You must give any other recipients of the Work or Derivative
+ Works a copy of this License; and
+(b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+(c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+(d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute
+ must include a readable copy of the attribution notices
+ contained within such NOTICE file, excluding those notices
+ that do not pertain to any part of the Derivative Works, in
+ at least one of the following places: within a NOTICE text
+ file distributed as part of the Derivative Works; within the
+ Source form or documentation, if provided along with the
+ Derivative Works; or, within a display generated by the
+ Derivative Works, if and wherever such third-party notices
+ normally appear. The contents of the NOTICE file are for
+ informational purposes only and do not modify the License.
+ You may add Your own attribution notices within Derivative
+ Works that You distribute, alongside or as an addendum to
+ the NOTICE text from the Work, provided that such additional
+ attribution notices cannot be construed as modifying
+ the License.
+
+You may add Your own copyright statement to Your modifications
+and may provide additional or different license terms
+and conditions for use, reproduction, or distribution of
+Your modifications, or for any such Derivative Works as a whole,
+provided Your use, reproduction, and distribution of the Work
+otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state
+otherwise, any Contribution intentionally submitted for
+inclusion in the Work by You to the Licensor shall be under the
+terms and conditions of this License, without any additional
+terms or conditions. Notwithstanding the above, nothing herein
+shall supersede or modify the terms of any separate license
+agreement you may have executed with Licensor regarding such
+Contributions.
+
+6. Trademarks. This License does not grant permission to use the
+trade names, trademarks, service marks, or product names of the
+Licensor, except as required for reasonable and customary use in
+describing the origin of the Work and reproducing the content of
+the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or
+conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY,
+or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible
+for determining the appropriateness of using or redistributing
+the Work and assume any risks associated with Your exercise of
+permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal
+theory, whether in tort (including negligence), contract,
+or otherwise, unless required by applicable law (such as
+deliberate and grossly negligent acts) or agreed to in writing,
+shall any Contributor be liable to You for damages, including
+any direct, indirect, special, incidental, or consequential
+damages of any character arising as a result of this License or
+out of the use or inability to use the Work (including but not
+limited to damages for loss of goodwill, work stoppage, computer
+failure or malfunction, or any and all other commercial damages
+or losses), even if such Contributor has been advised of the
+possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While
+redistributing the Work or Derivative Works thereof, You may
+choose to offer, and charge a fee for, acceptance of support,
+warranty, indemnity, or other liability obligations and/or
+rights consistent with this License. However, in accepting such
+obligations, You may act only on Your own behalf and on Your
+sole responsibility, not on behalf of any other Contributor,
+and only if You agree to indemnify, defend, and hold each
+Contributor harmless for any liability incurred by, or claims
+asserted against, such Contributor by reason of your accepting
+any such warranty or additional liability.
____________________________________________________________
TrueCrypt License Version 3.0
@@ -679,94 +812,289 @@ warranties in respect of its properties, including, but not
limited to, correctness and/or fitness for purpose.
____________________________________________________________
-Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+Copyright (C) 2002-2004 Mark Adler, all rights reserved
+version 1.8, 9 Jan 2004
+
+This software is provided 'as-is', without any express or
+implied warranty. In no event will the author be held liable
+for any damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any
+purpose, including commercial applications, and to alter it and
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you
+ must not claim that you wrote the original software. If you
+ use this software in a product, an acknowledgment in the
+ product documentation would be appreciated but is not
+ required.
+2. Altered source versions must be plainly marked as such, and
+ must not be misrepresented as being the original software.
+3. This notice may not be removed or altered from any source
+ distribution.
+____________________________________________________________
+_LICENSE_END
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
+[ $? -ne 0 ] && show_exit_message 'Error while extracting license' && exit 1
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
+# Task selection
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-____________________________________________________________
-Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
-
-The authors can be contacted at <libzip@nih.at>
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
-3. The names of the authors may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-____________________________________________________________
-Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
+INSTALL=-1
-____________________________________________________________
-Copyright (c) 2016. Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
-This program and the accompanying materials are licensed and made available
-under the terms and conditions of the GNU Lesser General Public License,
-version 3.0 (LGPL-3.0).
+if [ $XMESSAGE -eq 1 ]
+then
-The full text of the license may be found at https://opensource.org/licenses/LGPL-3.0
-____________________________________________________________
-Copyright (c) 1999-2013,2014,2015,2016 Jack Lloyd.
+ cat <<_END | xmessage -center -file - -buttons "Exit:1,Extract .$PACKAGE_TYPE Package File:20,Install VeraCrypt:10" -default 'Install VeraCrypt'
+VeraCrypt $VERSION Setup
+====================
+ VeraCrypt is a free disk encryption software brought to you by IDRIX
+ (http://www.idrix.fr) and that is based on TrueCrypt.
+ It is a software system for establishing and maintaining an
+ on-the-fly-encrypted volume (data storage device). On-the-fly encryption
+ means that data are automatically encrypted or decrypted right before they
+ are loaded or saved, without any user intervention. No data stored on an
+ encrypted volume can be read (decrypted) without using the correct
+ password/keyfile(s) or correct encryption keys. Entire file system is
+ encrypted (e.g., file names, folder names, contents of every file,
+ free space, meta data, etc).
-All rights reserved.
+Please select one of the below options:
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-____________________________________________________________
+_END
+
+ SEL=$?
+
+ case $SEL in
+ 1) exit 1
+ ;;
+ 10) INSTALL=1
+ ;;
+ 20) INSTALL=0
+ ;;
+ esac
+
+else
+
+ while [ $INSTALL -eq -1 ]
+ do
+ clear
+ cat <<_MENU_END
+VeraCrypt $VERSION Setup
+____________________
+
+
+Installation options:
+
+ 1) Install $PACKAGE_NAME
+ 2) Extract package file $PACKAGE_NAME and place it to $PACKAGE_DIR
+
+_MENU_END
+
+ printf 'To select, enter 1 or 2: '
+
+ read SEL
+ [ -z "$SEL" ] && SEL=1
+
+ case $SEL in
+ 1) INSTALL=1
+ ;;
+ 2) INSTALL=0
+ ;;
+ esac
+ done
+
+fi
+
+
+# Administrator privileges check
+
+SUDO=sudo
+
+if [ $INSTALL -eq 1 -a $(id -u) -ne 0 ]
+then
+ if ! which $SUDO >/dev/null 2>/dev/null
+ then
+ show_exit_message "Error: Administrator privileges required ($SUDO command is not installed)"
+ rm -f $LICENSE
+ exit 1
+ fi
+else
+ unset SUDO
+fi
+
+[ -n "$SUDO" -a $GUI -eq 1 ] && which gksudo >/dev/null 2>/dev/null && SUDO="gksudo -D 'VeraCrypt Setup' --"
+[ -n "$SUDO" -a $GUI -eq 1 ] && which kdesudo >/dev/null 2>/dev/null && SUDO="kdesudo -d --comment 'VeraCrypt Setup' --"
+
+
+# License agreement
+
+if [ $XMESSAGE -eq 1 ]
+then
+
+# GUI license agreement
+
+ cat <<_END | cat - $LICENSE | xmessage -center -file - -buttons 'I accept and agree to be bound by the license terms:10,I do not accept:20'
+
+Before you can use, extract, or install VeraCrypt, you must accept these
+license terms.
+
+IMPORTANT: By clicking the left button below this text field, you accept
+these license terms and agree to be bound by and to comply with them.
+Press Page Down key or use the scroll bar to see the rest of the license.
+
+
+
+_END
+
+ SEL=$?
+
+ rm -f $LICENSE
+ if [ $SEL -ne 10 ]
+ then
+ show_exit_message 'Installation/extraction aborted'
+ exit 1
+ fi
+
+else
+
+# Console license agreement
+
+printf '\nBefore you can use, extract, or install VeraCrypt, you must accept the\n'
+printf 'terms of the VeraCrypt License.\n\nPress Enter to display the license terms... '
+read A
+
+MORE=more
+HASLESS=0
+which less >/dev/null 2>/dev/null && HASLESS=1
+if [ $HASLESS -eq 1 ]
+then
+ MORE='less -E -X'
+fi
+ cat <<_END | cat - $LICENSE | $MORE
+
+Press Enter or space bar to see the rest of the license.
+
+
+_END
+ if [ $? -ne 0 ]
+ then
+ if [ $HASLESS -eq 1 ]
+ then
+# use less without -X as it is not supported by some versions (busybox case)
+ MORE='less -E'
+ cat <<_END | cat - $LICENSE | $MORE
+
+Press Enter or space bar to see the rest of the license.
+
+
+_END
+ [ $? -ne 0 ] && exit 1
+ else
+ exit 1
+ fi
+ fi
+
+ rm -f $LICENSE
+
+ ACCEPTED=0
+ while [ $ACCEPTED -eq 0 ]
+ do
+ printf '\n\nDo you accept and agree to be bound by the license terms? (yes/no): '
+
+ read SEL
+
+ case $SEL in
+ y|Y|yes|YES)
+ ACCEPTED=1
+ ;;
+ n|N|no|NO)
+ exit 0
+ ;;
+ esac
+ done
+fi
+
+
+# Package extraction
+
+[ $GUI -eq 0 ] && echo
+
+if ! tail -n +$PACKAGE_START "$0" >$PACKAGE
+then
+ show_exit_message "Error: Extraction to $PACKAGE failed"
+ exit 1
+fi
+
+
+# Package installation
+
+if [ "$PACKAGE_TYPE" = "tar" ]
+then
+ if ! which fusermount >/dev/null 2>/dev/null || ! which dmsetup >/dev/null 2>/dev/null
+ then
+ show_message "$(cat <<_INFO
+Requirements for Running VeraCrypt:
+-----------------------------------
+
+ - FUSE library and tools
+ - device mapper tools
+
+_INFO
+)"
+ [ $GUI -eq 0 ] && echo && echo Press Enter to continue... && read A
+ fi
+
+ show_message "$(cat <<_INFO
+Uninstalling VeraCrypt:
+-----------------------
+
+To uninstall VeraCrypt, please run 'veracrypt-uninstall.sh'.
+
+_INFO
+)"
+ [ $GUI -eq 0 ] && echo
+fi
+
+if [ $INSTALL -eq 1 ]
+then
+
+ INSTALLED=0
+
+ if [ $GUI -eq 1 ]
+ then
+ if [ $XTERM -eq 1 ]
+ then
+ exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A"
+ else
+ if [ $GTERM -eq 1 ]
+ then
+ exec gnome-terminal --title='VeraCrypt Setup' -e "sh -c \"echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A\""
+ else
+ if [ $KTERM -eq 1 ]
+ then
+ exec konsole --title 'VeraCrypt Setup' --caption 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A"
+ fi
+ fi
+ fi
+ else
+ echo 'Installing package...'
+ $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && INSTALLED=1
+
+ if [ $INSTALLED -eq 1 ]
+ then
+ show_exit_message ''
+ fi
+ fi
+
+ rm -f $PACKAGE
+ if [ $INSTALLED -ne 1 ]
+ then
+ show_exit_message 'Error: VeraCrypt installation failed'
+ exit 1
+ fi
+else
+ show_exit_message "Installation package '$PACKAGE_NAME' extracted and placed in '$PACKAGE_DIR'"
+fi
+
+exit 0
diff --git a/src/Setup/Linux/veracrypt-uninstall.sh b/src/Setup/Linux/veracrypt-uninstall.sh
index 82ea309..f8f111e 100644
--- a/src/Setup/Linux/veracrypt-uninstall.sh
+++ b/src/Setup/Linux/veracrypt-uninstall.sh
@@ -3,11 +3,9 @@ V="$(mount | grep veracrypt_aux_mnt)"
[ "$V" ] && echo Error: All volumes must be dismounted first. && exit 1
rm -f /usr/bin/veracrypt
-rm -f /usr/share/veracrypt/doc/License.txt
-rm -f '/usr/share/veracrypt/doc/VeraCrypt User Guide.pdf'
rm -f /usr/share/applications/veracrypt.desktop
rm -f /usr/share/pixmaps/veracrypt.xpm
-rmdir /usr/share/veracrypt/doc /usr/share/veracrypt
+rm -fr /usr/share/veracrypt
echo VeraCrypt uninstalled.
rm -f /usr/bin/veracrypt-uninstall.sh
diff --git a/src/Setup/Linux/veracrypt_install_template.sh b/src/Setup/Linux/veracrypt_install_template.sh
index 8eaf15c..533bd50 100644
--- a/src/Setup/Linux/veracrypt_install_template.sh
+++ b/src/Setup/Linux/veracrypt_install_template.sh
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
diff --git a/src/Setup/MacOSX/veracrypt.pkgproj b/src/Setup/MacOSX/veracrypt.pkgproj
index 059f3d3..8b849e7 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.19.4</string>
+ <string>1.21.5</string>
</dict>
<key>UUID</key>
<string>B14381D9-EC5F-43E4-B971-82AB3D132A64</string>
@@ -646,7 +646,7 @@
<key>VALUE</key>
<dict>
<key>PATH</key>
- <string>../../Release/Setup Files/License.txt</string>
+ <string>../../License.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
</dict>
@@ -736,7 +736,7 @@
<key>IC_REQUIREMENT_OS_DISTRIBUTION_TYPE</key>
<integer>0</integer>
<key>IC_REQUIREMENT_OS_MINIMUM_VERSION</key>
- <integer>100601</integer>
+ <integer>100701</integer>
</dict>
<key>IC_REQUIREMENT_CHECK_TYPE</key>
<integer>0</integer>
@@ -748,13 +748,13 @@
<key>LANGUAGE</key>
<string>English</string>
<key>VALUE</key>
- <string>VeraCrypt requires MacOSX 10.6.1 and above.</string>
+ <string>VeraCrypt requires MacOSX 10.7.1 and above.</string>
</dict>
<dict>
<key>LANGUAGE</key>
<string>French</string>
<key>VALUE</key>
- <string>VeraCrypt nécessite MacOSX 10.6.1 et supérieur.</string>
+ <string>VeraCrypt nécessite MacOSX 10.7.1 et supérieur.</string>
</dict>
</array>
<key>NAME</key>
@@ -1004,7 +1004,7 @@ https://osxfuse.github.io/
</dict>
</array>
<key>NAME</key>
- <string>VeraCrypt 1.19</string>
+ <string>VeraCrypt 1.21</string>
</dict>
</dict>
<key>SHARED_GLOBAL_DATA</key>
diff --git a/src/Setup/SelfExtract.c b/src/Setup/SelfExtract.c
index a2ad60d..18bc125 100644
--- a/src/Setup/SelfExtract.c
+++ b/src/Setup/SelfExtract.c
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Setup/SelfExtract.h b/src/Setup/SelfExtract.h
index 91e2ca7..020b144 100644
--- a/src/Setup/SelfExtract.h
+++ b/src/Setup/SelfExtract.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c
index 6f35e28..a3d14c6 100644
--- a/src/Setup/Setup.c
+++ b/src/Setup/Setup.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -557,7 +557,7 @@ void StatusMessage (HWND hwndDlg, char *stringId)
SendDlgItemMessage (hwndDlg, IDC_LOG_WINDOW, LB_GETCOUNT, 0, 0) - 1, 0);
}
-void StatusMessageParam (HWND hwndDlg, char *stringId, wchar_t *param)
+void StatusMessageParam (HWND hwndDlg, char *stringId, const wchar_t *param)
{
wchar_t szTmp[1024];
@@ -576,23 +576,23 @@ void ClearLogWindow (HWND hwndDlg)
SendMessage (GetDlgItem (hwndDlg, IDC_LOG_WINDOW), LB_RESETCONTENT, 0, 0);
}
-void RegMessage (HWND hwndDlg, wchar_t *txt)
+void RegMessage (HWND hwndDlg, const wchar_t *txt)
{
StatusMessageParam (hwndDlg, "ADDING_REG", txt);
}
-void CopyMessage (HWND hwndDlg, wchar_t *txt)
+void _cdecl CopyMessage (HWND hwndDlg, const wchar_t *txt)
{
StatusMessageParam (hwndDlg, "INSTALLING", txt);
}
-void RemoveMessage (HWND hwndDlg, wchar_t *txt)
+void RemoveMessage (HWND hwndDlg, const wchar_t *txt)
{
if (!Rollback)
StatusMessageParam (hwndDlg, "REMOVING", txt);
}
-void IconMessage (HWND hwndDlg, wchar_t *txt)
+void IconMessage (HWND hwndDlg, const wchar_t *txt)
{
StatusMessageParam (hwndDlg, "ADDING_ICON", txt);
}
@@ -672,7 +672,7 @@ BOOL DoFilesInstall (HWND hwndDlg, wchar_t *szDestDir)
for (i = 0; i < sizeof (szFiles) / sizeof (szFiles[0]); i++)
{
- BOOL bResult, driver64 = FALSE;
+ BOOL bResult, driver64 = FALSE, zipFile = FALSE;
wchar_t szDir[TC_MAX_PATH];
if (wcsstr (szFiles[i], L"VeraCrypt Setup") != 0)
@@ -696,7 +696,7 @@ BOOL DoFilesInstall (HWND hwndDlg, wchar_t *szDestDir)
continue;
}
- if (*szFiles[i] == L'A')
+ if ((*szFiles[i] == L'A') || (*szFiles[i] == L'X'))
StringCbCopyW (szDir, sizeof(szDir), szDestDir);
else if (*szFiles[i] == L'D')
{
@@ -717,7 +717,17 @@ BOOL DoFilesInstall (HWND hwndDlg, wchar_t *szDestDir)
if (*szFiles[i] == L'I')
continue;
+ if (*szFiles[i] == L'X')
+ zipFile = TRUE;
+
StringCbPrintfW (szTmp, sizeof(szTmp), L"%s%s", szDir, szFiles[i] + 1);
+ if (zipFile)
+ {
+ // build folder name by removing .zip extension
+ wchar_t* ptr = wcsrchr (szTmp, L'.');
+ if (ptr)
+ *ptr = 0;
+ }
if (bUninstall == FALSE)
CopyMessage (hwndDlg, szTmp);
@@ -805,13 +815,24 @@ BOOL DoFilesInstall (HWND hwndDlg, wchar_t *szDestDir)
bResult = FALSE;
goto err;
}
-
- bResult = SaveBufferToFile (
- (char *) Decompressed_Files[fileNo].fileContent,
- szTmp,
- Decompressed_Files[fileNo].fileLength,
- FALSE,
- TRUE);
+ if (zipFile)
+ {
+ bResult = DecompressZipToDir (
+ Decompressed_Files[fileNo].fileContent,
+ Decompressed_Files[fileNo].fileLength,
+ szDir,
+ CopyMessage,
+ hwndDlg);
+ }
+ else
+ {
+ bResult = SaveBufferToFile (
+ (char *) Decompressed_Files[fileNo].fileContent,
+ szTmp,
+ Decompressed_Files[fileNo].fileLength,
+ FALSE,
+ TRUE);
+ }
if (driver64)
{
@@ -907,7 +928,10 @@ BOOL DoFilesInstall (HWND hwndDlg, wchar_t *szDestDir)
{
if (driver64)
EnableWow64FsRedirection (FALSE);
- bResult = StatDeleteFile (szTmp, TRUE);
+ if (zipFile)
+ bResult = StatRemoveDirectory (szTmp);
+ else
+ bResult = StatDeleteFile (szTmp, TRUE);
if (driver64)
EnableWow64FsRedirection (TRUE);
@@ -991,36 +1015,42 @@ err:
return FALSE;
}
}
-
- // Language pack
+
if (bUninstall == FALSE)
{
WIN32_FIND_DATA f;
HANDLE h;
- SetCurrentDirectory (SetupFilesDir);
- h = FindFirstFile (L"Language.*.xml", &f);
+ SetCurrentDirectory (szDestDir);
+
+ // remove PDF from previous version if any
+ h = FindFirstFile (L"VeraCrypt User Guide*.pdf", &f);
if (h != INVALID_HANDLE_VALUE)
{
- wchar_t d[MAX_PATH*2];
- StringCbPrintfW (d, sizeof(d), L"%s%s", szDestDir, f.cFileName);
- CopyMessage (hwndDlg, d);
- TCCopyFile (f.cFileName, d);
+ do
+ {
+ StatDeleteFile (f.cFileName, TRUE);
+ }
+ while (FindNextFile(h, &f) != 0);
+
FindClose (h);
}
- SetCurrentDirectory (SetupFilesDir);
- SetCurrentDirectory (L"Setup files");
- h = FindFirstFile (L"VeraCrypt User Guide.*.pdf", &f);
+ // remove language XML files from previous version if any
+ h = FindFirstFile (L"Language*.xml", &f);
+
if (h != INVALID_HANDLE_VALUE)
{
- wchar_t d[MAX_PATH*2];
- StringCbPrintfW (d, sizeof(d), L"%s%s", szDestDir, f.cFileName);
- CopyMessage (hwndDlg, d);
- TCCopyFile (f.cFileName, d);
+ do
+ {
+ StatDeleteFile (f.cFileName, TRUE);
+ }
+ while (FindNextFile(h, &f) != 0);
+
FindClose (h);
}
+
SetCurrentDirectory (SetupFilesDir);
}
@@ -1044,7 +1074,7 @@ BOOL DoRegInstall (HWND hwndDlg, wchar_t *szDestDir, BOOL bInstallType)
StringCbCopyW (szTmp, sizeof(szTmp), _T(VERSION_STRING));
RegSetValueEx (hkey, L"DisplayVersion", 0, REG_SZ, (BYTE *) szTmp, (wcslen (szTmp) + 1) * sizeof (wchar_t));
- StringCbCopyW (szTmp, sizeof(szTmp), _T(TC_HOMEPAGE));
+ StringCbCopyW (szTmp, sizeof(szTmp), TC_HOMEPAGE);
RegSetValueEx (hkey, L"URLInfoAbout", 0, REG_SZ, (BYTE *) szTmp, (wcslen (szTmp) + 1) * sizeof (wchar_t));
RegCloseKey (hkey);
@@ -1169,7 +1199,7 @@ BOOL DoRegInstall (HWND hwndDlg, wchar_t *szDestDir, BOOL bInstallType)
if (RegSetValueEx (hkey, L"Publisher", 0, REG_SZ, (BYTE *) szTmp, (wcslen (szTmp) + 1) * sizeof (wchar_t)) != ERROR_SUCCESS)
goto error;
- StringCbCopyW (szTmp, sizeof(szTmp), _T(TC_HOMEPAGE));
+ StringCbCopyW (szTmp, sizeof(szTmp), TC_HOMEPAGE);
if (RegSetValueEx (hkey, L"URLInfoAbout", 0, REG_SZ, (BYTE *) szTmp, (wcslen (szTmp) + 1) * sizeof (wchar_t)) != ERROR_SUCCESS)
goto error;
@@ -1834,7 +1864,7 @@ BOOL DoShortcutsInstall (HWND hwndDlg, wchar_t *szDestDir, BOOL bProgGroup, BOOL
f = _wfopen (szTmp2, L"w");
if (f)
{
- fprintf (f, "[InternetShortcut]\nURL=%s\n", TC_APPLINK);
+ fwprintf (f, L"[InternetShortcut]\nURL=%s\n", TC_APPLINK);
CheckFileStreamWriteErrors (hwndDlg, f, szTmp2);
fclose (f);
diff --git a/src/Setup/Setup.h b/src/Setup/Setup.h
index 76cc7e9..0765506 100644
--- a/src/Setup/Setup.h
+++ b/src/Setup/Setup.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -21,7 +21,6 @@ extern "C" {
// Specifies what files to install, where (determined by the prefix), and in what order
static wchar_t *szFiles[]=
{
- L"AVeraCrypt User Guide.pdf",
L"ALicense.txt",
L"ALICENSE",
L"ANOTICE",
@@ -38,49 +37,13 @@ static wchar_t *szFiles[]=
L"Averacrypt-x64.sys",
L"Dveracrypt.sys",
L"AVeraCrypt Setup.exe",
- L"ALanguage.ar.xml",
- L"ALanguage.be.xml",
- L"ALanguage.bg.xml",
- L"ALanguage.ca.xml",
- L"ALanguage.cs.xml",
- L"ALanguage.da.xml",
- L"ALanguage.de.xml",
- L"ALanguage.el.xml",
- L"ALanguage.es.xml",
- L"ALanguage.et.xml",
- L"ALanguage.eu.xml",
- L"ALanguage.fa.xml",
- L"ALanguage.fi.xml",
- L"ALanguage.fr.xml",
- L"ALanguage.hu.xml",
- L"ALanguage.id.xml",
- L"ALanguage.it.xml",
- L"ALanguage.ja.xml",
- L"ALanguage.ka.xml",
- L"ALanguage.ko.xml",
- L"ALanguage.lv.xml",
- L"ALanguage.my.xml",
- L"ALanguage.nl.xml",
- L"ALanguage.nn.xml",
- L"ALanguage.pl.xml",
- L"ALanguage.pt-br.xml",
- L"ALanguage.ru.xml",
- L"ALanguage.sk.xml",
- L"ALanguage.sl.xml",
- L"ALanguage.sv.xml",
- L"ALanguage.tr.xml",
- L"ALanguage.uk.xml",
- L"ALanguage.uz.xml",
- L"ALanguage.vi.xml",
- L"ALanguage.zh-cn.xml",
- L"ALanguage.zh-hk.xml",
- L"ALanguage.zh-tw.xml"
+ L"XLanguages.zip",
+ L"Xdocs.zip",
};
// Specifies what files are included in self-extracting packages (no other files will be packaged or extracted).
static wchar_t *szCompressedFiles[]=
{
- L"VeraCrypt User Guide.pdf",
L"License.txt",
L"LICENSE",
L"NOTICE",
@@ -92,43 +55,8 @@ static wchar_t *szCompressedFiles[]=
L"VeraCrypt Format-x64.exe",
L"veracrypt.sys",
L"veracrypt-x64.sys",
- L"Language.ar.xml",
- L"Language.be.xml",
- L"Language.bg.xml",
- L"Language.ca.xml",
- L"Language.cs.xml",
- L"Language.da.xml",
- L"Language.de.xml",
- L"Language.el.xml",
- L"Language.es.xml",
- L"Language.et.xml",
- L"Language.eu.xml",
- L"Language.fa.xml",
- L"Language.fi.xml",
- L"Language.fr.xml",
- L"Language.hu.xml",
- L"Language.id.xml",
- L"Language.it.xml",
- L"Language.ja.xml",
- L"Language.ka.xml",
- L"Language.ko.xml",
- L"Language.lv.xml",
- L"Language.my.xml",
- L"Language.nl.xml",
- L"Language.nn.xml",
- L"Language.pl.xml",
- L"Language.pt-br.xml",
- L"Language.ru.xml",
- L"Language.sk.xml",
- L"Language.sl.xml",
- L"Language.sv.xml",
- L"Language.tr.xml",
- L"Language.uk.xml",
- L"Language.uz.xml",
- L"Language.vi.xml",
- L"Language.zh-cn.xml",
- L"Language.zh-hk.xml",
- L"Language.zh-tw.xml"
+ L"Languages.zip",
+ L"docs.zip"
};
#define FILENAME_64BIT_DRIVER L"veracrypt-x64.sys"
@@ -140,13 +68,13 @@ BOOL StatRemoveDirectory ( wchar_t *lpszDir );
HRESULT CreateLink ( wchar_t *lpszPathObj , wchar_t *lpszArguments , wchar_t *lpszPathLink );
void GetProgramPath ( HWND hwndDlg , wchar_t *path );
void StatusMessage (HWND hwndDlg, char *stringId);
-void StatusMessageParam (HWND hwndDlg, char *stringId, wchar_t *param);
+void StatusMessageParam (HWND hwndDlg, char *stringId, const wchar_t *param);
void ClearLogWindow (HWND hwndDlg);
-void RegMessage ( HWND hwndDlg , wchar_t *txt );
-void RegRemoveMessage (HWND hwndDlg, wchar_t *txt);
-void CopyMessage ( HWND hwndDlg , wchar_t *txt );
-void RemoveMessage ( HWND hwndDlg , wchar_t *txt );
-void IconMessage ( HWND hwndDlg , wchar_t *txt );
+void RegMessage ( HWND hwndDlg , const wchar_t *txt );
+void RegRemoveMessage (HWND hwndDlg, const wchar_t *txt);
+void _cdecl CopyMessage ( HWND hwndDlg , const wchar_t *txt );
+void RemoveMessage ( HWND hwndDlg , const wchar_t *txt );
+void IconMessage ( HWND hwndDlg , const wchar_t *txt );
static int CALLBACK BrowseCallbackProc ( HWND hwnd , UINT uMsg , LPARAM lp , LPARAM pData );
void LoadLicense ( HWND hwndDlg );
void DetermineUpgradeDowngradeStatus (BOOL bCloseDriverHandle, LONG *driverVersionPtr);
diff --git a/src/Setup/Setup.rc b/src/Setup/Setup.rc
index 918b3e7..440f24d 100644
--- a/src/Setup/Setup.rc
+++ b/src/Setup/Setup.rc
@@ -1,327 +1,327 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-#include "..\\common\\resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,19,4,0
- PRODUCTVERSION 1,19,4,0
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", "IDRIX"
- VALUE "FileDescription", "VeraCrypt Setup"
- VALUE "FileVersion", "1.19"
- VALUE "LegalTrademarks", "VeraCrypt"
- VALUE "OriginalFilename", "VeraCrypt Setup.exe"
- VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.19"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// HEADER
-//
-
-IDR_SETUP_RSRC_HEADER HEADER "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// REGISTRY
-//
-
-IDR_COMREG REGISTRY "ComSetup.rgs"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_UNINSTALL DIALOGEX 0, 0, 349, 234
-STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Uninstall VeraCrypt"
-CLASS "VeraCryptCustomDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- LTEXT "Click Uninstall to remove VeraCrypt from this system.",IDT_UNINSTALL_DIR,8,8,334,8
- LISTBOX IDC_LOG_WINDOW,7,21,335,179,LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL
- DEFPUSHBUTTON "&Uninstall",IDC_UNINSTALL,236,213,50,14
- PUSHBUTTON "Cancel",IDCANCEL,292,213,50,14
- CONTROL "Create System &Restore point",IDC_SYSTEM_RESTORE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,215,194,10
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,206,347,1,WS_EX_STATICEDGE
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,1,348,1,WS_EX_STATICEDGE
-END
-
-IDD_INSTALL_OPTIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- EDITTEXT IDC_DESTINATION,11,41,260,13,ES_AUTOHSCROLL
- PUSHBUTTON "Bro&wse...",IDC_BROWSE,278,40,59,14
- CONTROL "Install &for all users",IDC_ALL_USERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,77,168,11
- CONTROL "Associate the .hc file &extension with VeraCrypt",IDC_FILE_TYPE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,113,232,11
- CONTROL "Add VeraCrypt to &Start menu",IDC_PROG_GROUP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,89,168,11
- CONTROL "Create System &Restore point",IDC_SYSTEM_RESTORE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,125,194,11
- CONTROL "Add VeraCrypt icon to &desktop",IDC_DESKTOP_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,101,168,11
- LTEXT "Please select or type the location where you want to install the VeraCrypt program files. If the specified folder does not exist, it will be automatically created.",IDT_INSTALL_DESTINATION,11,14,319,25
-END
-
-IDD_INFO_PAGE_DLG DIALOGEX 0, 0, 217, 156
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- LTEXT "",IDC_BOX_HELP,0,10,217,146
-END
-
-IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 346, 152
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "",IDC_LICENSE_TEXT,"RichEdit20A",ES_MULTILINE | ES_READONLY | ES_NUMBER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,0,23,345,108
- CONTROL "",IDC_AGREE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,2,137,126,10
- LTEXT "",IDC_BOX_HELP,0,0,346,22
-END
-
-IDD_INSTL_DLG DIALOGEX 0, 0, 374, 231
-STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "VeraCrypt Setup Wizard"
-CLASS "VeraCryptCustomDlg"
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- PUSHBUTTON "&Help",IDHELP,150,211,50,14
- PUSHBUTTON "",IDC_PREV,209,211,50,14
- DEFPUSHBUTTON "",IDC_NEXT,259,211,50,14
- PUSHBUTTON "Cancel",IDCANCEL,317,211,50,14
- LTEXT "",IDC_BOX_TITLE,11,5,324,12,0,WS_EX_TRANSPARENT
- CONTROL 107,IDC_BITMAP_SETUP_WIZARD,"Static",SS_BITMAP | SS_NOTIFY,139,3,228,30
- CONTROL 109,IDC_SETUP_WIZARD_BKG,"Static",SS_BITMAP,0,0,11,10
- CONTROL "",IDC_SETUP_WIZARD_GFX_AREA,"Static",SS_GRAYRECT | NOT WS_VISIBLE,0,0,378,36,WS_EX_TRANSPARENT | WS_EX_STATICEDGE
- CONTROL "",IDC_HR_BOTTOM,"Static",SS_ETCHEDHORZ,67,204,306,1,WS_EX_STATICEDGE
- CONTROL "",IDC_HR,"Static",SS_ETCHEDHORZ,0,35,399,1,WS_EX_STATICEDGE
- LTEXT "VeraCrypt Installer",IDC_STATIC,4,200,62,8,WS_DISABLED
- LTEXT "",IDC_BOX_INFO,18,18,317,13,0,WS_EX_TRANSPARENT
- LTEXT "",IDC_MAIN_CONTENT_CANVAS,0,36,374,164
- LTEXT "",IDC_POS_BOX,14,42,346,155,0,WS_EX_TRANSPARENT
-END
-
-IDD_EXTRACTION_OPTIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- PUSHBUTTON "Bro&wse...",IDC_BROWSE,277,32,62,14
- EDITTEXT IDC_DESTINATION,6,33,264,12,ES_AUTOHSCROLL
- LTEXT "Please select or type the location where you want to place the extracted files:",IDT_EXTRACT_DESTINATION,6,15,333,17
- CONTROL "&Open the destination location when finished",IDC_OPEN_CONTAINING_FOLDER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,91,318,16
- LTEXT "",IDC_BOX_HELP,6,56,333,32
-END
-
-IDD_WIZARD_MODE_PAGE_DLG DIALOGEX 0, 0, 346, 152
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "&Install",IDC_WIZARD_MODE_INSTALL,"Button",BS_AUTORADIOBUTTON,6,14,232,10
- CONTROL "&Extract",IDC_WIZARD_MODE_EXTRACT_ONLY,"Button",BS_AUTORADIOBUTTON,6,60,232,10
- LTEXT "",IDC_BOX_HELP,42,77,286,64
- LTEXT "",IDC_BOX_HELP2,42,30,286,29
-END
-
-IDD_PROGRESS_PAGE_DLG DIALOGEX 0, 0, 346, 152
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- LISTBOX IDC_LOG_WINDOW,0,1,345,131,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL
- CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,0,139,345,12
-END
-
-IDD_DONATIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
-EXSTYLE WS_EX_TRANSPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x0
-BEGIN
- PUSHBUTTON "Donate now...",IDC_DONATE,124,94,96,14
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_SETUP ICON "Setup.ico"
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "#include ""..\\\\common\\\\resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#include ""..\\\\common\\\\common.rc""\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_UNINSTALL, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 342
- TOPMARGIN, 7
- BOTTOMMARGIN, 229
- END
-
- IDD_INSTALL_OPTIONS_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 339
- TOPMARGIN, 7
- BOTTOMMARGIN, 147
- END
-
- IDD_INFO_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 210
- TOPMARGIN, 7
- BOTTOMMARGIN, 149
- END
-
- IDD_INTRO_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 339
- TOPMARGIN, 7
- BOTTOMMARGIN, 145
- END
-
- IDD_INSTL_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 367
- TOPMARGIN, 1
- BOTTOMMARGIN, 229
- HORZGUIDE, 196
- END
-
- IDD_EXTRACTION_OPTIONS_PAGE_DLG, DIALOG
- BEGIN
- RIGHTMARGIN, 343
- BOTTOMMARGIN, 147
- END
-
- IDD_WIZARD_MODE_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 339
- TOPMARGIN, 7
- BOTTOMMARGIN, 145
- END
-
- IDD_PROGRESS_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 339
- TOPMARGIN, 7
- BOTTOMMARGIN, 145
- END
-
- IDD_DONATIONS_PAGE_DLG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 339
- TOPMARGIN, 7
- BOTTOMMARGIN, 147
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_SETUP_WIZARD BITMAP "VeraCrypt_setup.bmp"
-IDB_SETUP_WIZARD_BKG BITMAP "VeraCrypt_setup_background.bmp"
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#include "..\\common\\common.rc"
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+#include "..\\common\\resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,21,5,0
+ PRODUCTVERSION 1,21,5,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "IDRIX"
+ VALUE "FileDescription", "VeraCrypt Setup"
+ VALUE "FileVersion", "1.21"
+ VALUE "LegalTrademarks", "VeraCrypt"
+ VALUE "OriginalFilename", "VeraCrypt Setup.exe"
+ VALUE "ProductName", "VeraCrypt"
+ VALUE "ProductVersion", "1.21"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// HEADER
+//
+
+IDR_SETUP_RSRC_HEADER HEADER "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// REGISTRY
+//
+
+IDR_COMREG REGISTRY "ComSetup.rgs"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_UNINSTALL DIALOGEX 0, 0, 349, 234
+STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Uninstall VeraCrypt"
+CLASS "VeraCryptCustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ LTEXT "Click Uninstall to remove VeraCrypt from this system.",IDT_UNINSTALL_DIR,8,8,334,8
+ LISTBOX IDC_LOG_WINDOW,7,21,335,179,LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL
+ DEFPUSHBUTTON "&Uninstall",IDC_UNINSTALL,236,213,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,292,213,50,14
+ CONTROL "Create System &Restore point",IDC_SYSTEM_RESTORE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,215,194,10
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,206,347,1,WS_EX_STATICEDGE
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,1,348,1,WS_EX_STATICEDGE
+END
+
+IDD_INSTALL_OPTIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ EDITTEXT IDC_DESTINATION,11,41,260,13,ES_AUTOHSCROLL
+ PUSHBUTTON "Bro&wse...",IDC_BROWSE,278,40,59,14
+ CONTROL "Install &for all users",IDC_ALL_USERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,77,168,11
+ CONTROL "Associate the .hc file &extension with VeraCrypt",IDC_FILE_TYPE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,113,232,11
+ CONTROL "Add VeraCrypt to &Start menu",IDC_PROG_GROUP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,89,168,11
+ CONTROL "Create System &Restore point",IDC_SYSTEM_RESTORE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,125,194,11
+ CONTROL "Add VeraCrypt icon to &desktop",IDC_DESKTOP_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,101,168,11
+ LTEXT "Please select or type the location where you want to install the VeraCrypt program files. If the specified folder does not exist, it will be automatically created.",IDT_INSTALL_DESTINATION,11,14,319,25
+END
+
+IDD_INFO_PAGE_DLG DIALOGEX 0, 0, 217, 156
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT "",IDC_BOX_HELP,0,10,217,146
+END
+
+IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 346, 152
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_LICENSE_TEXT,"RichEdit20A",ES_MULTILINE | ES_READONLY | ES_NUMBER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,0,23,345,108
+ CONTROL "",IDC_AGREE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,2,137,126,10
+ LTEXT "",IDC_BOX_HELP,0,0,346,22
+END
+
+IDD_INSTL_DLG DIALOGEX 0, 0, 374, 231
+STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Setup Wizard"
+CLASS "VeraCryptCustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ PUSHBUTTON "&Help",IDHELP,150,211,50,14
+ PUSHBUTTON "",IDC_PREV,209,211,50,14
+ DEFPUSHBUTTON "",IDC_NEXT,259,211,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,317,211,50,14
+ LTEXT "",IDC_BOX_TITLE,11,5,324,12,0,WS_EX_TRANSPARENT
+ CONTROL 107,IDC_BITMAP_SETUP_WIZARD,"Static",SS_BITMAP | SS_NOTIFY,139,3,228,30
+ CONTROL 109,IDC_SETUP_WIZARD_BKG,"Static",SS_BITMAP,0,0,11,10
+ CONTROL "",IDC_SETUP_WIZARD_GFX_AREA,"Static",SS_GRAYRECT | NOT WS_VISIBLE,0,0,378,36,WS_EX_TRANSPARENT | WS_EX_STATICEDGE
+ CONTROL "",IDC_HR_BOTTOM,"Static",SS_ETCHEDHORZ,67,204,306,1,WS_EX_STATICEDGE
+ CONTROL "",IDC_HR,"Static",SS_ETCHEDHORZ,0,35,399,1,WS_EX_STATICEDGE
+ LTEXT "VeraCrypt Installer",IDC_STATIC,4,200,62,8,WS_DISABLED
+ LTEXT "",IDC_BOX_INFO,18,18,317,13,0,WS_EX_TRANSPARENT
+ LTEXT "",IDC_MAIN_CONTENT_CANVAS,0,36,374,164
+ LTEXT "",IDC_POS_BOX,14,42,346,155,0,WS_EX_TRANSPARENT
+END
+
+IDD_EXTRACTION_OPTIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ PUSHBUTTON "Bro&wse...",IDC_BROWSE,277,32,62,14
+ EDITTEXT IDC_DESTINATION,6,33,264,12,ES_AUTOHSCROLL
+ LTEXT "Please select or type the location where you want to place the extracted files:",IDT_EXTRACT_DESTINATION,6,15,333,17
+ CONTROL "&Open the destination location when finished",IDC_OPEN_CONTAINING_FOLDER,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,91,318,16
+ LTEXT "",IDC_BOX_HELP,6,56,333,32
+END
+
+IDD_WIZARD_MODE_PAGE_DLG DIALOGEX 0, 0, 346, 152
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "&Install",IDC_WIZARD_MODE_INSTALL,"Button",BS_AUTORADIOBUTTON,6,14,232,10
+ CONTROL "&Extract",IDC_WIZARD_MODE_EXTRACT_ONLY,"Button",BS_AUTORADIOBUTTON,6,60,232,10
+ LTEXT "",IDC_BOX_HELP,42,77,286,64
+ LTEXT "",IDC_BOX_HELP2,42,30,286,29
+END
+
+IDD_PROGRESS_PAGE_DLG DIALOGEX 0, 0, 346, 152
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LISTBOX IDC_LOG_WINDOW,0,1,345,131,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL
+ CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,0,139,345,12
+END
+
+IDD_DONATIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+EXSTYLE WS_EX_TRANSPARENT
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ PUSHBUTTON "Donate now...",IDC_DONATE,124,94,96,14
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_SETUP ICON "Setup.ico"
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "#include ""..\\\\common\\\\resource.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "#include ""..\\\\common\\\\common.rc""\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_UNINSTALL, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 342
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 229
+ END
+
+ IDD_INSTALL_OPTIONS_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 339
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 147
+ END
+
+ IDD_INFO_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 210
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 149
+ END
+
+ IDD_INTRO_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 339
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 145
+ END
+
+ IDD_INSTL_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 367
+ TOPMARGIN, 1
+ BOTTOMMARGIN, 229
+ HORZGUIDE, 196
+ END
+
+ IDD_EXTRACTION_OPTIONS_PAGE_DLG, DIALOG
+ BEGIN
+ RIGHTMARGIN, 343
+ BOTTOMMARGIN, 147
+ END
+
+ IDD_WIZARD_MODE_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 339
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 145
+ END
+
+ IDD_PROGRESS_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 339
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 145
+ END
+
+ IDD_DONATIONS_PAGE_DLG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 339
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 147
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_SETUP_WIZARD BITMAP "VeraCrypt_setup.bmp"
+IDB_SETUP_WIZARD_BKG BITMAP "VeraCrypt_setup_background.bmp"
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "..\\common\\common.rc"
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/Setup/Setup.vcproj b/src/Setup/Setup.vcproj
index 05a67aa..a1a6a81 100644
--- a/src/Setup/Setup.vcproj
+++ b/src/Setup/Setup.vcproj
@@ -1,484 +1,484 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="Setup"
- ProjectGUID="{DF5F654D-BD44-4E31-B92E-B68074DC37A8}"
- RootNamespace="Setup"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="SETUP;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4057;4100;4127;4201;4505;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/NODEFAULTLIB:LIBCMTD"
- AdditionalDependencies="libcmtd.lib atlsd.lib mpr.lib"
- OutputFile="$(OutDir)/VeraCryptSetup.exe"
- LinkIncremental="2"
- GenerateManifest="false"
- UACExecutionLevel="2"
- DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/Setup.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Setup.manifest"
- EmbedManifest="true"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCryptSetup.exe &quot;..\Debug\Setup Files\VeraCrypt Setup.exe&quot; &gt;NUL:&#x0D;&#x0A;"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/w34189"
- Optimization="2"
- AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
- PreprocessorDefinitions="SETUP;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS"
- RuntimeLibrary="0"
- BufferSecurityCheck="true"
- UsePrecompiledHeader="0"
- AssemblerOutput="2"
- AssemblerListingLocation="$(IntDir)/"
- WarningLevel="4"
- DebugInformationFormat="0"
- DisableSpecificWarnings="4057;4100;4127;4201;4505;4701;4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/IGNORE:4089"
- AdditionalDependencies="mpr.lib"
- OutputFile="$(OutDir)/VeraCryptSetup.exe"
- LinkIncremental="1"
- GenerateManifest="false"
- UACExecutionLevel="2"
- DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll"
- GenerateDebugInformation="false"
- GenerateMapFile="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- AdditionalManifestFiles="Setup.manifest"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy Release\VeraCryptSetup.exe &quot;..\Release\Setup Files\VeraCrypt Setup.exe&quot;"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\ComSetup.cpp"
- >
- </File>
- <File
- RelativePath=".\ComSetup.rgs"
- >
- </File>
- <File
- RelativePath=".\Dir.c"
- >
- </File>
- <File
- RelativePath=".\SelfExtract.c"
- >
- </File>
- <File
- RelativePath=".\Setup.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\Wizard.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Xml.c"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\BootEncryption.cpp"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.c"
- >
- </File>
- <File
- RelativePath="..\Common\Dictionary.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Dlgcode.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Endian.c"
- >
- </File>
- <File
- RelativePath="..\Common\Inflate.c"
- >
- </File>
- <File
- RelativePath="..\Common\Language.c"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.c"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\Common\Apidrvr.h"
- >
- </File>
- <File
- RelativePath="..\Common\Combo.h"
- >
- </File>
- <File
- RelativePath=".\ComSetup.h"
- >
- </File>
- <File
- RelativePath="..\Common\Crc.h"
- >
- </File>
- <File
- RelativePath=".\Dir.h"
- >
- </File>
- <File
- RelativePath="..\Common\Dlgcode.h"
- >
- </File>
- <File
- RelativePath="..\Common\Exception.h"
- >
- </File>
- <File
- RelativePath="..\Common\Inflate.h"
- >
- </File>
- <File
- RelativePath="..\Common\Language.h"
- >
- </File>
- <File
- RelativePath="..\Common\Registry.h"
- >
- </File>
- <File
- RelativePath="..\Common\Resource.h"
- >
- </File>
- <File
- RelativePath=".\Resource.h"
- >
- </File>
- <File
- RelativePath=".\SelfExtract.h"
- >
- </File>
- <File
- RelativePath=".\Setup.h"
- >
- </File>
- <File
- RelativePath="..\Common\Tcdefs.h"
- >
- </File>
- <File
- RelativePath=".\Wizard.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- <File
- RelativePath=".\Setup.ico"
- >
- </File>
- <File
- RelativePath=".\Setup.manifest"
- >
- </File>
- <File
- RelativePath=".\Setup.rc"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt.ico"
- >
- </File>
- <File
- RelativePath=".\VeraCrypt_setup.bmp"
- >
- </File>
- <File
- RelativePath=".\VeraCrypt_setup_background.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\VeraCrypt_Volume.ico"
- >
- </File>
- <Filter
- Name="Common"
- >
- <File
- RelativePath="..\Common\Common.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCResourceCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\Common\Language.xml"
- >
- </File>
- <File
- RelativePath="..\Resources\Texts\License.rtf"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_288dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_96dpi.bmp"
- >
- </File>
- <File
- RelativePath="..\Common\Textual_logo_background.bmp"
- >
- </File>
- </Filter>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="Setup"
+ ProjectGUID="{DF5F654D-BD44-4E31-B92E-B68074DC37A8}"
+ RootNamespace="Setup"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="SETUP;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4057;4100;4127;4201;4505;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/NODEFAULTLIB:LIBCMTD"
+ AdditionalDependencies="libcmtd.lib atlsd.lib mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptSetup.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ UACExecutionLevel="2"
+ DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/Setup.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Setup.manifest"
+ EmbedManifest="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="md &quot;..\Debug\Setup Files&quot; 2&gt;NUL:&#x0D;&#x0A;copy Debug\VeraCryptSetup.exe &quot;..\Debug\Setup Files\VeraCrypt Setup.exe&quot; &gt;NUL:&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/w34189"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\PKCS11"
+ PreprocessorDefinitions="SETUP;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)/"
+ WarningLevel="4"
+ DebugInformationFormat="0"
+ DisableSpecificWarnings="4057;4100;4127;4201;4505;4701;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/IGNORE:4089"
+ AdditionalDependencies="mpr.lib"
+ OutputFile="$(OutDir)/VeraCryptSetup.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ UACExecutionLevel="2"
+ DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll"
+ GenerateDebugInformation="false"
+ GenerateMapFile="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="Setup.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Release\VeraCryptSetup.exe &quot;..\Release\Setup Files\VeraCrypt Setup.exe&quot;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\ComSetup.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ComSetup.rgs"
+ >
+ </File>
+ <File
+ RelativePath=".\Dir.c"
+ >
+ </File>
+ <File
+ RelativePath=".\SelfExtract.c"
+ >
+ </File>
+ <File
+ RelativePath=".\Setup.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\Wizard.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Xml.c"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\BootEncryption.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dictionary.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ CompileAs="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Endian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Inflate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Language.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.c"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\Common\Apidrvr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Combo.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ComSetup.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Crc.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Dir.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Dlgcode.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Exception.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Inflate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Language.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Registry.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Resource.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Resource.h"
+ >
+ </File>
+ <File
+ RelativePath=".\SelfExtract.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Setup.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Tcdefs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Wizard.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath=".\Setup.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\Setup.manifest"
+ >
+ </File>
+ <File
+ RelativePath=".\Setup.rc"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\VeraCrypt_setup.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\VeraCrypt_setup_background.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\VeraCrypt_Volume.ico"
+ >
+ </File>
+ <Filter
+ Name="Common"
+ >
+ <File
+ RelativePath="..\Common\Common.rc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Common\Language.xml"
+ >
+ </File>
+ <File
+ RelativePath="..\Resources\Texts\License.rtf"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_288dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_96dpi.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\Common\Textual_logo_background.bmp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/Setup/Setup.vcxproj b/src/Setup/Setup.vcxproj
index 843dc65..c4c1aad 100644
--- a/src/Setup/Setup.vcxproj
+++ b/src/Setup/Setup.vcxproj
@@ -69,7 +69,7 @@
</ClCompile>
<Link>
<AdditionalOptions>/NODEFAULTLIB:LIBCMTD %(AdditionalOptions)</AdditionalOptions>
- <AdditionalDependencies>libcmtd.lib;atlsd.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>libcmtd.lib;atlsd.lib;mpr.lib;..\Common\Debug\Zip.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptSetup.exe</OutputFile>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<DelayLoadDLLs>user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
@@ -102,22 +102,21 @@ copy Debug\VeraCryptSetup.exe "..\Debug\Setup Files\VeraCrypt Setup.exe" &gt;NUL
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions>
- <AdditionalDependencies>mpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>mpr.lib;..\Common\Release\Zip.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)VeraCryptSetup.exe</OutputFile>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<DelayLoadDLLs>user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
- <GenerateDebugInformation>false</GenerateDebugInformation>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
@@ -129,138 +128,6 @@ copy Debug\VeraCryptSetup.exe "..\Debug\Setup Files\VeraCrypt Setup.exe" &gt;NUL
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c" />
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_close.c" />
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c" />
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c" />
- <ClCompile Include="..\Common\libzip\zip_entry.c" />
- <ClCompile Include="..\Common\libzip\zip_error.c" />
- <ClCompile Include="..\Common\libzip\zip_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c" />
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c" />
- <ClCompile Include="..\Common\libzip\zip_err_str.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field.c" />
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c" />
- <ClCompile Include="..\Common\libzip\zip_fclose.c" />
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_file_add.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c" />
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c" />
- <ClCompile Include="..\Common\libzip\zip_file_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_file_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c" />
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c" />
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c" />
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c" />
- <ClCompile Include="..\Common\libzip\zip_fread.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c" />
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_get_name.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c" />
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c" />
- <ClCompile Include="..\Common\libzip\zip_hash.c" />
- <ClCompile Include="..\Common\libzip\zip_io_util.c" />
- <ClCompile Include="..\Common\libzip\zip_memdup.c" />
- <ClCompile Include="..\Common\libzip\zip_name_locate.c" />
- <ClCompile Include="..\Common\libzip\zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_open.c" />
- <ClCompile Include="..\Common\libzip\zip_rename.c" />
- <ClCompile Include="..\Common\libzip\zip_replace.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c" />
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c" />
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c" />
- <ClCompile Include="..\Common\libzip\zip_set_name.c" />
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c" />
- <ClCompile Include="..\Common\libzip\zip_source_call.c" />
- <ClCompile Include="..\Common\libzip\zip_source_close.c" />
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_crc.c" />
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c" />
- <ClCompile Include="..\Common\libzip\zip_source_error.c" />
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c" />
- <ClCompile Include="..\Common\libzip\zip_source_function.c" />
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c" />
- <ClCompile Include="..\Common\libzip\zip_source_layered.c" />
- <ClCompile Include="..\Common\libzip\zip_source_open.c" />
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c" />
- <ClCompile Include="..\Common\libzip\zip_source_read.c" />
- <ClCompile Include="..\Common\libzip\zip_source_remove.c" />
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek.c" />
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_source_supports.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell.c" />
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c" />
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c" />
- <ClCompile Include="..\Common\libzip\zip_source_window.c" />
- <ClCompile Include="..\Common\libzip\zip_source_write.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip.c" />
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c" />
- <ClCompile Include="..\Common\libzip\zip_stat.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_index.c" />
- <ClCompile Include="..\Common\libzip\zip_stat_init.c" />
- <ClCompile Include="..\Common\libzip\zip_strerror.c" />
- <ClCompile Include="..\Common\libzip\zip_string.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c" />
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c" />
- <ClCompile Include="..\Common\libzip\zip_utf-8.c" />
- <ClCompile Include="..\Common\zlib\adler32.c" />
- <ClCompile Include="..\Common\zlib\compress.c" />
- <ClCompile Include="..\Common\zlib\crc32.c" />
- <ClCompile Include="..\Common\zlib\deflate.c" />
- <ClCompile Include="..\Common\zlib\inffast.c" />
- <ClCompile Include="..\Common\zlib\inflate.c" />
- <ClCompile Include="..\Common\zlib\inftrees.c" />
- <ClCompile Include="..\Common\zlib\trees.c" />
- <ClCompile Include="..\Common\zlib\uncompr.c" />
- <ClCompile Include="..\Common\zlib\zutil.c" />
<ClCompile Include="ComSetup.cpp" />
<ClCompile Include="Dir.c" />
<ClCompile Include="SelfExtract.c" />
@@ -303,24 +170,6 @@ copy Debug\VeraCryptSetup.exe "..\Debug\Setup Files\VeraCrypt Setup.exe" &gt;NUL
<ItemGroup>
<ClInclude Include="..\Common\Apidrvr.h" />
<ClInclude Include="..\Common\Combo.h" />
- <ClInclude Include="..\Common\libzip\compat.h" />
- <ClInclude Include="..\Common\libzip\config.h" />
- <ClInclude Include="..\Common\libzip\zconf.h" />
- <ClInclude Include="..\Common\libzip\zip.h" />
- <ClInclude Include="..\Common\libzip\zipint.h" />
- <ClInclude Include="..\Common\libzip\zipwin32.h" />
- <ClInclude Include="..\Common\XUnzip.h" />
- <ClInclude Include="..\Common\XZip.h" />
- <ClInclude Include="..\Common\zlib\crc32.h" />
- <ClInclude Include="..\Common\zlib\deflate.h" />
- <ClInclude Include="..\Common\zlib\inffast.h" />
- <ClInclude Include="..\Common\zlib\inffixed.h" />
- <ClInclude Include="..\Common\zlib\inflate.h" />
- <ClInclude Include="..\Common\zlib\inftrees.h" />
- <ClInclude Include="..\Common\zlib\trees.h" />
- <ClInclude Include="..\Common\zlib\zconf.h" />
- <ClInclude Include="..\Common\zlib\zlib.h" />
- <ClInclude Include="..\Common\zlib\zutil.h" />
<ClInclude Include="ComSetup.h" />
<ClInclude Include="..\Common\Crc.h" />
<ClInclude Include="Dir.h" />
diff --git a/src/Setup/Setup.vcxproj.filters b/src/Setup/Setup.vcxproj.filters
index 18728ab..d747363 100644
--- a/src/Setup/Setup.vcxproj.filters
+++ b/src/Setup/Setup.vcxproj.filters
@@ -19,12 +19,6 @@
<Filter Include="Resource Files\Common">
<UniqueIdentifier>{a540fb0a-850b-4cb9-85f9-ade0112ebb50}</UniqueIdentifier>
</Filter>
- <Filter Include="Source Files\Common\libzip">
- <UniqueIdentifier>{72792e98-38ea-4b68-a06e-140c3941d057}</UniqueIdentifier>
- </Filter>
- <Filter Include="Source Files\Common\zlib">
- <UniqueIdentifier>{25bed244-7b06-46a3-8912-a3493143f281}</UniqueIdentifier>
- </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="ComSetup.cpp">
@@ -57,356 +51,14 @@
<ClCompile Include="..\Common\Dlgcode.c">
<Filter>Source Files\Common</Filter>
</ClCompile>
- <ClCompile Include="..\Common\Endian.c">
- <Filter>Source Files\Common</Filter>
- </ClCompile>
<ClCompile Include="..\Common\Language.c">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="..\Common\Registry.c">
<Filter>Source Files\Common</Filter>
</ClCompile>
- <ClCompile Include="..\Common\libzip\mkstemp.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_dir.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_add_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_delete.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dir_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_dirent.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_discard.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_entry.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_err_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_get_sys_type.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_error_to_str.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_extra_field_api.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fclose.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fdopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_add.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_clear.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_error_get.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_get_offset.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_external_attributes.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_set_mtime.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_file_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_filerange_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fopen_index_encrypted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_fread.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_compression_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_encryption_implementation.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_entries.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_get_num_files.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_hash.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_io_util.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_memdup.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_name_locate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_rename.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_replace.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_archive_flag.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_default_password.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_comment.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_file_compression.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_set_name.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_begin_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_buffer.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_call.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_close.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_commit_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_crc.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_deflate.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_error.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_filep.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_free.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_function.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_is_deleted.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_layered.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_open.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_pkware.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_read.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_remove.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_rollback_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_seek_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_supports.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_tell_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32a.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32handle.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32utf8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_win32w.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_window.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_write.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_source_zip_new.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_index.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_stat_init.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_strerror.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_string.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_all.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_archive.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_unchange_data.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\libzip\zip_utf-8.c">
- <Filter>Source Files\Common\libzip</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\adler32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\compress.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\crc32.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\deflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inffast.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inflate.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\inftrees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\trees.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\uncompr.c">
- <Filter>Source Files\Common\zlib</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\zlib\zutil.c">
- <Filter>Source Files\Common\zlib</Filter>
+ <ClCompile Include="..\Common\Endian.c">
+ <Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
@@ -493,60 +145,6 @@
<ClInclude Include="Wizard.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\Common\XZip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\XUnzip.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\compat.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\config.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zconf.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zip.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipint.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\libzip\zipwin32.h">
- <Filter>Source Files\Common\libzip</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\crc32.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\deflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffast.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inffixed.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inflate.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\inftrees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\trees.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zconf.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zlib.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
- <ClInclude Include="..\Common\zlib\zutil.h">
- <Filter>Source Files\Common\zlib</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<Manifest Include="Setup.manifest">
diff --git a/src/Setup/Wizard.c b/src/Setup/Wizard.c
index f6bb70a..91f1aa0 100644
--- a/src/Setup/Wizard.c
+++ b/src/Setup/Wizard.c
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
@@ -682,11 +682,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
{
case IDC_DONATE:
{
- char tmpstr [200];
-
- StringCbPrintfA (tmpstr, sizeof(tmpstr), "&ref=%d", DonColorSchemeId);
-
- Applink ("donate", FALSE, tmpstr);
+ Applink ("donate");
}
return 1;
}
@@ -1160,7 +1156,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (bPromptReleaseNotes
&& AskYesNo ("AFTER_UPGRADE_RELEASE_NOTES", hwndDlg) == IDYES)
{
- Applink ("releasenotes", TRUE, "");
+ Applink ("releasenotes");
}
bPromptReleaseNotes = FALSE;
@@ -1168,7 +1164,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (bPromptTutorial
&& AskYesNo ("AFTER_INSTALL_TUTORIAL", hwndDlg) == IDYES)
{
- Applink ("beginnerstutorial", TRUE, "");
+ Applink ("beginnerstutorial");
}
bPromptTutorial = FALSE;
diff --git a/src/Setup/Wizard.h b/src/Setup/Wizard.h
index f52e32d..df423b9 100644
--- a/src/Setup/Wizard.h
+++ b/src/Setup/Wizard.h
@@ -6,7 +6,7 @@
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
and which is governed by the 'License Agreement for Encryption for the Masses'
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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. */
diff --git a/src/Signing/sign.bat b/src/Signing/sign.bat
index a6e20cf..44321a3 100644
--- a/src/Signing/sign.bat
+++ b/src/Signing/sign.bat
@@ -1,27 +1,61 @@
-PATH=%PATH%;%WSDK81%\bin\x86
-
-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"
-
-rem sign using SHA-256
-signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_Root_CA_MS_Cross_Cert.crt /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys"
-signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_SHA256_EV_CodeSigning_CA.cer /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\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"
-
-
-cd "..\Release\Setup Files\"
-
-copy /V /Y ..\..\..\Translations\*.xml .
-
-"VeraCrypt Setup.exe" /p
-
-del *.xml
-
-cd "..\..\Signing"
-
-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 1.19.exe"
-rem sign using SHA-256
-signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_SHA256_EV_CodeSigning_CA.cer /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\VeraCrypt Setup 1.19.exe"
-
-pause
+PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip
+
+set SIGNINGPATH=%~dp0
+cd %SIGNINGPATH%
+
+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"
+
+rem sign using SHA-256
+signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_Root_CA_MS_Cross_Cert.crt /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys"
+signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_SHA256_EV_CodeSigning_CA.cer /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\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"
+
+
+cd "..\Release\Setup Files\"
+
+copy ..\..\LICENSE .
+copy ..\..\License.txt .
+copy ..\..\NOTICE .
+
+del *.xml
+rmdir /S /Q Languages
+mkdir Languages
+copy /V /Y ..\..\..\Translations\*.xml Languages\.
+del Languages.zip
+7z a -y Languages.zip Languages
+
+rmdir /S /Q docs
+mkdir docs\html\en
+mkdir docs\EFI-DCS
+copy /V /Y ..\..\..\doc\html\* docs\html\en\.
+copy "..\..\..\doc\chm\VeraCrypt User Guide.chm" docs\.
+copy "..\..\..\doc\EFI-DCS\*.pdf" docs\EFI-DCS\.
+
+del docs.zip
+7z a -y docs.zip docs
+
+"VeraCrypt Setup.exe" /p
+
+del LICENSE
+del License.txt
+del NOTICE
+del "VeraCrypt User Guide.chm"
+
+del Languages.zip
+del docs.zip
+rmdir /S /Q Languages
+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 1.21.exe"
+rem sign using SHA-256
+signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_SHA256_EV_CodeSigning_CA.cer /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\VeraCrypt Setup 1.21.exe"
+
+pause
diff --git a/src/Signing/sign_test.bat b/src/Signing/sign_test.bat
index 132c2fe..d96aa8a 100644
--- a/src/Signing/sign_test.bat
+++ b/src/Signing/sign_test.bat
@@ -1,32 +1,66 @@
-PATH=%PATH%;%WSDK81%\bin\x86
-
-set PFXNAME=TestCertificate\idrix_codeSign.pfx
-set PFXPASSWORD=idrix
-set PFXCA=TestCertificate\idrix_TestRootCA.crt
-set SHA256PFXNAME=TestCertificate\idrix_Sha256CodeSign.pfx
-set SHA256PFXPASSWORD=idrix
-set SHA256PFXCA=TestCertificate\idrix_SHA256TestRootCA.crt
-
-rem sign using SHA-1
-signtool sign /v /a /f %PFXNAME% /p %PFXPASSWORD% /ac %PFXCA% /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys" "..\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"
-
-rem sign using SHA-256
-signtool sign /v /a /f %SHA256PFXNAME% /p %SHA256PFXPASSWORD% /ac %SHA256PFXCA% /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys" "..\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"
-
-cd "..\Release\Setup Files\"
-
-copy /V /Y ..\..\..\Translations\*.xml .
-
-"VeraCrypt Setup.exe" /p
-
-del *.xml
-
-cd "..\..\Signing"
-
-rem sign using SHA-1
-signtool sign /v /a /f %PFXNAME% /p %PFXPASSWORD% /ac %PFXCA% /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup 1.19.exe"
-
-rem sign using SHA-256
-signtool sign /v /a /f %SHA256PFXNAME% /p %SHA256PFXPASSWORD% /ac %SHA256PFXCA% /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\VeraCrypt Setup 1.19.exe"
-
+PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip
+
+set PFXNAME=TestCertificate\idrix_codeSign.pfx
+set PFXPASSWORD=idrix
+set PFXCA=TestCertificate\idrix_TestRootCA.crt
+set SHA256PFXNAME=TestCertificate\idrix_Sha256CodeSign.pfx
+set SHA256PFXPASSWORD=idrix
+set SHA256PFXCA=TestCertificate\idrix_SHA256TestRootCA.crt
+
+set SIGNINGPATH=%~dp0
+cd %SIGNINGPATH%
+
+call "..\..\doc\chm\create_chm.bat"
+
+cd %SIGNINGPATH%
+
+rem sign using SHA-1
+signtool sign /v /a /f %PFXNAME% /p %PFXPASSWORD% /ac %PFXCA% /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys" "..\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"
+
+rem sign using SHA-256
+signtool sign /v /a /f %SHA256PFXNAME% /p %SHA256PFXPASSWORD% /ac %SHA256PFXCA% /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys" "..\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"
+
+cd "..\Release\Setup Files\"
+
+copy ..\..\LICENSE .
+copy ..\..\License.txt .
+copy ..\..\NOTICE .
+
+del *.xml
+rmdir /S /Q Languages
+mkdir Languages
+copy /V /Y ..\..\..\Translations\*.xml Languages\.
+del Languages.zip
+7z a -y Languages.zip Languages
+
+rmdir /S /Q docs
+mkdir docs\html\en
+mkdir docs\EFI-DCS
+copy /V /Y ..\..\..\doc\html\* docs\html\en\.
+copy "..\..\..\doc\chm\VeraCrypt User Guide.chm" docs\.
+copy "..\..\..\doc\EFI-DCS\*.pdf" docs\EFI-DCS\.
+
+del docs.zip
+7z a -y docs.zip docs
+
+"VeraCrypt Setup.exe" /p
+
+del LICENSE
+del License.txt
+del NOTICE
+del "VeraCrypt User Guide.chm"
+
+del Languages.zip
+del docs.zip
+rmdir /S /Q Languages
+rmdir /S /Q docs
+
+cd %SIGNINGPATH%
+
+rem sign using SHA-1
+signtool sign /v /a /f %PFXNAME% /p %PFXPASSWORD% /ac %PFXCA% /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup 1.21.exe"
+
+rem sign using SHA-256
+signtool sign /v /a /f %SHA256PFXNAME% /p %SHA256PFXPASSWORD% /ac %SHA256PFXCA% /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\VeraCrypt Setup 1.21.exe"
+
pause \ No newline at end of file
diff --git a/src/Signing/sign_test_debug.bat b/src/Signing/sign_test_debug.bat
new file mode 100644
index 0000000..b058302
--- /dev/null
+++ b/src/Signing/sign_test_debug.bat
@@ -0,0 +1,66 @@
+PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip
+
+set PFXNAME=TestCertificate\idrix_codeSign.pfx
+set PFXPASSWORD=idrix
+set PFXCA=TestCertificate\idrix_TestRootCA.crt
+set SHA256PFXNAME=TestCertificate\idrix_Sha256CodeSign.pfx
+set SHA256PFXPASSWORD=idrix
+set SHA256PFXCA=TestCertificate\idrix_SHA256TestRootCA.crt
+
+set SIGNINGPATH=%~dp0
+cd %SIGNINGPATH%
+
+call "..\..\doc\chm\create_chm.bat"
+
+cd %SIGNINGPATH%
+
+rem sign using SHA-1
+signtool sign /v /a /f %PFXNAME% /p %PFXPASSWORD% /ac %PFXCA% /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Debug\Setup Files\veracrypt.sys" "..\Debug\Setup Files\veracrypt-x64.sys" "..\Debug\Setup Files\VeraCrypt.exe" "..\Debug\Setup Files\VeraCrypt Format.exe" "..\Debug\Setup Files\VeraCryptExpander.exe" "..\Debug\Setup Files\VeraCrypt-x64.exe" "..\Debug\Setup Files\VeraCrypt Format-x64.exe" "..\Debug\Setup Files\VeraCryptExpander-x64.exe"
+
+rem sign using SHA-256
+signtool sign /v /a /f %SHA256PFXNAME% /p %SHA256PFXPASSWORD% /ac %SHA256PFXCA% /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Debug\Setup Files\veracrypt.sys" "..\Debug\Setup Files\veracrypt-x64.sys" "..\Debug\Setup Files\VeraCrypt.exe" "..\Debug\Setup Files\VeraCrypt Format.exe" "..\Debug\Setup Files\VeraCryptExpander.exe" "..\Debug\Setup Files\VeraCrypt-x64.exe" "..\Debug\Setup Files\VeraCrypt Format-x64.exe" "..\Debug\Setup Files\VeraCryptExpander-x64.exe"
+
+cd "..\Debug\Setup Files\"
+
+copy ..\..\LICENSE .
+copy ..\..\License.txt .
+copy ..\..\NOTICE .
+
+del *.xml
+rmdir /S /Q Languages
+mkdir Languages
+copy /V /Y ..\..\..\Translations\*.xml Languages\.
+del Languages.zip
+7z a -y Languages.zip Languages
+
+rmdir /S /Q docs
+mkdir docs\html\en
+mkdir docs\EFI-DCS
+copy /V /Y ..\..\..\doc\html\* docs\html\en\.
+copy "..\..\..\doc\chm\VeraCrypt User Guide.chm" docs\.
+copy "..\..\..\doc\EFI-DCS\*.pdf" docs\EFI-DCS\.
+
+del docs.zip
+7z a -y docs.zip docs
+
+"VeraCrypt Setup.exe" /p
+
+del LICENSE
+del License.txt
+del NOTICE
+del "VeraCrypt User Guide.chm"
+
+del Languages.zip
+del docs.zip
+rmdir /S /Q Languages
+rmdir /S /Q docs
+
+cd %SIGNINGPATH%
+
+rem sign using SHA-1
+signtool sign /v /a /f %PFXNAME% /p %PFXPASSWORD% /ac %PFXCA% /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Debug\Setup Files\VeraCrypt Setup 1.21.exe"
+
+rem sign using SHA-256
+signtool sign /v /a /f %SHA256PFXNAME% /p %SHA256PFXPASSWORD% /ac %SHA256PFXCA% /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Debug\Setup Files\VeraCrypt Setup 1.21.exe"
+
+pause \ No newline at end of file
diff --git a/src/VeraCrypt.sln b/src/VeraCrypt.sln
index 343ccf1..cc0387e 100644
--- a/src/VeraCrypt.sln
+++ b/src/VeraCrypt.sln
@@ -1,445 +1,513 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto", "Crypto\Crypto.vcxproj", "{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Driver", "Driver\Driver.vcxproj", "{EF5EF444-18D0-40D7-8DFA-775EC4448602}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Format", "Format\Format.vcxproj", "{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mount", "Mount\Mount.vcxproj", "{E4C40F94-E7F9-4981-86E4-186B46F993F3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Setup", "Setup\Setup.vcxproj", "{DF5F654D-BD44-4E31-B92E-B68074DC37A8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Boot", "Boot\Windows\Boot.vcxproj", "{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExpandVolume", "ExpandVolume\ExpandVolume.vcxproj", "{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- All Debug|Win32 = All Debug|Win32
- All Debug|x64 = All Debug|x64
- All|Win32 = All|Win32
- All|x64 = All|x64
- Boot Loader|Win32 = Boot Loader|Win32
- Boot Loader|x64 = Boot Loader|x64
- Boot|Win32 = Boot|Win32
- Boot|x64 = Boot|x64
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- Driver Debug|Win32 = Driver Debug|Win32
- Driver Debug|x64 = Driver Debug|x64
- Driver x64 Debug|Win32 = Driver x64 Debug|Win32
- Driver x64 Debug|x64 = Driver x64 Debug|x64
- Driver x64|Win32 = Driver x64|Win32
- Driver x64|x64 = Driver x64|x64
- Driver x86 Debug|Win32 = Driver x86 Debug|Win32
- Driver x86 Debug|x64 = Driver x86 Debug|x64
- Driver x86|Win32 = Driver x86|Win32
- Driver x86|x64 = Driver x86|x64
- Driver|Win32 = Driver|Win32
- Driver|x64 = Driver|x64
- Format Debug|Win32 = Format Debug|Win32
- Format Debug|x64 = Format Debug|x64
- Format|Win32 = Format|Win32
- Format|x64 = Format|x64
- Mount Debug|Win32 = Mount Debug|Win32
- Mount Debug|x64 = Mount Debug|x64
- Mount|Win32 = Mount|Win32
- Mount|x64 = Mount|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- Setup Debug|Win32 = Setup Debug|Win32
- Setup Debug|x64 = Setup Debug|x64
- Setup|Win32 = Setup|Win32
- Setup|x64 = Setup|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|Win32.Build.0 = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|Win32.Build.0 = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|x64.ActiveCfg = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|x64.Build.0 = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot Loader|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot Loader|x64.ActiveCfg = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot Loader|x64.Build.0 = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot|x64.ActiveCfg = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot|x64.Build.0 = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|Win32.Build.0 = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64 Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86 Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|Win32.Build.0 = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|Win32.Build.0 = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|x64.ActiveCfg = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|x64.Build.0 = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|Win32.Build.0 = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|Win32.Build.0 = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|x64.ActiveCfg = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|x64.Build.0 = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.Build.0 = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|x64.ActiveCfg = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|x64.Build.0 = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|Win32.ActiveCfg = Debug|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|x64.ActiveCfg = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|x64.Build.0 = Debug|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup|Win32.ActiveCfg = Release|Win32
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup|x64.ActiveCfg = Release|x64
- {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup|x64.Build.0 = Release|x64
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All Debug|Win32.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All Debug|Win32.Build.0 = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All|Win32.Build.0 = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All|x64.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot Loader|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot Loader|x64.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot|x64.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|Win32.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|Win32.Build.0 = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|Win32.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|Win32.Build.0 = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64 Debug|Win32.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64 Debug|Win32.Build.0 = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64|Win32.ActiveCfg = Release x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64|Win32.Build.0 = Release x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64|x64.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86 Debug|Win32.ActiveCfg = Debug x86|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86 Debug|Win32.Build.0 = Debug x86|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86|Win32.ActiveCfg = Release x86|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86|Win32.Build.0 = Release x86|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86|x64.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver|Win32.Build.0 = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver|x64.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format Debug|Win32.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format|x64.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount Debug|Win32.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount|x64.ActiveCfg = Debug x64|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.Build.0 = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|x64.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup Debug|Win32.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup Debug|x64.ActiveCfg = Debug|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup|Win32.ActiveCfg = Release|Win32
- {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup|x64.ActiveCfg = Debug x64|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|Win32.Build.0 = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|Win32.Build.0 = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|x64.ActiveCfg = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|x64.Build.0 = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot Loader|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot Loader|x64.ActiveCfg = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot Loader|x64.Build.0 = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot|x64.ActiveCfg = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot|x64.Build.0 = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|Win32.Build.0 = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64 Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86 Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|Win32.Build.0 = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|Win32.Build.0 = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|x64.ActiveCfg = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|x64.Build.0 = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|x64.ActiveCfg = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|x64.Build.0 = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.Build.0 = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|x64.ActiveCfg = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|x64.Build.0 = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|Win32.ActiveCfg = Debug|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|x64.ActiveCfg = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|x64.Build.0 = Debug|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup|Win32.ActiveCfg = Release|Win32
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup|x64.ActiveCfg = Release|x64
- {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup|x64.Build.0 = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|Win32.Build.0 = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|Win32.Build.0 = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|x64.ActiveCfg = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|x64.Build.0 = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot Loader|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot Loader|x64.ActiveCfg = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot Loader|x64.Build.0 = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot|x64.ActiveCfg = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot|x64.Build.0 = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|Win32.Build.0 = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64 Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86 Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format|x64.ActiveCfg = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format|x64.Build.0 = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|Win32.Build.0 = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|Win32.Build.0 = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|x64.ActiveCfg = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|x64.Build.0 = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.Build.0 = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|x64.ActiveCfg = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|x64.Build.0 = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|Win32.ActiveCfg = Debug|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|x64.ActiveCfg = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|x64.Build.0 = Debug|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup|Win32.ActiveCfg = Release|Win32
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup|x64.ActiveCfg = Release|x64
- {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup|x64.Build.0 = Release|x64
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|Win32.Build.0 = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|Win32.Build.0 = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|x64.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|x64.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|x64.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.Build.0 = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|x64.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|x64.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.Build.0 = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|x64.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.Build.0 = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|x64.ActiveCfg = Debug|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|Win32.ActiveCfg = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|Win32.Build.0 = Release|Win32
- {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|x64.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All Debug|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All Debug|Win32.Build.0 = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All|Win32.Build.0 = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All|x64.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot Loader|Win32.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot Loader|Win32.Build.0 = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot Loader|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|Win32.Build.0 = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|Win32.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|Win32.Build.0 = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver Debug|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64 Debug|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64 Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86 Debug|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86 Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format Debug|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount Debug|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.Build.0 = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|x64.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup Debug|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup Debug|x64.ActiveCfg = Release Loader|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup|Win32.ActiveCfg = Release|Win32
- {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup|x64.ActiveCfg = Release Loader|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|Win32.ActiveCfg = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|Win32.Build.0 = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|x64.ActiveCfg = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|x64.Build.0 = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|Win32.ActiveCfg = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|Win32.Build.0 = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|x64.ActiveCfg = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|x64.Build.0 = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|Win32.ActiveCfg = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|Win32.Build.0 = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|x64.ActiveCfg = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|x64.Build.0 = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|Win32.ActiveCfg = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|Win32.Build.0 = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|x64.ActiveCfg = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|x64.Build.0 = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|Win32.ActiveCfg = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|Win32.Build.0 = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|x64.ActiveCfg = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|x64.Build.0 = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.ActiveCfg = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.Build.0 = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|x64.ActiveCfg = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|x64.Build.0 = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|Win32.ActiveCfg = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|Win32.Build.0 = Debug|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|x64.ActiveCfg = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|x64.Build.0 = Debug|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|Win32.ActiveCfg = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|Win32.Build.0 = Release|Win32
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|x64.ActiveCfg = Release|x64
- {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto", "Crypto\Crypto.vcxproj", "{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Driver", "Driver\Driver.vcxproj", "{EF5EF444-18D0-40D7-8DFA-775EC4448602}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Format", "Format\Format.vcxproj", "{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} = {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mount", "Mount\Mount.vcxproj", "{E4C40F94-E7F9-4981-86E4-186B46F993F3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} = {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Setup", "Setup\Setup.vcxproj", "{DF5F654D-BD44-4E31-B92E-B68074DC37A8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} = {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Boot", "Boot\Windows\Boot.vcxproj", "{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExpandVolume", "ExpandVolume\ExpandVolume.vcxproj", "{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} = {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Zip", "Common\Zip.vcxproj", "{6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ All Debug|Win32 = All Debug|Win32
+ All Debug|x64 = All Debug|x64
+ All|Win32 = All|Win32
+ All|x64 = All|x64
+ Boot Loader|Win32 = Boot Loader|Win32
+ Boot Loader|x64 = Boot Loader|x64
+ Boot|Win32 = Boot|Win32
+ Boot|x64 = Boot|x64
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Driver Debug|Win32 = Driver Debug|Win32
+ Driver Debug|x64 = Driver Debug|x64
+ Driver x64 Debug|Win32 = Driver x64 Debug|Win32
+ Driver x64 Debug|x64 = Driver x64 Debug|x64
+ Driver x64|Win32 = Driver x64|Win32
+ Driver x64|x64 = Driver x64|x64
+ Driver x86 Debug|Win32 = Driver x86 Debug|Win32
+ Driver x86 Debug|x64 = Driver x86 Debug|x64
+ Driver x86|Win32 = Driver x86|Win32
+ Driver x86|x64 = Driver x86|x64
+ Driver|Win32 = Driver|Win32
+ Driver|x64 = Driver|x64
+ Format Debug|Win32 = Format Debug|Win32
+ Format Debug|x64 = Format Debug|x64
+ Format|Win32 = Format|Win32
+ Format|x64 = Format|x64
+ Mount Debug|Win32 = Mount Debug|Win32
+ Mount Debug|x64 = Mount Debug|x64
+ Mount|Win32 = Mount|Win32
+ Mount|x64 = Mount|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Setup Debug|Win32 = Setup Debug|Win32
+ Setup Debug|x64 = Setup Debug|x64
+ Setup|Win32 = Setup|Win32
+ Setup|x64 = Setup|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|Win32.Build.0 = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|Win32.Build.0 = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|x64.ActiveCfg = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|x64.Build.0 = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot Loader|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot Loader|x64.ActiveCfg = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot Loader|x64.Build.0 = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot|x64.ActiveCfg = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot|x64.Build.0 = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|Win32.Build.0 = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64 Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86 Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x86|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|Win32.Build.0 = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|Win32.Build.0 = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|x64.ActiveCfg = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Format|x64.Build.0 = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|Win32.Build.0 = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|Win32.Build.0 = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|x64.ActiveCfg = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|x64.Build.0 = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.Build.0 = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|x64.ActiveCfg = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|x64.Build.0 = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|x64.ActiveCfg = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|x64.Build.0 = Debug|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup|Win32.ActiveCfg = Release|Win32
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup|x64.ActiveCfg = Release|x64
+ {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup|x64.Build.0 = Release|x64
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All Debug|Win32.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All Debug|Win32.Build.0 = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All|Win32.Build.0 = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.All|x64.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot Loader|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot Loader|x64.ActiveCfg = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot|x64.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|Win32.Build.0 = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|Win32.Build.0 = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64 Debug|Win32.ActiveCfg = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64 Debug|Win32.Build.0 = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64|Win32.ActiveCfg = Release x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64|Win32.Build.0 = Release x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64|x64.ActiveCfg = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86 Debug|Win32.ActiveCfg = Debug x86|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86 Debug|Win32.Build.0 = Debug x86|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86|Win32.ActiveCfg = Release x86|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86|Win32.Build.0 = Release x86|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x86|x64.ActiveCfg = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver|Win32.Build.0 = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver|x64.ActiveCfg = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format Debug|Win32.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format|x64.ActiveCfg = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount|x64.ActiveCfg = Debug x64|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.Build.0 = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|x64.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup Debug|x64.ActiveCfg = Debug|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup|Win32.ActiveCfg = Release|Win32
+ {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup|x64.ActiveCfg = Debug x64|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|Win32.Build.0 = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|Win32.Build.0 = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|x64.ActiveCfg = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|x64.Build.0 = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot Loader|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot Loader|x64.ActiveCfg = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot Loader|x64.Build.0 = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot|x64.ActiveCfg = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot|x64.Build.0 = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|Win32.Build.0 = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64 Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86 Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x86|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|Win32.Build.0 = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|Win32.Build.0 = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|x64.ActiveCfg = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|x64.Build.0 = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|x64.ActiveCfg = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|x64.Build.0 = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.Build.0 = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|x64.ActiveCfg = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|x64.Build.0 = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|x64.ActiveCfg = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|x64.Build.0 = Debug|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup|Win32.ActiveCfg = Release|Win32
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup|x64.ActiveCfg = Release|x64
+ {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup|x64.Build.0 = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|Win32.Build.0 = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|Win32.Build.0 = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|x64.ActiveCfg = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|x64.Build.0 = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot Loader|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot Loader|x64.ActiveCfg = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot Loader|x64.Build.0 = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot|x64.ActiveCfg = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot|x64.Build.0 = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|Win32.Build.0 = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64 Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86 Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x86|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format|x64.ActiveCfg = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Format|x64.Build.0 = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|Win32.Build.0 = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|Win32.Build.0 = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|x64.ActiveCfg = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|x64.Build.0 = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.Build.0 = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|x64.ActiveCfg = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|x64.Build.0 = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|x64.ActiveCfg = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|x64.Build.0 = Debug|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup|Win32.ActiveCfg = Release|Win32
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup|x64.ActiveCfg = Release|x64
+ {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup|x64.Build.0 = Release|x64
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|Win32.Build.0 = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|Win32.Build.0 = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|x64.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|x64.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|x64.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.Build.0 = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|x64.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|x64.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.Build.0 = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|x64.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.Build.0 = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|x64.ActiveCfg = Debug|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|Win32.ActiveCfg = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|Win32.Build.0 = Release|Win32
+ {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|x64.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All Debug|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All Debug|Win32.Build.0 = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All|Win32.Build.0 = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.All|x64.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot Loader|Win32.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot Loader|Win32.Build.0 = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot Loader|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|Win32.Build.0 = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|x64.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|Win32.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|Win32.Build.0 = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver Debug|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64 Debug|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64 Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86 Debug|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86 Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x86|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format Debug|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount Debug|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.Build.0 = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|x64.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup Debug|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup Debug|x64.ActiveCfg = Release Loader|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup|Win32.ActiveCfg = Release|Win32
+ {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup|x64.ActiveCfg = Release Loader|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|Win32.ActiveCfg = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|Win32.Build.0 = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|x64.ActiveCfg = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|x64.Build.0 = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|Win32.ActiveCfg = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|Win32.Build.0 = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|x64.ActiveCfg = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|x64.Build.0 = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|Win32.ActiveCfg = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|x64.ActiveCfg = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|x64.Build.0 = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|Win32.ActiveCfg = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|Win32.Build.0 = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|x64.ActiveCfg = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|x64.Build.0 = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|Win32.ActiveCfg = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|Win32.Build.0 = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|x64.ActiveCfg = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|x64.Build.0 = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.ActiveCfg = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.Build.0 = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|x64.ActiveCfg = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|x64.Build.0 = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|Win32.Build.0 = Debug|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|x64.ActiveCfg = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|x64.Build.0 = Debug|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|Win32.ActiveCfg = Release|Win32
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|x64.ActiveCfg = Release|x64
+ {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|x64.Build.0 = Release|x64
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All Debug|x64.ActiveCfg = Debug|x64
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All Debug|x64.Build.0 = Debug|x64
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All|Win32.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All|Win32.Build.0 = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All|x64.ActiveCfg = Release|x64
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.All|x64.Build.0 = Release|x64
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Boot Loader|Win32.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Boot Loader|Win32.Build.0 = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Boot Loader|x64.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Boot|Win32.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Boot|Win32.Build.0 = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Boot|x64.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Debug|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver Debug|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x64 Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x64|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x64|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x64|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x86 Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x86|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x86|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver x86|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Driver|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Format Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Format Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Format Debug|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Format|Win32.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Format|Win32.Build.0 = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Format|x64.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount Debug|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount|Win32.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount|Win32.Build.0 = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount|x64.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|Win32.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|Win32.Build.0 = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|x64.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup Debug|Win32.Build.0 = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup Debug|x64.ActiveCfg = Debug|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup|Win32.ActiveCfg = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup|Win32.Build.0 = Release|Win32
+ {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup|x64.ActiveCfg = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/Volume/Cipher.cpp b/src/Volume/Cipher.cpp
index 09c821b..de351ad 100644
--- a/src/Volume/Cipher.cpp
+++ b/src/Volume/Cipher.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -24,6 +24,23 @@
#endif
#include "Crypto/cpu.h"
+extern "C" int IsAesHwCpuSupported ()
+{
+#ifdef TC_AES_HW_CPU
+ static bool state = false;
+ static bool stateValid = false;
+
+ if (!stateValid)
+ {
+ state = g_hasAESNI ? true : false;
+ stateValid = true;
+ }
+ return state && VeraCrypt::Cipher::IsHwSupportEnabled();
+#else
+ return false;
+#endif
+}
+
namespace VeraCrypt
{
Cipher::Cipher () : Initialized (false)
@@ -296,6 +313,39 @@ namespace VeraCrypt
twofish_set_key ((TwofishInstance *) ScheduledKey.Ptr(), (unsigned int *) key);
}
+ void CipherTwofish::EncryptBlocks (byte *data, size_t blockCount) const
+ {
+ if (!Initialized)
+ throw NotInitialized (SRC_POS);
+
+#if CRYPTOPP_BOOL_X64
+ twofish_encrypt_blocks ( (TwofishInstance *) ScheduledKey.Ptr(), data, data, blockCount);
+#else
+ Cipher::EncryptBlocks (data, blockCount);
+#endif
+ }
+
+ void CipherTwofish::DecryptBlocks (byte *data, size_t blockCount) const
+ {
+ if (!Initialized)
+ throw NotInitialized (SRC_POS);
+
+#if CRYPTOPP_BOOL_X64
+ twofish_decrypt_blocks ( (TwofishInstance *) ScheduledKey.Ptr(), data, data, blockCount);
+#else
+ Cipher::DecryptBlocks (data, blockCount);
+#endif
+ }
+
+ bool CipherTwofish::IsHwSupportAvailable () const
+ {
+#if CRYPTOPP_BOOL_X64
+ return true;
+#else
+ return false;
+#endif
+ }
+
// Camellia
void CipherCamellia::Decrypt (byte *data) const
{
@@ -316,6 +366,39 @@ namespace VeraCrypt
{
camellia_set_key (key, ScheduledKey.Ptr());
}
+
+ void CipherCamellia::EncryptBlocks (byte *data, size_t blockCount) const
+ {
+ if (!Initialized)
+ throw NotInitialized (SRC_POS);
+
+#if CRYPTOPP_BOOL_X64
+ camellia_encrypt_blocks ( ScheduledKey.Ptr(), data, data, blockCount);
+#else
+ Cipher::EncryptBlocks (data, blockCount);
+#endif
+ }
+
+ void CipherCamellia::DecryptBlocks (byte *data, size_t blockCount) const
+ {
+ if (!Initialized)
+ throw NotInitialized (SRC_POS);
+
+#if CRYPTOPP_BOOL_X64
+ camellia_decrypt_blocks ( ScheduledKey.Ptr(), data, data, blockCount);
+#else
+ Cipher::DecryptBlocks (data, blockCount);
+#endif
+ }
+
+ bool CipherCamellia::IsHwSupportAvailable () const
+ {
+#if CRYPTOPP_BOOL_X64
+ return true;
+#else
+ return false;
+#endif
+ }
// GOST89
void CipherGost89::Decrypt (byte *data) const
diff --git a/src/Volume/Cipher.h b/src/Volume/Cipher.h
index 7aefbfc..27925b7 100644
--- a/src/Volume/Cipher.h
+++ b/src/Volume/Cipher.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -14,6 +14,7 @@
#define TC_HEADER_Encryption_Ciphers
#include "Platform/Platform.h"
+#include "Crypto/config.h"
namespace VeraCrypt
@@ -101,12 +102,12 @@ namespace VeraCrypt
TC_CIPHER (AES, 16, 32);
TC_CIPHER (Serpent, 16, 32);
+ TC_CIPHER (Twofish, 16, 32);
+ TC_CIPHER (Camellia, 16, 32);
#undef TC_CIPHER_ADD_METHODS
#define TC_CIPHER_ADD_METHODS
- TC_CIPHER (Twofish, 16, 32);
- TC_CIPHER (Camellia, 16, 32);
TC_CIPHER (Gost89, 16, 32);
TC_CIPHER (Gost89StaticSBOX, 16, 32);
TC_CIPHER (Kuznyechik, 16, 32);
diff --git a/src/Volume/Crc32.h b/src/Volume/Crc32.h
index eb62280..ced2045 100644
--- a/src/Volume/Crc32.h
+++ b/src/Volume/Crc32.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionAlgorithm.cpp b/src/Volume/EncryptionAlgorithm.cpp
index 79e27fe..e36b500 100644
--- a/src/Volume/EncryptionAlgorithm.cpp
+++ b/src/Volume/EncryptionAlgorithm.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionAlgorithm.h b/src/Volume/EncryptionAlgorithm.h
index ff1b128..c2d7acb 100644
--- a/src/Volume/EncryptionAlgorithm.h
+++ b/src/Volume/EncryptionAlgorithm.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionMode.cpp b/src/Volume/EncryptionMode.cpp
index f87bee3..b7e5cc0 100644
--- a/src/Volume/EncryptionMode.cpp
+++ b/src/Volume/EncryptionMode.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionMode.h b/src/Volume/EncryptionMode.h
index de93b99..a629d6b 100644
--- a/src/Volume/EncryptionMode.h
+++ b/src/Volume/EncryptionMode.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionModeXTS.cpp b/src/Volume/EncryptionModeXTS.cpp
index 4d713f7..e99b977 100644
--- a/src/Volume/EncryptionModeXTS.cpp
+++ b/src/Volume/EncryptionModeXTS.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionModeXTS.h b/src/Volume/EncryptionModeXTS.h
index 0b01f1d..6f67407 100644
--- a/src/Volume/EncryptionModeXTS.h
+++ b/src/Volume/EncryptionModeXTS.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionTest.cpp b/src/Volume/EncryptionTest.cpp
index 9b68bb3..23d04ea 100644
--- a/src/Volume/EncryptionTest.cpp
+++ b/src/Volume/EncryptionTest.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionTest.h b/src/Volume/EncryptionTest.h
index 3123304..17e14fd 100644
--- a/src/Volume/EncryptionTest.h
+++ b/src/Volume/EncryptionTest.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionThreadPool.cpp b/src/Volume/EncryptionThreadPool.cpp
index 954322c..4219c7d 100644
--- a/src/Volume/EncryptionThreadPool.cpp
+++ b/src/Volume/EncryptionThreadPool.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/EncryptionThreadPool.h b/src/Volume/EncryptionThreadPool.h
index 31886b2..43aa4c8 100644
--- a/src/Volume/EncryptionThreadPool.h
+++ b/src/Volume/EncryptionThreadPool.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Hash.cpp b/src/Volume/Hash.cpp
index 59eccdf..5e64b3f 100644
--- a/src/Volume/Hash.cpp
+++ b/src/Volume/Hash.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -48,7 +48,7 @@ namespace VeraCrypt
Ripemd160::Ripemd160 ()
{
Deprecated = true; // Mark RIPEMD-160 as deprecated like on Windows.
- Context.Allocate (sizeof (RMD160_CTX));
+ Context.Allocate (sizeof (RMD160_CTX), 32);
Init();
}
@@ -72,7 +72,7 @@ namespace VeraCrypt
// SHA-256
Sha256::Sha256 ()
{
- Context.Allocate (sizeof (sha256_ctx));
+ Context.Allocate (sizeof (sha256_ctx), 32);
Init();
}
@@ -96,7 +96,7 @@ namespace VeraCrypt
// SHA-512
Sha512::Sha512 ()
{
- Context.Allocate (sizeof (sha512_ctx));
+ Context.Allocate (sizeof (sha512_ctx), 32);
Init();
}
@@ -120,7 +120,7 @@ namespace VeraCrypt
// Whirlpool
Whirlpool::Whirlpool ()
{
- Context.Allocate (sizeof (WHIRLPOOL_CTX));
+ Context.Allocate (sizeof (WHIRLPOOL_CTX), 32);
Init();
}
@@ -144,7 +144,7 @@ namespace VeraCrypt
// Streebog
Streebog::Streebog ()
{
- Context.Allocate (sizeof (STREEBOG_CTX));
+ Context.Allocate (sizeof (STREEBOG_CTX), 32);
Init();
}
diff --git a/src/Volume/Hash.h b/src/Volume/Hash.h
index 9cef9de..c76a689 100644
--- a/src/Volume/Hash.h
+++ b/src/Volume/Hash.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Keyfile.cpp b/src/Volume/Keyfile.cpp
index 7fe81f2..e52d58f 100644
--- a/src/Volume/Keyfile.cpp
+++ b/src/Volume/Keyfile.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Keyfile.h b/src/Volume/Keyfile.h
index d608a5f..0467417 100644
--- a/src/Volume/Keyfile.h
+++ b/src/Volume/Keyfile.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Pkcs5Kdf.cpp b/src/Volume/Pkcs5Kdf.cpp
index 1e229d1..fd49d2e 100644
--- a/src/Volume/Pkcs5Kdf.cpp
+++ b/src/Volume/Pkcs5Kdf.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Pkcs5Kdf.h b/src/Volume/Pkcs5Kdf.h
index acbcbfa..76cc56a 100644
--- a/src/Volume/Pkcs5Kdf.h
+++ b/src/Volume/Pkcs5Kdf.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Version.h b/src/Volume/Version.h
index 9956297..b2f9215 100644
--- a/src/Volume/Version.h
+++ b/src/Volume/Version.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Volume.cpp b/src/Volume/Volume.cpp
index e9bf40c..d3ef206 100644
--- a/src/Volume/Volume.cpp
+++ b/src/Volume/Volume.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/Volume.h b/src/Volume/Volume.h
index 30373ca..311c65b 100644
--- a/src/Volume/Volume.h
+++ b/src/Volume/Volume.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
@@ -39,6 +39,33 @@ namespace VeraCrypt
bool IsDevice () const { return FilesystemPath (Data).IsBlockDevice() || FilesystemPath (Data).IsCharacterDevice(); }
bool IsEmpty () const { return Data.empty(); }
+
+ wstring GetExtension () const
+ {
+ if (Data.empty() || (Data.size() == 1))
+ return L"";
+ else
+ {
+ size_t pos = Data.find_last_of (L'.');
+ if (pos == string::npos)
+ return L"";
+ return Data.substr (pos + 1);
+ }
+ }
+
+ bool HasTrueCryptExtension () const
+ {
+ wstring sExt = GetExtension ();
+ if ((sExt.size () == 2)
+ && (sExt[0] == L't' || sExt[0] == L'T')
+ && (sExt[1] == L'c' || sExt[1] == L'C')
+ )
+ {
+ return true;
+ }
+ else
+ return false;
+ }
protected:
wstring Data;
diff --git a/src/Volume/Volume.make b/src/Volume/Volume.make
index fa3a420..b8f6942 100644
--- a/src/Volume/Volume.make
+++ b/src/Volume/Volume.make
@@ -4,7 +4,7 @@
# by the TrueCrypt License 3.0.
#
# Modifications and additions to the original source code (contained in this file)
-# and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+# and all other portions of this file are Copyright (c) 2013-2017 IDRIX
# and are 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.
@@ -33,12 +33,35 @@ ifeq "$(PLATFORM)" "MacOSX"
OBJSEX += ../Crypto/Aes_asm.oo
OBJS += ../Crypto/Aes_hw_cpu.o
OBJS += ../Crypto/Aescrypt.o
+ OBJSEX += ../Crypto/Twofish_asm.oo
+ OBJSEX += ../Crypto/Camellia_asm.oo
+ OBJSEX += ../Crypto/Camellia_aesni_asm.oo
+ OBJSEX += ../Crypto/sha256-nayuki.oo
+ OBJSEX += ../Crypto/sha512-nayuki.oo
+ OBJSEX += ../Crypto/sha256_avx1.oo
+ OBJSEX += ../Crypto/sha256_avx2.oo
+ OBJSEX += ../Crypto/sha256_sse4.oo
+ OBJSEX += ../Crypto/sha512_avx1.oo
+ OBJSEX += ../Crypto/sha512_avx2.oo
+ OBJSEX += ../Crypto/sha512_sse4.oo
else ifeq "$(CPU_ARCH)" "x86"
OBJS += ../Crypto/Aes_x86.o
OBJS += ../Crypto/Aes_hw_cpu.o
+ OBJS += ../Crypto/sha256-x86-nayuki.o
+ OBJS += ../Crypto/sha512-x86-nayuki.o
else ifeq "$(CPU_ARCH)" "x64"
OBJS += ../Crypto/Aes_x64.o
OBJS += ../Crypto/Aes_hw_cpu.o
+ OBJS += ../Crypto/Twofish_x64.o
+ OBJS += ../Crypto/Camellia_x64.o
+ OBJS += ../Crypto/Camellia_aesni_x64.o
+ OBJS += ../Crypto/sha512-x64-nayuki.o
+ OBJS += ../Crypto/sha256_avx1_x64.o
+ OBJS += ../Crypto/sha256_avx2_x64.o
+ OBJS += ../Crypto/sha256_sse4_x64.o
+ OBJS += ../Crypto/sha512_avx1_x64.o
+ OBJS += ../Crypto/sha512_avx2_x64.o
+ OBJS += ../Crypto/sha512_sse4_x64.o
else
OBJS += ../Crypto/Aescrypt.o
endif
@@ -68,10 +91,46 @@ VolumeLibrary: Volume.a
ifeq "$(PLATFORM)" "MacOSX"
../Crypto/Aes_asm.oo: ../Crypto/Aes_x86.asm ../Crypto/Aes_x64.asm
@echo Assembling $(<F)
- $(AS) $(ASFLAGS) -f macho32 -o ../Crypto/Aes_x86.o ../Crypto/Aes_x86.asm
- $(AS) $(ASFLAGS) -f macho64 -o ../Crypto/Aes_x64.o ../Crypto/Aes_x64.asm
+ $(AS) $(ASFLAGS32) -o ../Crypto/Aes_x86.o ../Crypto/Aes_x86.asm
+ $(AS) $(ASFLAGS64) -o ../Crypto/Aes_x64.o ../Crypto/Aes_x64.asm
lipo -create ../Crypto/Aes_x86.o ../Crypto/Aes_x64.o -output ../Crypto/Aes_asm.oo
rm -fr ../Crypto/Aes_x86.o ../Crypto/Aes_x64.o
+../Crypto/Twofish_asm.oo: ../Crypto/Twofish_x64.S
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -p gas -o ../Crypto/Twofish_asm.oo ../Crypto/Twofish_x64.S
+../Crypto/Camellia_asm.oo: ../Crypto/Camellia_x64.S
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -p gas -o ../Crypto/Camellia_asm.oo ../Crypto/Camellia_x64.S
+../Crypto/Camellia_aesni_asm.oo: ../Crypto/Camellia_aesni_x64.S
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -p gas -o ../Crypto/Camellia_aesni_asm.oo ../Crypto/Camellia_aesni_x64.S
+../Crypto/sha256-nayuki.oo: ../Crypto/sha256-x86-nayuki.S
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS32) -p gas -o ../Crypto/sha256-x86-nayuki.o ../Crypto/sha256-x86-nayuki.S
+ $(AS) $(ASFLAGS64) -p gas -o ../Crypto/sha256-x64-nayuki.o ../Crypto/sha256-x64-nayuki.S
+ lipo -create ../Crypto/sha256-x86-nayuki.o ../Crypto/sha256-x64-nayuki.o -output ../Crypto/sha256-nayuki.oo
+ rm -fr ../Crypto/sha256-x86-nayuki.o ../Crypto/sha256-x64-nayuki.o
+../Crypto/sha256_avx1.oo: ../Crypto/sha256_avx1_x64.asm
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -o ../Crypto/sha256_avx1.oo ../Crypto/sha256_avx1_x64.asm
+../Crypto/sha256_avx2.oo: ../Crypto/sha256_avx2_x64.asm
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -o ../Crypto/sha256_avx2.oo ../Crypto/sha256_avx2_x64.asm
+../Crypto/sha256_sse4.oo: ../Crypto/sha256_sse4_x64.asm
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -o ../Crypto/sha256_sse4.oo ../Crypto/sha256_sse4_x64.asm
+../Crypto/sha512-nayuki.oo: ../Crypto/sha512-x64-nayuki.S
+ @echo Assembling $(<F)
+ $(AS) -p gas $(ASFLAGS64) -o ../Crypto/sha512-nayuki.oo ../Crypto/sha512-x64-nayuki.S
+../Crypto/sha512_avx1.oo: ../Crypto/sha512_avx1_x64.asm
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -o ../Crypto/sha512_avx1.oo ../Crypto/sha512_avx1_x64.asm
+../Crypto/sha512_avx2.oo: ../Crypto/sha512_avx2_x64.asm
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -o ../Crypto/sha512_avx2.oo ../Crypto/sha512_avx2_x64.asm
+../Crypto/sha512_sse4.oo: ../Crypto/sha512_sse4_x64.asm
+ @echo Assembling $(<F)
+ $(AS) $(ASFLAGS64) -o ../Crypto/sha512_sse4.oo ../Crypto/sha512_sse4_x64.asm
endif
include $(BUILD_INC)/Makefile.inc
diff --git a/src/Volume/VolumeException.cpp b/src/Volume/VolumeException.cpp
index 32e558e..0ba9ec3 100644
--- a/src/Volume/VolumeException.cpp
+++ b/src/Volume/VolumeException.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeException.h b/src/Volume/VolumeException.h
index c480930..8185fab 100644
--- a/src/Volume/VolumeException.h
+++ b/src/Volume/VolumeException.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeHeader.cpp b/src/Volume/VolumeHeader.cpp
index 13f04b3..faed1fc 100644
--- a/src/Volume/VolumeHeader.cpp
+++ b/src/Volume/VolumeHeader.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeHeader.h b/src/Volume/VolumeHeader.h
index 26c32c0..191547e 100644
--- a/src/Volume/VolumeHeader.h
+++ b/src/Volume/VolumeHeader.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeInfo.cpp b/src/Volume/VolumeInfo.cpp
index 0c610a8..b30dafa 100644
--- a/src/Volume/VolumeInfo.cpp
+++ b/src/Volume/VolumeInfo.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeInfo.h b/src/Volume/VolumeInfo.h
index b61dbde..f9e07a2 100644
--- a/src/Volume/VolumeInfo.h
+++ b/src/Volume/VolumeInfo.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeLayout.cpp b/src/Volume/VolumeLayout.cpp
index 69981a0..701bca8 100644
--- a/src/Volume/VolumeLayout.cpp
+++ b/src/Volume/VolumeLayout.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeLayout.h b/src/Volume/VolumeLayout.h
index a83e561..40a8643 100644
--- a/src/Volume/VolumeLayout.h
+++ b/src/Volume/VolumeLayout.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumePassword.cpp b/src/Volume/VolumePassword.cpp
index bfa0ffe..fee149c 100644
--- a/src/Volume/VolumePassword.cpp
+++ b/src/Volume/VolumePassword.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumePassword.h b/src/Volume/VolumePassword.h
index a547aac..6154bc0 100644
--- a/src/Volume/VolumePassword.h
+++ b/src/Volume/VolumePassword.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumePasswordCache.cpp b/src/Volume/VolumePasswordCache.cpp
index d2a956c..bd87a85 100644
--- a/src/Volume/VolumePasswordCache.cpp
+++ b/src/Volume/VolumePasswordCache.cpp
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumePasswordCache.h b/src/Volume/VolumePasswordCache.h
index ab1692d..21e6280 100644
--- a/src/Volume/VolumePasswordCache.h
+++ b/src/Volume/VolumePasswordCache.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.
diff --git a/src/Volume/VolumeSlot.h b/src/Volume/VolumeSlot.h
index 418328f..153f34a 100644
--- a/src/Volume/VolumeSlot.h
+++ b/src/Volume/VolumeSlot.h
@@ -4,7 +4,7 @@
by the TrueCrypt License 3.0.
Modifications and additions to the original source code (contained in this file)
- and all other portions of this file are Copyright (c) 2013-2016 IDRIX
+ and all other portions of this file are Copyright (c) 2013-2017 IDRIX
and are 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.