This helps to preserve unknown entries that may be used by future
versions of VeraCrypt (forward compatibility) or entries used by old
versions that were removed from current version (backward compatibility)
Rules of automatic flushing of stdout buffer is implementation-defined
behaviour. In glibc this is automatically flushed, but we can't rely
on it for other implementations such as musl.
We also rename the variables gpbSha256CodeSignCertFingerprint and gpbSha256MSCodeSignCertFingerprint to gpbSha512CodeSignCertFingerprint and gpbSha512MSCodeSignCertFingerprint respectively to reflect the fact that they are actually SHA512 hash values and not SHA256 ones.
When using multiple monitors, the resolution can change in OSX,
during plug-in/off off the display(s). To avoid window becoming
non-usable, there is EnsureVisible, that is called in several
places.
However, if you minimize VeraCrypt on the bigger screen, and
restore it in the main screen of a MacBook, after unplugging, the
window will become unusable (unless you know that clicking 'About'
calls EnsureVisible :-)).
Call EnsureVisible OnActivate so MainFrame is always functional
across screens, even when minimized.
If an error happens, error message will be read from popen pipe and so
libpcsclite.so will not be found. This is the same outcome as when
stdout is empty.
When this option is enabled, we first build the list of currently inserted devices then we start listening to insertion events.
When a device insertion occurs, we check if this device is on our list and if yes, we ignore its insertion.
We also ignore devices whose Device ID starts with "SWD\" and "ROOT\" since these are not real devices.
Currently there are a lot of translated strings that are never seen
anywhere as the installer doesn't offer all the available languages
as options in the installer wizard (sans Burmese).
Several enhancements implemented:
- replace CreateThread by _beginthreadex to avoid potential issues when using C runtime
- use an event to notify monitoring thread to stop instead of a volatile boolean
- perform switch to the regular desktop in the main thread and not in the secure desktop thread
When replacing a file container, we increase the `diskSpace`
by the file container's size. This doesn't affect the hidden volume
space logic, as in that case we use `MaxVolumeSize` when
`MaxVolumeSizeValid` is true instead of `AvailableDiskSpace`.
The usage of /Y parameter in format.com simplifies the logic and makes the code robust since we don't need to send \n to the format.com process.
Specifying RemovableMedia parameter to FormatEx fixes its failure in Windows 10 and later to perform quick format. This is also more adequate since we are mounting the volume as removable media for the formatting process.
We also add better error management in order to display adequate error message to the user in case of failure
If the currently selected item in the drive list is a mounted volume that can be dismounted, the Mount button displays "Dismount" and so we should not add the popup menu of "mount without cache" to it.
To fix drag-n-drop of keyfiles, we remove the password drop target since it was blocking the standard drop of files and drop target doesn't work because of UIPI restrictions across privilege levels since Expander is started elevated
* Add basic strcture needed for EMV implementation
* Add demo EMV functionality with C code pasted in a very dirty and unsafe way. NOT FINAL
* Refactor IccExtractor Structure
* Fix Makefile
* fix include file
* move global variables from h to c
* revert to memcpy
* fix icc data recovery functions
* Add EMV functionalities on windows
* Make EMVToken structures like SecurityToken
* Define constants instead of hard coded values
* Token structures created with inheritance
* refactor TokenKeyfile to use inherit. + polymor.
* add Token.h + Token.cpp in modules in VS2010
* Add a comment at each use of SecurityToken class or objects
* SecurityTokenKeyfilesDialog preparation
* Implemennt GetAvailableTokens in Token class on windows
* merge
* up (patching for Windows)
* foreach Token.cpp corrected
* Display EMV keyfiles on first window in graphic interface
* Add token to Windows UI
* EMVToken selection on OKButton on Linux
* Keyfile.cpp optimization
* Move getKeyfileData in the token class
* EMV::Token GetAvailableKeyfiles() base
* Move getKeyfileData in the token class on unix
* Remove test comments
* Warnings resolved
* RemoveeSecurityTokenLibraryNotInitialized exception if at least one emv token is detected
* Adding new files
* Remove old files and add the new version to the windows project
* Change make_shared to shared_ptr constructor
* IccExtractor integration working on linux
* Throwing card not EMV execption
* catch error when not EMV type in EMVToken::GetAvailableKeyfiles
* Change types to compile on windows
* list all keyfiles, security keyfiles and emv keyfiles in command line
* Change type to be coherent and remove old todo comments
* Remove todo comments
* Change indentation and resolve a bug from previous commit
* Use polymorphism for GetKeyfileData and add export option for EMVTokens on Linux
* Linux : Allow to export EMV Tokens in command lines, Windows : Disable the delete button when EMV Keyfiles are selected
* Remove SlotId from TokenInfo as it is already in Token
* Correct errors on Linux
* Disable delete option if one EMV Token is selected on Linux
* Fix bug enabling delete button if nothing is selected
* emv data used as reference then burnt
* use of normal files in linux corrected
* help updated
* help updated for export functionnality
* option EMV added to graphic interface but not yet working
* Bug fix : Allow to use multiple EMV on windows
* EMV Option added to UserPreferences
* EMV Option working for Linux
* EMV option added to Windows (not working yet)
* [NOT TESTED] EMV option for Windows
* Working EMV option on Windows
* EMV Option for data extraction working for volume creation
* EMV Option for data extraction working for Mount
* EMV Option for data extraction working for mounting favorites volumes
* EMV Option for extraction working for Changing volume password, Set Derivation Key Algorithm and Add or remove keyfile from volume
* Windows : re-checking EMV Option when getting data
* Removing error catches in the IccDataExtractor classe (It only throws error now). Changing GetPan signature to resemble the other functions signatures more
* Changing EMV errors
- Only throwing ICCExtractionException from outside of the ICC module.
- Catching all TLVExceptions and PCSCExceptions to throw the right ICCExtractionException
- Deleting APDU exceptions.
* First version of the documentation
* Adding function pointers for winscard library (but it crashes VeraCrypt)
* Debugging function pointers
* The import of the library on windows work as expected now
* Reverting EMVToken.cpp changes used to test to library import
* Searching for the System32 path instead of hard codding it
* Fixing the bug were VeraCrypt crashes if there is no readers when "add Token files" is clicked
* Winscard library not initialized in object constructor anymore to delay it after EMVOption check
* Remove winscard lib from windows dependencies
* Properly displaying errors
* Adding a dot in Language.xml
* Catching TLVException
* Removing unused code
* Remove unusefull comments
* Trying to fix 0x1f error
* Update IccDataExtractor.cpp
* Delete History.xml
* Fix get data without get pan
* Cleanup code
* changes for linux compilation but linking not working
* error handling for linux
* erasing emv data
* Burn PAN
* Burn PAN from memory
* Uncomment selfcheck before merging master
* burn corrected
* EMV errors handling for Linux
* EMV working for Linux CLI
* Doc : Winscard Linux package and VeraCrypt versions
---------
Co-authored-by: doriandu45 <d45.poubelle@gmail.com>
Co-authored-by: red4game <redemgaiming@gmail.com>
Co-authored-by: Brice.Namy <brice.namy@insa-rennes.fr>
Co-authored-by: vocthor <pieceo108@gmail.com>
Co-authored-by: vocthor <67202139+vocthor@users.noreply.github.com>
Co-authored-by: Andrei COCAN <andrei.cocan@insa-rennes.fr>
Co-authored-by: AndreiCocan <95496161+AndreiCocan@users.noreply.github.com>
Co-authored-by: francoisLEROUX <francois3443@gmail.com>
We write a zeroed sector every 128 MiB, leaving other sectors untouched
This helps users visualize the progress of actual file creation while forcing Windows to allocate the disk space of each 128 MiB chunk immediately, otherwise, Windows would delay the allocation until we write the backup header at the end of the volume which would make the user think that the format process has stalled after progress bar reaches 100%.
This change also makes it possible to generate keyfiles larger than 1 MiB although only the first 1 MiB will be taken into account by VeraCrypt.
Update strings in XML files
In old Linux distributions, tar command doesn't support
"--keep-directory-symlink" so we now dynamically detect if this switch
is support and then we use it if it is available
Changes to be able to build latest wxWidgets stable 3.2.2.1.
Removed in 3.1.5, needs to be removed.
--disable-webkit
Added in 3.1.0, needs to be added.
--disable-addremovectrl
Currently if you fail the privilege escalation prompt, the second
one and consecutively every second will be ignored. This is because
if we do not --use-dummy-sudo-password and are on Linux/FreeBSD,
we will be prompted for password twice for one evaluation in the
while(!ElevatedServiceAvailable) loop.
For the fix, we make sure that we run the prompt only once for each
case.
We replace absolute file pointer moving by relative moving with respect to current position. This was implemented as a workaround to address the performance issues related to in-place encryption. When using SetFilePointerEx() with FILE_BEGIN as the reference point, reaching the end of large drives during in-place encryption can cause significant slowdowns. By moving the file pointer relatively, these performance issues are mitigated.
Currently on a system without xterm or konsole (like fresh
Ubuntu install) the fsck check will not launch. Added
gnome-terminal as an alternative and fixed an issue where
konsole will always error out as --title and --caption are
no longer valid arguments.
Previously the error message was simply "xterm not found", so
new LangString LINUX_EX2MSG_TERMINALNOTFOUND was added to let the
user knows which programs they need to get the feature working.
Removes the options exFAT and Btrfs being shown when creating a
volume in text mode when the system does not support them and will
end up erroring out at the end. Hide Btrfs option when the volume
is too small, as we will anyways fail right after.
Hardcoded numbering changed to dynamic as the available options
are not necessarily consecutive.
The lack of explicit hash initialization was causing issue with Blake2s
because it doesn't allow further processing once a digest value was
returned.
Other hash algorithms don't have this restriction.
Not we explicitely initialize all hash algorithms which is the correct
way to do things.
* Libzip 1.9.2
Updated Libzip to latest version 1.9.2 and changed version number in the config.h from 1.7.3 to 1.9.2. Not sure if anything else needs to be tweaked :)
* Modified Libzip to work with Visual studio
* Update README.md
Update libzip copyright.
* Added the missing files.
I've added the missing files zipconf.h and config.h, I've missed those sorry for that!
No parent directory specified in the path, we assume current directory
We first check if parent directory exists before checking its free space
using wxgetDiskSpace
Based on idea proposed by @bogdro in PR#1025
* Removal of any of the any of `wxALIGN_RIGHT`/`wxALIGN_CENTRE_HORIZONTAL`/`wxALIGN_BOTTOM`/`wxALIGN_CENTRE_VERTICAL` when used in conjunction with `wxEXPAND`
wxWidget has an "assert" that gets triggered anytime `wxEXPAND` gets used with an alignment property (useless override). This leads to a popup backtrace everytime a non-compliant widget is opened.
* Removal of missed `wxALIGN_RIGHT`/`wxALIGN_CENTRE_HORIZONTAL`/`wxALIGN_BOTTOM`/`wxALIGN_CENTRE_VERTICAL` when used in conjunction with `wxEXPAND`
* Removed property 'label' for wxMenuBar as no longer used (wxFormBuilder)
* Removed redundant 'wxALIGN_RIGHT' for the "OK" button in the preference panel (there is a spacer already in-place that pushes the buttons to the right)
* Removed redundant 'wxALIGN_RIGHT' for items in the wizard panel's (`WizardFrameBase`) button bar and added width spacing for the 2 spacers between the buttons to make up for the change.
* Changed constructor signature for the `WizardPage` and all subclasses
The addition of the wxString 'name' arg brings it inline with the new wxFromBuilder v3.10.1 output so that editing+generating the forms from it won't brake the build now.
* Removed remaining redundant 'wxALIGN_*' that were paired with 'wxEXPAND'.
* Added missing default flags to wxFileName::Normalize(..) method
The old empty initialization which was fine up to v2.8.12 of wxWidget gives off a compile warning. Since the default `wxPATH_NORM_ALL` is now depreciated (v3.x) the equivalent individual flags must be explicitly given.
* Changed spaces to tabs to bring last commit inline with the rest of the src code
Fixing the following compiler warnings:
FuseService.cpp: In function ‘int VeraCrypt::fuse_service_read(const char*, char*, size_t, off_t, fuse_file_info*)’:
FuseService.cpp:233:12: warning: catching polymorphic type ‘struct VeraCrypt::MissingVolumeData’ by value [-Wcatch-value=]
233 | catch (MissingVolumeData)
| ^~~~~~~~~~~~~~~~~
FuseService.cpp: In static member function ‘static int VeraCrypt::FuseService::ExceptionToErrorCode()’:
FuseService.cpp:362:15: warning: catching polymorphic type ‘class std::bad_alloc’ by value [-Wcatch-value=]
362 | catch (std::bad_alloc)
| ^~~~~~~~~
Apart from warnings, the current code creates unnecessary copies of the exception object in debug mode. (But not in -O3)
* New VeraCrypt interface (for system encryption) with improved usability
* System Encryption: translate password to US keyboard layout + improved new interface
* Windows: Fix build error following merge
* Windows: Remove unused variable
* Windows: Add missing string in Language.xml
* Windows: fix buffer overrun caused by wrong use of wmemset
* Do not delete password file
Since the file is only available in \Release\Setup Files\ it would be fully deleted after running this script the first time.
* Correct return code
Originally the function would have always returned the return-code 1 resulting that the user is not able to change the location for the rescue zip.
* Added hint for sysenc
Added a hint why the field for repeating the password is initially greyed out within the system encryption.
* Corrected spelling mistake
Corrected spelling mistake
* Removed not working copy job
The file to be copied was stored at the source location. Therefore the copyjob will not work. Instead the file is already in the target folder.
* Removed RIPEMD-160 from Product64.wxs
See commit from 21.03.2022
* Added german translation for new interface
* Fixed PIM bug
* Corrected translation file based on the guidelines within the pull request
* Fixing merge conflicts
* Fixed Compiling issues. Reverted keyboard translation
* Removed artifacts of password translation
* Corrected language.xml
* Fixed order within german language file
* Corrected positions
Co-authored-by: Bruna2803 <bruna.radeljak@hotmail.com>
Co-authored-by: felixreichmann <30237956+felixreichmann@users.noreply.github.com>
Co-authored-by: Mounir IDRASSI <mounir.idrassi@idrix.fr>
Github PR: https://github.com/veracrypt/VeraCrypt/pull/953
* Create CompilingGuidelinerh
* Initial Upload Windows Compiling Guide
* Removed RIPEMD-160 from Product64.wxs. See commit from 21.03.2022
* Completed Win compiling guideline
* Added link to detailed compiling guide
* Added link to detailed compiling guide
* Restructured docu main page
* Added sourceforge link
* Added compiling guide for Linux
* References to detailed instructions
* Revert "Removed RIPEMD-160 from Product64.wxs. See commit from 21.03.2022"
This reverts commit 024ae2a465.
* Correction of a div box
The variable has enough capacity so pointer &buffer[0] is valid but since clear method was called, we are not supposed to access element at index 0.
Related to Github issue #896